ScummVM API documentation
Xeen::SubWriteStream Class Reference

#include <files.h>

Inheritance diagram for Xeen::SubWriteStream:
Common::WriteStream Common::Stream

Public Member Functions

 SubWriteStream (Common::WriteStream *parentStream)
 
uint32 write (const void *dataPtr, uint32 dataSize) override
 
bool flush () override
 
void finalize () override
 
int64 pos () const override
 
- Public Member Functions inherited from Common::WriteStream
void writeByte (byte value)
 
void writeSByte (int8 value)
 
void writeUint16LE (uint16 value)
 
void writeUint32LE (uint32 value)
 
void writeUint64LE (uint64 value)
 
void writeUint16BE (uint16 value)
 
void writeUint32BE (uint32 value)
 
void writeUint64BE (uint64 value)
 
FORCEINLINE void writeSint16LE (int16 value)
 
FORCEINLINE void writeSint32LE (int32 value)
 
FORCEINLINE void writeSint64LE (int64 value)
 
FORCEINLINE void writeSint16BE (int16 value)
 
FORCEINLINE void writeSint32BE (int32 value)
 
FORCEINLINE void writeSint64BE (int64 value)
 
FORCEINLINE void writeFloatLE (float value)
 
FORCEINLINE void writeFloatBE (float value)
 
FORCEINLINE void writeDoubleLE (double value)
 
FORCEINLINE void writeDoubleBE (double value)
 
uint32 writeStream (ReadStream *stream, uint32 dataSize)
 
uint32 writeStream (SeekableReadStream *stream)
 
void writeString (const String &str)
 
- Public Member Functions inherited from Common::Stream
virtual bool err () const
 
virtual void clearErr ()
 

Protected Attributes

Common::WriteStream_parentStream
 
uint32 _begin
 

Detailed Description

SubWriteStream provides a way of compartmentalizing writing to a subsection of a file. This is primarily useful for the pos() function which can, for example, be used in asserts to ensure writing is being done at the correct offset within the bounds of the structure being written.

Member Function Documentation

◆ write()

uint32 Xeen::SubWriteStream::write ( const void *  dataPtr,
uint32  dataSize 
)
inlineoverridevirtual

Write data into the stream. Subclasses must implement this method. All other write methods are implemented using it.

Note
The semantics of any implementation of this method is supposed to match that of ISO C fwrite().
Parameters
dataPtrPointer to the data to be written.
dataSizeNumber of bytes to be written.
Returns
The number of bytes that were actually written.

Implements Common::WriteStream.

◆ flush()

bool Xeen::SubWriteStream::flush ( )
inlineoverridevirtual

Commit any buffered data to the underlying channel or storage medium. Unbuffered streams can use the default implementation.

Note
The semantics of any implementation of this method is supposed to match that of ISO C fflush().
Returns
True on success, false in case of a failure.

Reimplemented from Common::WriteStream.

◆ finalize()

void Xeen::SubWriteStream::finalize ( )
inlineoverridevirtual

Finalize and close this stream.

Call this method right before this stream instance is deleted. The goal is to enable the client code to detect and handle I/O errors that might occur when closing (and flushing, if buffered) the stream.

After this method has been called, no further writes can be performed on the stream. Calling err() is allowed.

By default, this just flushes the stream.

Reimplemented from Common::WriteStream.

◆ pos()

int64 Xeen::SubWriteStream::pos ( ) const
inlineoverridevirtual

Obtain the current value of the stream position indicator.

Returns
The current position indicator, or -1 if an error occurred.

Implements Common::WriteStream.


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