![]() |
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members
![]() |
#include <FXStream.h>
A stream is a way to serialize data and objects into a byte stream.
Each item of data that is saved or loaded from the stream may be byte-swapped, thus allowing little-endian machines to read data produced on big endian ones and vice-versa. Data is serialized exactly as-is. There are no tags or other markers inserted into the stream; thus, the stream may be used to save or load arbitrary binary data. Objects derived from FXObjects may be serialized also; whenever a reference to an object is serialized, a table is consulted to determine if the same object has been encountered previously; if not, the object is added to the table and then its contents are serialized. If the object has been encountered before, only a reference to the object is serialized. When loading back a serialized object, new instances are constructed using the default constructor, and subsequently the object's contents are loaded. A special container object may be passed in which is placed in the table as if it had been encountered before; this will cause only references to this object to be saved. The container object is typically the top-level document object which manages all objects contained by it. Additional objects may be added using addObject(); these will not be actually saved or loaded.
See also:
FX::FXStream::FXStream | ( | const FXObject * | cont = NULL | ) |
Construct stream with given container object.
The container object is an object that will itself not be saved to or loaded from the stream, but which may be referenced by other objects. These references will be properly saved and restored.
virtual FX::FXStream::~FXStream | ( | ) | [virtual] |
Destructor.
bool FX::FXStream::open | ( | FXStreamDirection | save_or_load, |
FXuval | size = 8192 , |
||
FXuchar * | data = NULL |
||
) |
Open stream for reading (FXStreamLoad) or for writing (FXStreamSave).
An initial buffer size may be given, which must be at least 16 bytes. If data is not NULL, it is expected to point to an external data buffer of length size; otherwise stream will use an internally managed buffer.
Reimplemented in FX::FXMemoryStream.
virtual bool FX::FXStream::flush | ( | ) | [virtual] |
Flush buffer.
virtual bool FX::FXStream::close | ( | ) | [virtual] |
Close; return true if OK.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXuval FX::FXStream::getSpace | ( | ) | const |
Get available buffer space.
void FX::FXStream::setSpace | ( | FXuval | sp | ) |
Set available buffer space.
FXStreamStatus FX::FXStream::status | ( | ) | const [inline] |
Get status code.
bool FX::FXStream::eof | ( | ) | const [inline] |
Return true if at end of file or error.
void FX::FXStream::setError | ( | FXStreamStatus | err | ) |
Set status code.
FXStreamDirection FX::FXStream::direction | ( | ) | const [inline] |
Obtain stream direction.
const FXObject* FX::FXStream::container | ( | ) | const [inline] |
Get parent object.
References FX::FXStreamOK.
FXlong FX::FXStream::position | ( | ) | const [inline] |
Get position.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
virtual bool FX::FXStream::position | ( | FXlong | offset, |
FXWhence | whence = FXFromStart |
||
) | [virtual] |
Move to position relative to head, tail, or current location.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
void FX::FXStream::swapBytes | ( | bool | s | ) | [inline] |
Change swap bytes flag.
bool FX::FXStream::swapBytes | ( | ) | const [inline] |
Get state of the swap bytes flag.
void FX::FXStream::setBigEndian | ( | bool | big | ) |
Set stream to big endian mode if true.
Byte swapping will be enabled if the machine native byte order is not equal to the desired byte order.
bool FX::FXStream::isBigEndian | ( | ) | const |
Return true if big endian mode.
Save single items to stream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::operator<< | ( | const FXlong & | v | ) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::operator<< | ( | const FXulong & | v | ) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXuchar * | p, |
FXuval | n | ||
) |
Save arrays of items to stream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Referenced by FX::FXFileStream::operator>>(), FX::FXMemoryStream::operator>>(), FX::FXFileStream::save(), FX::FXMemoryStream::save(), and FX::saveElms().
FXStream& FX::FXStream::save | ( | const FXchar * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXushort * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXshort * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXuint * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXint * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXfloat * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXdouble * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXlong * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::save | ( | const FXulong * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Load single items from stream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::operator>> | ( | FXlong & | v | ) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::operator>> | ( | FXulong & | v | ) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXuchar * | p, |
FXuval | n | ||
) |
Load arrays of items from stream.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Referenced by FX::FXFileStream::load(), FX::FXMemoryStream::load(), FX::loadElms(), FX::FXFileStream::saveObject(), and FX::FXMemoryStream::saveObject().
FXStream& FX::FXStream::load | ( | FXchar * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXushort * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXshort * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXuint * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXint * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXfloat * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXdouble * | p, |
FXuval | n | ||
) |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXlong * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::load | ( | FXulong * | p, |
FXuval | n | ||
) | [inline] |
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::saveObject | ( | const FXObject * | v | ) |
Save object.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
Referenced by FX::FXFileStream::loadObject(), and FX::FXMemoryStream::loadObject().
FXStream& FX::FXStream::loadObject | ( | FXObject *& | v | ) |
Load object.
Reimplemented in FX::FXMemoryStream, and FX::FXFileStream.
FXStream& FX::FXStream::addObject | ( | const FXObject * | v | ) |
Add object without saving or loading.
![]() |