![]() |
Plasma Engine
2.0
|
Templated implementation of plMemoryStreamStorageInterface that adapts most standard pl containers to the interface. More...
#include <MemoryStream.h>
Public Member Functions | |
plMemoryStreamContainerStorage (plUInt32 uiInitialCapacity=0, plAllocator *pAllocator=plFoundation::GetDefaultAllocator()) | |
Creates the storage object for a memory stream. Use uiInitialCapacity to reserve some memory up front. | |
virtual plUInt64 | 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 plUInt64 | GetHeapMemoryUsage () const override |
Returns the amount of bytes that are currently allocated on the heap. | |
virtual void | Reserve (plUInt64 uiBytes) override |
Reserves N bytes of storage. | |
virtual plResult | CopyToStream (plStreamWriter &inout_stream) const override |
Writes the entire content of the storage to the provided stream. | |
virtual plArrayPtr< const plUInt8 > | GetContiguousMemoryRange (plUInt64 uiStartByte) const override |
Returns a read-only plArrayPtr that represents a contiguous area in memory which starts at the given first byte. | |
virtual plArrayPtr< plUInt8 > | GetContiguousMemoryRange (plUInt64 uiStartByte) override |
Non-const overload of GetContiguousMemoryRange(). | |
const plUInt8 * | GetData () const |
The data is guaranteed to be contiguous. | |
![]() | |
plUInt32 | GetStorageSize32 () const |
Returns the number of bytes that are currently stored. Asserts that the stored amount is less than 4GB. | |
void | ReadAll (plStreamReader &inout_stream, plUInt64 uiMaxBytes=plMath::MaxValue< plUInt64 >()) |
Copies all data from the given stream into the storage. | |
Templated implementation of plMemoryStreamStorageInterface that adapts most standard pl containers to the interface.
Note that plMemoryStreamContainerStorage assumes contiguous storage, so using an plDeque for storage will not work.
|
inlineoverridevirtual |
Clears the entire storage. All readers and writers must be reset to start from the beginning again.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Deallocates any allocated memory that's not needed to hold the currently stored data.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Writes the entire content of the storage to the provided stream.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Returns a read-only plArrayPtr that represents a contiguous area in memory which starts at the given first byte.
This piece of memory can be read/copied/modified in one operation (memcpy etc). The next byte after this slice may be located somewhere entirely different in memory. Call GetContiguousMemoryRange() again with the next byte after this range, to get access to the next memory area.
Chunks may differ in size.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Non-const overload of GetContiguousMemoryRange().
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Returns the amount of bytes that are currently allocated on the heap.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Returns the number of bytes that are currently stored.
Implements plMemoryStreamStorageInterface.
|
inlineoverridevirtual |
Reserves N bytes of storage.
Implements plMemoryStreamStorageInterface.
|
inlineoverrideprivatevirtual |
Implements plMemoryStreamStorageInterface.