![]() |
Plasma Engine
2.0
|
#include <MemoryStream.h>

Public Member Functions | |
| plContiguousMemoryStreamStorage (plUInt32 uiInitialCapacity=0, plAllocator *pAllocator=plFoundation::GetDefaultAllocator()) | |
Public Member Functions inherited from plMemoryStreamContainerStorage< plHybridArray< plUInt8, 256 > > | |
| 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. | |
Public Member Functions inherited from plMemoryStreamStorageInterface | |
| 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. | |
plContiguousMemoryStreamStorage holds internally an plHybridArray<plUInt8, 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.