iso::serialize::SerializeManager Class Reference

handles serialization More...

#include <iso_serialize_manager.h>

Inherits iso::serialize::Serializable.

Inheritance diagram for iso::serialize::SerializeManager:

Inheritance graph
[legend]
Collaboration diagram for iso::serialize::SerializeManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual SerializeData serialize (const base::String &pSerialName=sClassName) const
 create serializeData for serialize manager
SerializablegetSerializable (const base::String &pName) throw (SerializeException)
 retrieve pointer to serializable object via name
SerializablecreateSerializable (const base::String &pName, const SerializeData &pSerializeData) throw (SerializeException)
 create new serializable from serialize data
void storeSerializable (const base::String &pName, Serializable *pSerializable) throw (SerializeException)
 store pointer to serializable object in hash table
template<class Type>
base::String registerSerializable (const base::String &pName) throw (SerializeException)
 store deSerialization function pointer in hash table
void setFilePath (const base::String &pFileSuffix, const base::String &pFilePath) throw (SerializeException)
 set file path for serialization files
SerializeData read (const base::String &pFile) throw (SerializeException)
 read serialization file
void write (const SerializeData &pSerializeData, const base::String &pFileName, const base::String &pFileType) throw (SerializeException)
 write serialization file
base::String info () const
 obtain textual serialize manager information

Static Public Member Functions

static SerializeManagerget ()
 get singleton instance
static SerializeManagerget (const SerializeData &pSerializeData) throw (SerializeException)
 get singleton instance
static void destroy ()
 destroy singleton instance
static SerializabledeSerialize (const SerializeData &pSerializeData) throw (SerializeException)
 create serialization manager from SerializeData

Static Public Attributes

static const base::String sClassName
 default name

Protected Member Functions

 SerializeManager ()
 default constructor
 SerializeManager (const SerializeData &pSerializeData) throw (SerializeException)
 serialization based constructor
 ~SerializeManager ()
 destructor
base::String createFileName (const base::String &pFileName) const
 construct file name

Protected Attributes

QHash< base::String, CreateSerializablePtrmSerializableFactory
 association : serializable class name / deSerialize function pointer
QHash< base::String, Serializable * > mSerializableStorage
 asssociation : serializable object name / serializable object pointer
SerializeParsermSerializeParser
 XML <-> SerializeData converter.
QHash< base::String, base::String > mFilePaths
 file suffix / file path association

Static Protected Attributes

static SerializeManagersSerializeManager
 singleton class instance

Friends

std::ostream & operator<< (std::ostream &pOstream, const SerializeManager &pSerializeManager)
 print serialize manager information

Detailed Description

handles serialization

read and writes serialization files it parses the file suffixes and then delegates everything it does to an appropriate specialized config manager config files are distinguished purely based on their suffix in addition, is stores all kinds of intermediate values that help in object serialization:

Created by Daniel Bisig on 8/19/06. Copyright 2006 Daniel Bisig All rights reserved.


Constructor & Destructor Documentation

SerializeManager::SerializeManager (  )  [protected]

default constructor

SerializeManager::SerializeManager ( const SerializeData pSerializeData  )  throw (SerializeException) [protected]

serialization based constructor

Parameters:
pSerializeData serialization data
Exceptions:
SerializeException unable to create serialization manager

SerializeManager::~SerializeManager (  )  [protected]

destructor


Member Function Documentation

SerializeManager & SerializeManager::get (  )  [static]

get singleton instance

Returns:
singleton instance

SerializeManager & SerializeManager::get ( const SerializeData pSerializeData  )  throw (SerializeException) [static]

get singleton instance

Parameters:
pSerializeData serialization data
Returns:
singleton instance
Exceptions:
SerializeException unable to create serialization manager

void SerializeManager::destroy (  )  [static]

destroy singleton instance

SerializeData SerializeManager::serialize ( const base::String &  pSerialName = sClassName  )  const [virtual]

create serializeData for serialize manager

Returns:
serializeData

Implements iso::serialize::Serializable.

Serializable * SerializeManager::deSerialize ( const SerializeData pSerializeData  )  throw (SerializeException) [static]

create serialization manager from SerializeData

Parameters:
pSerializeData SerializeData
Returns:
Serializable
Exceptions:
SerializeException incompatible SerializeData

Reimplemented from iso::serialize::Serializable.

Serializable * SerializeManager::getSerializable ( const base::String &  pName  )  throw (SerializeException)

retrieve pointer to serializable object via name

Parameters:
pName name of serializable object
Returns:
serializable
Exceptions:
SerializeException unknown name

Serializable * SerializeManager::createSerializable ( const base::String &  pName,
const SerializeData pSerializeData 
) throw (SerializeException)

create new serializable from serialize data

Parameters:
pName hash key for serializable (typically the class name)
pSerializeData serializeData
Returns:
serializable
Exceptions:
SerializeException unknown object class name

void SerializeManager::storeSerializable ( const base::String &  pName,
Serializable pSerializable 
) throw (SerializeException)

store pointer to serializable object in hash table

Parameters:
pName serializable object name
pSerializable serializable pointer
Exceptions:
SerializeException serializable cannot be stored (duplicate class name)
stores pointer to a serializable object which might need to be retrieved by other serializable objects during the deSerialization process

template<class Type>
base::String iso::serialize::SerializeManager::registerSerializable ( const base::String &  pName  )  throw (SerializeException)

store deSerialization function pointer in hash table

Parameters:
pName hash key for serializable (typically the class name)
Exceptions:
SerializeException serializable cannot be stored (duplicate class name)
this function stores a pointer to the deSerialize function of a serializable class. this function pointer will be dereferenced when a serializable object needs to be created via getSerializable function

void SerializeManager::setFilePath ( const base::String &  pFileSuffix,
const base::String &  pFilePath 
) throw (SerializeException)

set file path for serialization files

Parameters:
pFileSuffix file suffix
pFilePath file path
Exceptions:
SerializeException duplicate file suffix

SerializeData SerializeManager::read ( const base::String &  pFile  )  throw (SerializeException)

read serialization file

Parameters:
pFile serialization file name
Returns:
SerializeData
Exceptions:
SerializeException read error

void SerializeManager::write ( const SerializeData pSerializeData,
const base::String &  pFileName,
const base::String &  pFileType 
) throw (SerializeException)

write serialization file

Parameters:
pSerializeData serialization data
pFileName serialization file name
pFileType serialization file type
Exceptions:
SerializeException write error

base::String SerializeManager::info (  )  const

obtain textual serialize manager information

Returns:
String containing serialize manager information

base::String SerializeManager::createFileName ( const base::String &  pFileName  )  const [protected]

construct file name

Parameters:
pFileName original file name
Returns:
new file name
if the filename does not contain path information, it tries to construct path information based on the file name's suffix.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  pOstream,
const SerializeManager pSerializeManager 
) [friend]

print serialize manager information


Member Data Documentation

const base::String SerializeManager::sClassName [static]

default name

Reimplemented from iso::serialize::Serializable.

SerializeManager * SerializeManager::sSerializeManager [static, protected]

singleton class instance

QHash< base::String, CreateSerializablePtr > iso::serialize::SerializeManager::mSerializableFactory [protected]

association : serializable class name / deSerialize function pointer

QHash<base::String, Serializable*> iso::serialize::SerializeManager::mSerializableStorage [protected]

asssociation : serializable object name / serializable object pointer

the serializables stored in this hashtable are objects, whose memory position needs to be know by other objects. These other objects can retreive these pointers by providing the names of the other objects.

SerializeParser& iso::serialize::SerializeManager::mSerializeParser [protected]

XML <-> SerializeData converter.

QHash<base::String, base::String> iso::serialize::SerializeManager::mFilePaths [protected]

file suffix / file path association


The documentation for this class was generated from the following files:
Generated on Fri Feb 25 14:07:19 2011 for iso_serialize by  doxygen 1.5.1