#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.