ezEngine  Milestone 9
ezMemoryStreamReader Class Reference

A reader which can access a memory stream. More...

#include <MemoryStream.h>

Inheritance diagram for ezMemoryStreamReader:

Public Member Functions

 ezMemoryStreamReader (ezMemoryStreamStorageInterface *pStreamStorage=nullptr)
 Pass the memory storage object from which to read from. Pass nullptr if you are going to set the storage stream later via SetStorage().
 
void SetStorage (ezMemoryStreamStorageInterface *pStreamStorage)
 Sets the storage object upon which to operate. Resets the read position to zero. Pass nullptr if you want to detach from any previous storage stream, for example to ensure its reference count gets properly reduced.
 
virtual ezUInt64 ReadBytes (void *pReadBuffer, ezUInt64 uiBytesToRead) override
 Reads either uiBytesToRead or the amount of remaining bytes in the stream into pReadBuffer. More...
 
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 (ezUInt32 uiReadPosition)
 Sets the read position to be used.
 
ezUInt32 GetByteCount () const
 Returns the total available bytes in the memory stream.
 
void SetDebugSourceInformation (const char *szDebugSourceInformation)
 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 > &Array)
 Reads an 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 > &Set)
 Reads a set.
 
template<typename KeyType , typename ValueType , typename Comparer >
ezResult ReadMap (ezMapBase< KeyType, ValueType, Comparer > &Map)
 Reads a map.
 
ezResult ReadString (ezStringBuilder &builder)
 Reads a string into a ezStringBuilder.
 
EZ_ALWAYS_INLINE ezTypeVersion ReadVersion (ezTypeVersion uiExpectedMaxVersion)
 

Detailed Description

A reader which can access a memory stream.

Please note that the functions exposed by this object are not thread safe! If access to the same ezMemoryStreamStorage object from multiple threads is desired please create one instance of ezMemoryStreamReader per thread.

Member Function Documentation

◆ ReadBytes()

ezUInt64 ezMemoryStreamReader::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.


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