Bayonne2 / Common C++ 2 Framework
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Related Functions
Engine Class Reference

Engine. More...

#include <persist.h>

Collaboration diagram for Engine:
Collaboration graph
[legend]

Public Types

enum  EngineMode { modeRead, modeWrite }
 These are the modes the Persistence::Engine can work in. More...
 

Public Member Functions

 Engine (std::iostream &stream, EngineMode mode, bool compress=true) THROWS(PersistException)
 Constructs a Persistence::Engine with the specified stream in the given mode. More...
 
void sync ()
 This Flushes the buffers and closes the Persistence::Engine this must happen before the underlying stream is shut down. More...
 
bool more ()
 This says there are more objects to deserialize. More...
 
virtual ~Engine ()
 
void write (const BaseObject &object) THROWS(PersistException)
 writes a BaseObject from a reference. More...
 
void write (const BaseObject *object) THROWS(PersistException)
 writes a BaseObject from a pointer. More...
 
void write (int8 i) THROWS(PersistException)
 
void write (uint8 i) THROWS(PersistException)
 
void write (int16 i) THROWS(PersistException)
 
void write (uint16 i) THROWS(PersistException)
 
void write (int32 i) THROWS(PersistException)
 
void write (uint32 i) THROWS(PersistException)
 
void write (float i) THROWS(PersistException)
 
void write (double i) THROWS(PersistException)
 
void write (const String &str) THROWS(PersistException)
 
void write (const std::string &str) THROWS(PersistException)
 
void writeBinary (const uint8 *data, const uint32 size) THROWS(PersistException)
 
void read (BaseObject &object) THROWS(PersistException)
 reads a BaseObject into a reference overwriting the object. More...
 
void read (BaseObject *&object) THROWS(PersistException)
 reads a BaseObject into a pointer allocating memory for the object if necessary. More...
 
void read (int8 &i) THROWS(PersistException)
 
void read (uint8 &i) THROWS(PersistException)
 
void read (int16 &i) THROWS(PersistException)
 
void read (uint16 &i) THROWS(PersistException)
 
void read (int32 &i) THROWS(PersistException)
 
void read (uint32 &i) THROWS(PersistException)
 
void read (float &i) THROWS(PersistException)
 
void read (double &i) THROWS(PersistException)
 
void read (String &str) THROWS(PersistException)
 
void read (std::string &str) THROWS(PersistException)
 
void readBinary (uint8 *data, uint32 size) THROWS(PersistException)
 

Private Types

typedef std::vector< BaseObject * > ArchiveVector
 Typedefs for the Persistence::BaseObject support. More...
 
typedef std::map< BaseObject
const *, int32 > 
ArchiveMap
 
typedef std::vector< StringClassVector
 
typedef std::map< String, int32 > ClassMap
 

Private Member Functions

void readObject (BaseObject *object) THROWS(PersistException)
 reads the actual object data into a pre-instantiated object pointer by calling the read function of the derived class. More...
 
const String readClass () THROWS(PersistException)
 reads in a class name, and caches it into the ClassMap. More...
 

Private Attributes

std::iostream & myUnderlyingStream
 The underlying stream. More...
 
EngineMode myOperationalMode
 The mode of the engine. More...
 
ArchiveVector myArchiveVector
 
ArchiveMap myArchiveMap
 
ClassVector myClassVector
 
ClassMap myClassMap
 
bool use_compression
 

Related Functions

(Note that these are not member functions.)

__EXPORT Engineoperator>> (Engine &ar, BaseObject &ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, BaseObject *&ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, BaseObject const &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, BaseObject const *ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, int8 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, int8 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, uint8 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, uint8 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, int16 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, int16 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, uint16 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, uint16 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, int32 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, int32 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, uint32 &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, uint32 ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, float &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, float ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, double &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, double ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, String &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, String ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, std::string &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, std::string ob) THROWS(PersistException)
 
__EXPORT Engineoperator>> (Engine &ar, bool &ob) THROWS(PersistException)
 
__EXPORT Engineoperator<< (Engine &ar, bool ob) THROWS(PersistException)
 
template<class T >
Engineoperator<< (Engine &ar, typename std::vector< T > const &ob) THROWS(PersistException)
 The following are templated classes. More...
 
template<class T >
Engineoperator>> (Engine &ar, typename std::vector< T > &ob) THROWS(PersistException)
 
template<class T >
Engineoperator<< (Engine &ar, typename std::deque< T > const &ob) THROWS(PersistException)
 
template<class T >
Engineoperator>> (Engine &ar, typename std::deque< T > &ob) THROWS(PersistException)
 
template<class Key , class Value >
Engineoperator<< (Engine &ar, typename std::map< Key, Value > const &ob) THROWS(PersistException)
 
template<class Key , class Value >
Engineoperator>> (Engine &ar, typename std::map< Key, Value > &ob) THROWS(PersistException)
 
template<class x , class y >
Engineoperator<< (Engine &ar, std::pair< x, y > &ob) THROWS(PersistException)
 
template<class x , class y >
Engineoperator>> (Engine &ar, std::pair< x, y > &ob) THROWS(PersistException)
 

Detailed Description

Engine.

This class constructs on a standard C++ STL stream and then operates in the mode specified. The stream passed into the constructor must be a binary mode to function properly.

Author
Daniel Silverstone stream serialization of persistent classes.

Definition at line 252 of file persist.h.

Member Typedef Documentation

typedef std::map<BaseObject const*, int32> Engine::ArchiveMap
private

Definition at line 384 of file persist.h.

typedef std::vector<BaseObject*> Engine::ArchiveVector
private

Typedefs for the Persistence::BaseObject support.

Definition at line 383 of file persist.h.

typedef std::map<String, int32> Engine::ClassMap
private

Definition at line 386 of file persist.h.

typedef std::vector<String> Engine::ClassVector
private

Definition at line 385 of file persist.h.

Member Enumeration Documentation

These are the modes the Persistence::Engine can work in.

Enumerator
modeRead 
modeWrite 

Definition at line 258 of file persist.h.

Constructor & Destructor Documentation

Engine::Engine ( std::iostream &  stream,
EngineMode  mode,
bool  compress = true 
)

Constructs a Persistence::Engine with the specified stream in the given mode.

The stream must be initialised properly prior to this call or problems will ensue. If built using zlib compress can be used to enable compression

virtual Engine::~Engine ( )
virtual

Member Function Documentation

bool Engine::more ( )

This says there are more objects to deserialize.

void Engine::read ( BaseObject object)

reads a BaseObject into a reference overwriting the object.

void Engine::read ( BaseObject *&  object)

reads a BaseObject into a pointer allocating memory for the object if necessary.

void Engine::read ( int8 &  i)
inline

Definition at line 337 of file persist.h.

void Engine::read ( uint8 &  i)
inline

Definition at line 338 of file persist.h.

void Engine::read ( int16 &  i)
inline

Definition at line 339 of file persist.h.

void Engine::read ( uint16 &  i)
inline

Definition at line 340 of file persist.h.

void Engine::read ( int32 &  i)
inline

Definition at line 341 of file persist.h.

void Engine::read ( uint32 &  i)
inline

Definition at line 342 of file persist.h.

void Engine::read ( float &  i)
inline

Definition at line 347 of file persist.h.

void Engine::read ( double &  i)
inline

Definition at line 348 of file persist.h.

void Engine::read ( String str)
void Engine::read ( std::string &  str)
void Engine::readBinary ( uint8 *  data,
uint32  size 
)
const String Engine::readClass ( )
private

reads in a class name, and caches it into the ClassMap.

void Engine::readObject ( BaseObject object)
private

reads the actual object data into a pre-instantiated object pointer by calling the read function of the derived class.

void Engine::sync ( )

This Flushes the buffers and closes the Persistence::Engine this must happen before the underlying stream is shut down.

void Engine::write ( const BaseObject object)
inline

writes a BaseObject from a reference.

Definition at line 290 of file persist.h.

void Engine::write ( const BaseObject object)

writes a BaseObject from a pointer.

void Engine::write ( int8  i)
inline

Definition at line 301 of file persist.h.

void Engine::write ( uint8  i)
inline

Definition at line 302 of file persist.h.

void Engine::write ( int16  i)
inline

Definition at line 303 of file persist.h.

void Engine::write ( uint16  i)
inline

Definition at line 304 of file persist.h.

void Engine::write ( int32  i)
inline

Definition at line 305 of file persist.h.

void Engine::write ( uint32  i)
inline

Definition at line 306 of file persist.h.

void Engine::write ( float  i)
inline

Definition at line 311 of file persist.h.

void Engine::write ( double  i)
inline

Definition at line 312 of file persist.h.

void Engine::write ( const String str)
void Engine::write ( const std::string &  str)
void Engine::writeBinary ( const uint8 *  data,
const uint32  size 
)

Friends And Related Function Documentation

__EXPORT Engine & operator<< ( Engine ar,
BaseObject const &  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
BaseObject const *  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
int8  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
uint8  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
int16  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
uint16  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
int32  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
uint32  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
float  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
double  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
String  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
std::string  ob 
)
related
__EXPORT Engine & operator<< ( Engine ar,
bool  ob 
)
related
template<class T >
Engine & operator<< ( Engine ar,
typename std::vector< T > const &  ob 
)
related

The following are templated classes.

serialize a vector of some serializable content to the engine

Definition at line 490 of file persist.h.

template<class T >
Engine & operator<< ( Engine ar,
typename std::deque< T > const &  ob 
)
related

serialize a deque of some serializable content to the engine

Definition at line 521 of file persist.h.

template<class Key , class Value >
Engine & operator<< ( Engine ar,
typename std::map< Key, Value > const &  ob 
)
related

serialize a map with keys/values which both are serializeable to an engine.

Definition at line 556 of file persist.h.

template<class x , class y >
Engine & operator<< ( Engine ar,
std::pair< x, y > &  ob 
)
related

serialize a pair of some serializable content to the engine.

Definition at line 588 of file persist.h.

__EXPORT Engine & operator>> ( Engine ar,
BaseObject ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
BaseObject *&  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
int8 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
uint8 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
int16 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
uint16 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
int32 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
uint32 &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
float &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
double &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
String ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
std::string &  ob 
)
related
__EXPORT Engine & operator>> ( Engine ar,
bool &  ob 
)
related
template<class T >
Engine & operator>> ( Engine ar,
typename std::vector< T > &  ob 
)
related

deserialize a vector of deserializable content from an engine.

Definition at line 504 of file persist.h.

template<class T >
Engine & operator>> ( Engine ar,
typename std::deque< T > &  ob 
)
related

deserialize a deque of deserializable content from an engine.

Definition at line 535 of file persist.h.

template<class Key , class Value >
Engine & operator>> ( Engine ar,
typename std::map< Key, Value > &  ob 
)
related

deserialize a map with keys/values which both are serializeable from an engine.

Definition at line 570 of file persist.h.

template<class x , class y >
Engine & operator>> ( Engine ar,
std::pair< x, y > &  ob 
)
related

deserialize a pair of some serializable content to the engine.

Definition at line 599 of file persist.h.

Field Documentation

ArchiveMap Engine::myArchiveMap
private

Definition at line 389 of file persist.h.

ArchiveVector Engine::myArchiveVector
private

Definition at line 388 of file persist.h.

ClassMap Engine::myClassMap
private

Definition at line 391 of file persist.h.

ClassVector Engine::myClassVector
private

Definition at line 390 of file persist.h.

EngineMode Engine::myOperationalMode
private

The mode of the engine.

read or write

Definition at line 378 of file persist.h.

std::iostream& Engine::myUnderlyingStream
private

The underlying stream.

Definition at line 373 of file persist.h.

bool Engine::use_compression
private

Definition at line 394 of file persist.h.


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