XII Release 0.1.0
Loading...
Searching...
No Matches
xiiContiguousMemoryStreamStorage Class Reference

#include <MemoryStream.h>

Inheritance diagram for xiiContiguousMemoryStreamStorage:
[legend]

Public Member Functions

 xiiContiguousMemoryStreamStorage (xiiUInt32 uiInitialCapacity=0, xiiAllocatorBase *pAllocator=xiiFoundation::GetDefaultAllocator())
 
- Public Member Functions inherited from xiiMemoryStreamContainerStorage< xiiHybridArray< xiiUInt8, 256 > >
 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.
 
- Public Member Functions inherited from xiiMemoryStreamStorageInterface
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.
 

Detailed Description

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.


The documentation for this class was generated from the following file: