![]() |
XII Release 0.1.0
|
#include <MemoryStream.h>
Public Member Functions | |
xiiContiguousMemoryStreamStorage (xiiUInt32 uiInitialCapacity=0, xiiAllocatorBase *pAllocator=xiiFoundation::GetDefaultAllocator()) | |
![]() | |
xiiMemoryStreamContainerStorage (xiiUInt32 uiInitialCapacity=0, xiiAllocatorBase *pAllocator=xiiFoundation::GetDefaultAllocator()) | |
Creates the storage object for a memory stream. Use uiInitialCapacity to reserve some memory up front. | |
virtual xiiUInt64 | GetStorageSize64 () const override |
Returns the number of bytes that are currently stored. | |
virtual void | Clear () override |
Clears the entire storage. All readers and writers must be reset to start from the beginning again. | |
virtual void | Compact () override |
Deallocates any allocated memory that's not needed to hold the currently stored data. | |
virtual xiiUInt64 | GetHeapMemoryUsage () const override |
Returns the amount of bytes that are currently allocated on the heap. | |
virtual void | Reserve (xiiUInt64 uiBytes) override |
Reserves N bytes of storage. | |
virtual xiiResult | CopyToStream (xiiStreamWriter &ref_stream) const override |
Writes the entire content of the storage to the provided stream. | |
virtual xiiArrayPtr< const xiiUInt8 > | GetContiguousMemoryRange (xiiUInt64 uiStartByte) const override |
Returns a read-only xiiArrayPtr that represents a contiguous area in memory which starts at the given first byte. | |
virtual xiiArrayPtr< xiiUInt8 > | GetContiguousMemoryRange (xiiUInt64 uiStartByte) override |
Non-const overload of GetContiguousMemoryRange(). | |
const xiiUInt8 * | GetData () const |
The data is guaranteed to be contiguous. | |
![]() | |
xiiUInt32 | GetStorageSize32 () const |
Returns the number of bytes that are currently stored. Asserts that the stored amount is less than 4GB. | |
void | ReadAll (xiiStreamReader &ref_stream, xiiUInt64 uiMaxBytes=xiiMath::MaxValue< xiiUInt64 >()) |
Copies all data from the given stream into the storage. | |
xiiContiguousMemoryStreamStorage holds internally a xiiHybridArray<xiiUInt8, 256>, to prevent allocations when only small temporary memory streams are needed. That means it will have a memory overhead of that size. Also it reallocates memory on demand, and the data is guaranteed to be contiguous. This may be desirable, but can have a high performance overhead when data grows very large.