#include <substream.h>
Public Member Functions | |
SubReadStream (ReadStream *parentStream, uint32 end, DisposeAfterUse::Flag disposeParentStream=DisposeAfterUse::NO) | |
virtual bool | eos () const |
virtual bool | err () const |
virtual void | clearErr () |
virtual uint32 | read (void *dataPtr, uint32 dataSize) |
Public Member Functions inherited from Common::ReadStream | |
byte | readByte () |
FORCEINLINE int8 | readSByte () |
uint16 | readUint16LE () |
uint32 | readUint32LE () |
uint64 | readUint64LE () |
uint16 | readUint16BE () |
uint32 | readUint32BE () |
uint64 | readUint64BE () |
FORCEINLINE int16 | readSint16LE () |
FORCEINLINE int32 | readSint32LE () |
FORCEINLINE int64 | readSint64LE () |
FORCEINLINE int16 | readSint16BE () |
FORCEINLINE int32 | readSint32BE () |
FORCEINLINE int64 | readSint64BE () |
FORCEINLINE float | readFloatLE () |
FORCEINLINE float | readFloatBE () |
FORCEINLINE double | readDoubleLE () |
FORCEINLINE double | readDoubleBE () |
template<class TDataFormat , class... T> | |
bool | readMultiple (const TDataFormat &dataFormat, T &...values) |
template<class... T> | |
bool | readMultipleEndian (bool isLittle, T &...values) |
template<class... T> | |
bool | readMultipleLE (T &...values) |
template<class... T> | |
bool | readMultipleBE (T &...values) |
SeekableReadStream * | readStream (uint32 dataSize) |
String | readString (char terminator=0, size_t len=String::npos) |
Common::String | readPascalString (bool transformCR=true) |
Protected Attributes | |
DisposablePtr< ReadStream > | _parentStream |
uint32 | _pos |
uint32 | _end |
bool | _eos |
SubReadStream provides access to a ReadStream restricted to the range [currentPosition, currentPosition+end).
Manipulating the parent stream directly /will/ mess up a substream. Likewise, manipulating two substreams of a parent stream will cause them to step on each others toes.
|
inlinevirtual |
Return true if a read failed because the stream end has been reached.
This flag is cleared by clearErr(). For a SeekableReadStream, the flag is also cleared by a successful seek.
Implements Common::ReadStream.
|
inlinevirtual |
Return true if an I/O failure occurred.
This flag is never cleared automatically. In order to clear it, the client code must call clearErr() explicitly.
Reimplemented from Common::Stream.
|
inlinevirtual |
Reset the I/O error status as returned by err().
For a ReadStream, also reset the end-of-stream status returned by eos().
Reimplemented from Common::Stream.
|
virtual |
Read data from the stream.
Subclasses must implement this method. All other read methods are implemented using it.
dataPtr | Pointer to a buffer into which the data is read. |
dataSize | Number of bytes to be read. |
Implements Common::ReadStream.
Reimplemented in Common::SafeMutexedSeekableSubReadStream, and Common::SafeSeekableSubReadStream.