#include <stream.h>
Public Member Functions | |
virtual int64 | pos () const =0 |
virtual int64 | size () const =0 |
virtual bool | seek (int64 offset, int whence=SEEK_SET)=0 |
virtual bool | skip (uint32 offset) |
virtual char * | readLine (char *s, size_t bufSize, bool handleCR=true) |
virtual String | readLine (bool handleCR=true) |
void | hexdump (int len, int bytesPerLine=16, int startOffset=0) |
Public Member Functions inherited from Common::ReadStream | |
virtual bool | eos () const =0 |
virtual uint32 | read (void *dataPtr, uint32 dataSize)=0 |
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) |
Public Member Functions inherited from Common::Stream | |
virtual bool | err () const |
virtual void | clearErr () |
Interface for a seekable and readable data stream.
|
pure virtual |
Obtain the current value of the stream position indicator.
Implemented in Common::SeekableReadStreamEndianWrapper, Common::MemorySeekableReadWriteStream, Common::MemoryReadWriteStream, Twp::GGPackEntryReader, AGS3::AGS::Shared::ScummVMPackReadStream, Common::File, Scumm::ScummDiskImage, AGS3::AGS::Shared::ScummVMReadStream, BladeRunner::SaveFileReadStream, LastExpress::SavegameStream, Common::MemoryReadStreamEndian, Twp::RangeStream, Common::MemoryReadStream, Bagel::SaveReadWriteStream, Scumm::ScummNESFile, Common::SeekableSubReadStream, Twp::XorStream, Scumm::ScummFile, Tinsel::TinselFile, PspIoStream, NGI::MfcArchive, Gob::SaveConverter, StdioStream, Titanic::y222, InFRAMSave, InPAKSave, Twp::SoundStream, Common::ConcatReadStream, RomfsStream, Common::PowerPackerStream, Twp::MemStream, Scumm::BaseScummFile, TwinE::LzssReadStream, and Grim::PackFile.
|
pure virtual |
Obtain the total size of the stream, measured in bytes. If this value is unknown or cannot be computed, -1 is returned.
Implemented in Common::SeekableReadStreamEndianWrapper, Common::MemorySeekableReadWriteStream, Common::MemoryReadWriteStream, Twp::GGPackEntryReader, AGS3::AGS::Shared::ScummVMPackReadStream, Common::File, AGS3::AGS::Shared::ScummVMReadStream, Scumm::ScummDiskImage, BladeRunner::SaveFileReadStream, LastExpress::SavegameStream, Common::MemoryReadStreamEndian, Twp::RangeStream, Common::MemoryReadStream, Bagel::SaveReadWriteStream, Scumm::ScummNESFile, Common::SeekableSubReadStream, Twp::XorStream, Scumm::ScummFile, Tinsel::TinselFile, PspIoStream, NGI::MfcArchive, Gob::SaveConverter, StdioStream, Titanic::y222, InFRAMSave, InPAKSave, Twp::SoundStream, Common::ConcatReadStream, RomfsStream, Twp::MemStream, Scumm::BaseScummFile, Common::PowerPackerStream, TwinE::LzssReadStream, Grim::PackFile, and PosixIoStream.
|
pure virtual |
Set the stream position indicator for the stream.
The new position, measured in bytes, is obtained by adding offset bytes to the position specified by whence. If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the start of the file, the current position indicator, or end-of-stream, respectively. A successful call to the seek() method clears the end-of-stream indicator for the stream.
offset | Relative offset in bytes. |
whence | Seek reference: SEEK_SET, SEEK_CUR, or SEEK_END. |
Implemented in Common::SeekableReadStreamEndianWrapper, Common::MemorySeekableReadWriteStream, Common::MemoryReadWriteStream, Twp::GGPackEntryReader, AGS3::AGS::Shared::ScummVMPackReadStream, Common::File, AGS3::AGS::Shared::ScummVMReadStream, Scumm::ScummDiskImage, BladeRunner::SaveFileReadStream, Common::MemoryReadStreamEndian, LastExpress::SavegameStream, Twp::RangeStream, Common::MemoryReadStream, Bagel::SaveReadWriteStream, Common::SeekableSubReadStream, Scumm::ScummNESFile, Twp::XorStream, Scumm::ScummFile, Tinsel::TinselFile, PspIoStream, NGI::MfcArchive, Gob::SaveConverter, StdioStream, Common::ConcatReadStream, Titanic::y222, Common::PowerPackerStream, Twp::SoundStream, RomfsStream, Twp::MemStream, Scumm::BaseScummFile, TwinE::LzssReadStream, and Grim::PackFile.
|
inlinevirtual |
Skip the given number of bytes in the stream.
This is equivalent to calling:
to add the given number of bytes to the current position indicator of the stream.
Reimplemented in Common::MemoryReadStreamEndian, and Titanic::y222.
|
virtual |
Read at most one less than the number of characters specified by bufSize
from the stream and store them in the string buffer.
Reading stops when the end of a line is reached (CR, CR/LF, or LF), and at end-of-stream or error. The newline, if any, is retained (CR and CR/LF are translated to LF = 0xA = '\n'
). If any characters are read and there is no error, a \0
character is appended to end the string.
Upon successful completion, return a pointer to the string. If end-of-stream occurs before any characters are read, returns NULL and the buffer contents remain unchanged. If an error occurs, returns NULL and the buffer contents are indeterminate. This method does not distinguish between end-of-stream and error; callers must use err() or eos() to determine which occurred.
s | The buffer to store into. |
bufSize | Size of the buffer. |
handleCR | If set (default), then CR and CR/LF are handled, as well as LF. |
Reimplemented in Titanic::y222.
|
virtual |
Read a full line and returns it as a Common::String.
Reading stops when the end of a line is reached (CR, CR/LF, or LF), and at end-of-stream or error.
Upon successful completion, return a string with the content of the line, without the end of a line marker. This method does not indicate whether an error occurred. Callers must use err() or eos() to determine whether an exception occurred.
handleCR | If set (default), then CR and CR/LF are handled, as well as LF. |
Reimplemented in Titanic::y222.
void Common::SeekableReadStream::hexdump | ( | int | len, |
int | bytesPerLine = 16 , |
||
int | startOffset = 0 |
||
) |
Print a hexdump of the stream while maintaing position. The number of bytes per line is customizable.
len | Length of this data. |
bytesPerLine | Number of bytes to print per line (default: 16). |
startOffset | Shift the shown offsets by the starting offset (default: 0). |