ScummVM API documentation
Common::SafeSeekableSubReadStream Class Reference

#include <substream.h>

Inheritance diagram for Common::SafeSeekableSubReadStream:
Common::SeekableSubReadStream Common::SubReadStream Common::SeekableReadStream Common::ReadStream Common::ReadStream Common::Stream Common::Stream Common::SafeMutexedSeekableSubReadStream

Public Member Functions

 SafeSeekableSubReadStream (SeekableReadStream *parentStream, uint32 begin, uint32 end, DisposeAfterUse::Flag disposeParentStream=DisposeAfterUse::NO)
 
virtual uint32 read (void *dataPtr, uint32 dataSize)
 
- Public Member Functions inherited from Common::SeekableSubReadStream
 SeekableSubReadStream (SeekableReadStream *parentStream, uint32 begin, uint32 end, DisposeAfterUse::Flag disposeParentStream=DisposeAfterUse::NO)
 
virtual int64 pos () const
 
virtual int64 size () const
 
virtual bool seek (int64 offset, int whence=SEEK_SET)
 
- Public Member Functions inherited from Common::SubReadStream
 SubReadStream (ReadStream *parentStream, uint32 end, DisposeAfterUse::Flag disposeParentStream=DisposeAfterUse::NO)
 
virtual bool eos () const
 
virtual bool err () const
 
virtual void clearErr ()
 
- 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)
 
SeekableReadStreamreadStream (uint32 dataSize)
 
String readString (char terminator=0, size_t len=String::npos)
 
Common::String readPascalString (bool transformCR=true)
 
- Public Member Functions inherited from Common::SeekableReadStream
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)
 

Additional Inherited Members

- Protected Attributes inherited from Common::SeekableSubReadStream
SeekableReadStream_parentStream
 
uint32 _begin
 
- Protected Attributes inherited from Common::SubReadStream
DisposablePtr< ReadStream_parentStream
 
uint32 _pos
 
uint32 _end
 
bool _eos
 

Detailed Description

A seekable substream that removes the exclusivity demand required by the normal SeekableSubReadStream, at the cost of seek()ing the parent stream before each read().

More than one SafeSeekableSubReadStream to the same parent stream can be used at the same time; they won't mess up each other. They will, however, reposition the parent stream, so don't depend on its position to be the same after a read() or seek() on one of its SafeSeekableSubReadStream.

Note that this stream is not threading safe. Calling read from the audio thread and from the main thread might mess up the data retrieved.

Member Function Documentation

◆ read()

virtual uint32 Common::SafeSeekableSubReadStream::read ( void *  dataPtr,
uint32  dataSize 
)
virtual

Read data from the stream.

Subclasses must implement this method. All other read methods are implemented using it.

Note
The semantics of any implementation of this method is supposed to match that of ISO C fread(), in particular where it concerns setting error and end of file/stream flags.
Parameters
dataPtrPointer to a buffer into which the data is read.
dataSizeNumber of bytes to be read.
Returns
The number of bytes that were actually read.

Reimplemented from Common::SubReadStream.

Reimplemented in Common::SafeMutexedSeekableSubReadStream.


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