3#include <Foundation/Basics.h>
4#include <Foundation/Containers/Deque.h>
5#include <Foundation/IO/Stream.h>
18 virtual plResult WriteBytes(
const void* pWriteBuffer, plUInt64 uiBytesToWrite)
override;
22 virtual void BeginStream(plUInt16 uiVersion);
25 virtual void EndStream();
28 virtual void BeginChunk(
plStringView sName, plUInt32 uiVersion);
31 virtual void EndChunk();
54 virtual plUInt64 ReadBytes(
void* pReadBuffer, plUInt64 uiBytesToRead)
override;
64 void SetEndChunkFileMode(EndChunkFileMode mode) { m_EndChunkFileMode = mode; }
67 virtual plUInt16 BeginStream();
71 virtual void EndStream();
81 m_uiUnreadChunkBytes = 0;
98 void TryReadChunkHeader();
100 EndChunkFileMode m_EndChunkFileMode;
101 ChunkInfo m_ChunkInfo;
Reader for the chunk format that plChunkStreamWriter writes.
Definition ChunkStream.h:47
EndChunkFileMode
Definition ChunkStream.h:57
const ChunkInfo & GetCurrentChunk() const
Returns information about the current chunk.
Definition ChunkStream.h:92
A stream writer that separates data into 'chunks', which act like sub-streams.
Definition ChunkStream.h:12
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
virtual plResult WriteBytes(const void *pWriteBuffer, plUInt64 uiBytesToWrite)=0
Writes a raw number of bytes from the buffer, this is the only method which has to be implemented to ...
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Describes the state of the current chunk.
Definition ChunkStream.h:75
plUInt32 m_uiUnreadChunkBytes
The number of bytes in the chunk that have not yet been read.
Definition ChunkStream.h:88
plUInt32 m_uiChunkVersion
The version number of the chunk.
Definition ChunkStream.h:86
plUInt32 m_uiChunkBytes
The total size of the chunk.
Definition ChunkStream.h:87
bool m_bValid
If this is false, the end of the chunk file has been reached and no further chunk is available.
Definition ChunkStream.h:84
plString m_sChunkName
The name of the chunk.
Definition ChunkStream.h:85
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54