ezEngine Release 25.08
Loading...
Searching...
No Matches
ezRawMemoryStreamReader Class Reference

Maps a raw chunk of memory to the ezStreamReader interface. More...

#include <MemoryStream.h>

Inheritance diagram for ezRawMemoryStreamReader:

Public Member Functions

 ezRawMemoryStreamReader (const void *pData, ezUInt64 uiDataSize)
 Initialize the raw memory reader with the chunk of memory that is the data storage.
 
template<typename CONTAINER >
 ezRawMemoryStreamReader (const CONTAINER &container)
 Initialize the raw memory reader with the chunk of memory from a standard ez container.
 
void Reset (const void *pData, ezUInt64 uiDataSize)
 
template<typename CONTAINER >
void Reset (const CONTAINER &container)
 
virtual ezUInt64 ReadBytes (void *pReadBuffer, ezUInt64 uiBytesToRead) override
 Reads either uiBytesToRead or the amount of remaining bytes in the stream into pReadBuffer.
 
virtual ezUInt64 SkipBytes (ezUInt64 uiBytesToSkip) override
 Skips bytes in the stream (e.g. for skipping objects which can't be serialized due to missing information etc.)
 
void SetReadPosition (ezUInt64 uiReadPosition)
 Sets the read position to be used.
 
ezUInt64 GetReadPosition () const
 Returns the current read position in the raw memory block.
 
ezUInt64 GetByteCount () const
 Returns the total available bytes in the memory stream.
 
void SetDebugSourceInformation (ezStringView sDebugSourceInformation)
 Allows to set a string as the source of information in the memory stream for debug purposes.
 
- Public Member Functions inherited from ezStreamReader
 ezStreamReader ()
 Constructor.
 
virtual ~ezStreamReader ()
 Virtual destructor to ensure correct cleanup.
 
template<typename T >
ezResult ReadWordValue (T *pWordValue)
 Helper method to read a word value correctly (copes with potentially different endianess)
 
template<typename T >
ezResult ReadDWordValue (T *pDWordValue)
 Helper method to read a dword value correctly (copes with potentially different endianess)
 
template<typename T >
ezResult ReadQWordValue (T *pQWordValue)
 Helper method to read a qword value correctly (copes with potentially different endianess)
 
template<typename ArrayType , typename ValueType >
ezResult ReadArray (ezArrayBase< ValueType, ArrayType > &inout_array)
 Reads an array of elements from the stream.
 
template<typename ValueType , ezUInt16 uiSize, typename AllocatorWrapper >
ezResult ReadArray (ezSmallArray< ValueType, uiSize, AllocatorWrapper > &ref_array)
 Reads a small array of elements from the stream.
 
template<typename ValueType , ezUInt32 uiSize>
ezResult ReadArray (ValueType(&array)[uiSize])
 Writes a C style fixed array.
 
template<typename KeyType , typename Comparer >
ezResult ReadSet (ezSetBase< KeyType, Comparer > &inout_set)
 Reads a set.
 
template<typename KeyType , typename ValueType , typename Comparer >
ezResult ReadMap (ezMapBase< KeyType, ValueType, Comparer > &inout_map)
 Reads a map.
 
template<typename KeyType , typename ValueType , typename Hasher >
ezResult ReadHashTable (ezHashTableBase< KeyType, ValueType, Hasher > &inout_hashTable)
 Read a hash table (note that the entry order is not stable)
 
ezResult ReadString (ezStringBuilder &ref_sBuilder)
 Reads a string into an ezStringBuilder.
 
ezResult ReadString (ezString &ref_sString)
 Reads a string into an ezString.
 
EZ_ALWAYS_INLINE ezTypeVersion ReadVersion (ezTypeVersion expectedMaxVersion)
 

Detailed Description

Maps a raw chunk of memory to the ezStreamReader interface.

Constructor & Destructor Documentation

◆ ezRawMemoryStreamReader()

template<typename CONTAINER >
ezRawMemoryStreamReader::ezRawMemoryStreamReader ( const CONTAINER &  container)
inline

Initialize the raw memory reader with the chunk of memory from a standard ez container.

Note
The container must store the data in a contiguous array.

Member Function Documentation

◆ ReadBytes()

ezUInt64 ezRawMemoryStreamReader::ReadBytes ( void *  pReadBuffer,
ezUInt64  uiBytesToRead 
)
overridevirtual

Reads either uiBytesToRead or the amount of remaining bytes in the stream into pReadBuffer.

It is valid to pass nullptr for pReadBuffer, in this case the memory stream position is only advanced by the given number of bytes.

Implements ezStreamReader.

◆ SkipBytes()

ezUInt64 ezRawMemoryStreamReader::SkipBytes ( ezUInt64  uiBytesToSkip)
overridevirtual

Skips bytes in the stream (e.g. for skipping objects which can't be serialized due to missing information etc.)

Reimplemented from ezStreamReader.


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