31 void Init() {m_size=m_allocSize=0; m_data=
nullptr;}
37 ByteStream(
ByteStream&& rhs) : m_size(rhs.m_size), m_allocSize(rhs.m_allocSize), m_data(rhs.m_data) {rhs.m_size=rhs.m_allocSize=0; rhs.m_data=
nullptr;}
47 bool HasData()
const {
return 0 != m_size;}
48 void Clear() {
if(
nullptr != m_data) {free(m_data);m_data=
nullptr;} m_size = m_allocSize = 0;}
71 Reserve(m_size + size);
72 memcpy(m_data + m_size, data, size);
77 bool empty()
const {
return !HasData();}
78 size_t size()
const {
return GetSize();}
79 size_t capacity()
const {
return GetAllocSize();}
80 void reserve(
size_t size) {Reserve(static_cast<uint32_t>(size));}
81 void resize(
size_t newSize) {Resize(static_cast<uint32_t>(newSize));}
const_iterator begin() const
Definition: ByteStream.h:91
uint8_t * iterator
Definition: ByteStream.h:86
ByteStream()
Definition: ByteStream.h:32
Open for both read and write.
void Resize(uint32_t newSize)
Resize the stream.
Definition: ByteStream.h:57
void Reserve(uint32_t size)
Reserve memory for this ByteStream.
Definition: ByteStream.h:53
ByteStream(uint32_t size)
Definition: ByteStream.h:33
Provides Bentley specific assert functions (Bentley/BeAssert.h).
void swap(basic_string< _CharT, _Traits, _Allocator > &__a, basic_string< _CharT, _Traits, _Allocator > &__b)
Definition: basic_string.h:1396
~ByteStream()
Definition: ByteStream.h:36
void Append(uint8_t const *data, uint32_t size)
Append a stream of byes to the current end of this ByteStream.
Definition: ByteStream.h:67
iterator end()
Definition: ByteStream.h:90
void reserve(size_t size)
Definition: ByteStream.h:80
#define BEGIN_BENTLEY_NAMESPACE
Definition: Bentley.r.h:24
uint8_t const & operator[](size_t i) const
Definition: ByteStream.h:93
uint8_t const * GetData() const
Get a const pointer to the ByteStream.
Definition: ByteStream.h:45
ByteStream & operator=(ByteStream const &other)
Definition: ByteStream.h:38
ByteStream(ByteStream const &other)
Definition: ByteStream.h:35
uint8_t const * const_iterator
Definition: ByteStream.h:87
A stream of bytes in a resizeable buffer.
Definition: ByteStream.h:22
ByteStream(ByteStream &&rhs)
Definition: ByteStream.h:37
Defines typedefs and constants that can be used across other namespaces. All Bentley-authored C++ sou...
uint8_t const * data() const
Definition: ByteStream.h:83
ByteStream & operator=(ByteStream &&rhs)
Definition: ByteStream.h:39
uint8_t * data()
Definition: ByteStream.h:84
bool HasData() const
return false if this ByteStream is empty.
Definition: ByteStream.h:47
size_t size() const
Definition: ByteStream.h:78
ByteStream(uint8_t const *data, uint32_t size)
Definition: ByteStream.h:34
uint8_t & operator[](size_t i)
Definition: ByteStream.h:94
uint8_t * ExtractData()
Definition: ByteStream.h:49
iterator begin()
Definition: ByteStream.h:89
uint32_t GetAllocSize() const
Get the size, in bytes, of the memory allocated for this ByteStream.
Definition: ByteStream.h:43
#define END_BENTLEY_NAMESPACE
Definition: Bentley.r.h:25
unsigned int uint32_t
Definition: Bentley.r.h:93
void resize(size_t newSize)
Definition: ByteStream.h:81
const_iterator end() const
Definition: ByteStream.h:92
void Init()
Definition: ByteStream.h:31
bool empty() const
Definition: ByteStream.h:77
size_type size() const
Definition: stdcxx/bstdmap.h:214
uint8_t * GetDataP() const
Get a writable pointer to the ByteStream.
Definition: ByteStream.h:46
void Clear()
Return this object to an empty/uninitialized state.
Definition: ByteStream.h:48
void clear()
Definition: ByteStream.h:82
unsigned char uint8_t
Definition: Bentley.r.h:89
uint32_t GetSize() const
Get the size in bytes of the current data in this ByteStream.
Definition: ByteStream.h:44
void SaveData(uint8_t const *data, uint32_t size)
Save a stream of bytes into this ByteStream.
Definition: ByteStream.h:62
size_t capacity() const
Definition: ByteStream.h:79