ScummVM API documentation
Common::MemoryWriteStreamDynamic Class Reference

#include <memstream.h>

Inheritance diagram for Common::MemoryWriteStreamDynamic:
Common::WriteStream Common::SeekableWriteStream Common::Stream Common::Stream Common::WriteStream Common::Stream Common::Stream LastExpress::SavegameStream

Public Member Functions

 MemoryWriteStreamDynamic (DisposeAfterUse::Flag disposeMemory)
 
uint32 write (const void *dataPtr, uint32 dataSize) override
 
virtual int32 pos () const override
 
virtual int32 size () const override
 
byte * getData ()
 
virtual bool seek (int32 offs, int whence=SEEK_SET) override
 
 MemoryWriteStreamDynamic (DisposeAfterUse::Flag disposeMemory=DisposeAfterUse::NO)
 
uint32 write (const void *dataPtr, uint32 dataSize)
 
uint32 pos () const
 
uint32 size () const
 
uint8 * getData ()
 
bool seek (sint32 offset, int whence=SEEK_SET)
 
- Public Member Functions inherited from Common::WriteStream
virtual bool flush ()
 
virtual void finalize ()
 
virtual bool flush ()
 
virtual void finalize ()
 
void writeByte (uint8 value)
 
void writeSByte (sint8 value)
 
void writeUint16LE (uint16 value)
 
void writeUint32LE (uint32 value)
 
void writeUint16BE (uint16 value)
 
void writeUint32BE (uint32 value)
 
FORCEINLINE void writeSint16LE (sint16 value)
 
FORCEINLINE void writeSint32LE (sint32 value)
 
FORCEINLINE void writeSint16BE (sint16 value)
 
FORCEINLINE void writeSint32BE (sint32 value)
 
void writeString (const Std::string &str)
 
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 ()
 
virtual bool err () const
 
virtual void clearErr ()
 

Protected Member Functions

void ensureCapacity (uint32 new_len)
 

Protected Attributes

uint32 _capacity
 
uint32 _size
 
byte * _ptr
 
byte * _data
 
uint32 _pos
 
DisposeAfterUse::Flag _disposeMemory
 

Detailed Description

A sort of hybrid between MemoryWriteStream and Array classes. A stream that grows as it's written to.

Member Function Documentation

◆ write() [1/2]

uint32 Common::MemoryWriteStreamDynamic::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.

Reimplemented in LastExpress::SavegameStream.

◆ pos() [1/2]

virtual int32 Common::MemoryWriteStreamDynamic::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.

Reimplemented in LastExpress::SavegameStream.

◆ size() [1/2]

virtual int32 Common::MemoryWriteStreamDynamic::size ( ) const
inlineoverridevirtual

Obtain the current size of the stream, measured in bytes.

If this value is unknown or cannot be computed, -1 is returned.

Returns
The size of the stream, or -1 if an error occurred.

Implements Common::SeekableWriteStream.

Reimplemented in LastExpress::SavegameStream.

◆ seek()

virtual bool Common::MemoryWriteStreamDynamic::seek ( int32  offset,
int  whence = SEEK_SET 
)
inlineoverridevirtual

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.

Note
The semantics of any implementation of this method is supposed to match that of ISO C fseek().
Parameters
offsetThe relative offset in bytes.
whenceThe seek reference: SEEK_SET, SEEK_CUR, or SEEK_END.
Returns
True on success, false in case of a failure.

Implements Common::SeekableWriteStream.

Reimplemented in LastExpress::SavegameStream.

◆ write() [2/2]

uint32 Common::MemoryWriteStreamDynamic::write ( const void *  dataPtr,
uint32  dataSize 
)
inlinevirtual

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.

◆ pos() [2/2]

uint32 Common::MemoryWriteStreamDynamic::pos ( ) const
inlinevirtual

Obtain the current value of the stream position indicator.

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

Implements Common::WriteStream.

◆ size() [2/2]

uint32 Common::MemoryWriteStreamDynamic::size ( ) const
inlinevirtual

Obtain the current size of the stream, measured in bytes.

If this value is unknown or cannot be computed, -1 is returned.

Returns
The size of the stream, or -1 if an error occurred.

Implements Common::SeekableWriteStream.


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