#include <persistenceManager.h>
Public Types |
|
Type Definitions
|
|
typedef void *(* | CreateMethod )() |
Create method type. |
|
Public Member Functions |
|
Constructors and Destructors
|
|
PersistenceManager () | |
Default constructor. |
|
PersistenceManager (const PersistenceManager &pm) | |
Copy constructor. |
|
PersistenceManager (::std::istream &is) | |
Detailed constructor with an input
stream. |
|
PersistenceManager (::std::ostream &os) | |
Detailed constructor with an output
stream. |
|
PersistenceManager (::std::istream &is,::std::ostream &os) | |
Detailed constructor with an input
stream and an output stream. |
|
virtual | ~PersistenceManager () |
Destructor. |
|
Layer 2 commands
|
|
virtual void | registerClass (String signature, const CreateMethod m) |
Register a create method for a
class. |
|
virtual void * | createObject (String signature) const |
Create an object of a registered
class. |
|
virtual Size | getNumberOfClasses () const |
Return the number of registerd
classes. |
|
virtual void | setOstream (::std::ostream &s) |
Set the output stream for persistent
objects. |
|
virtual void | setIstream (::std::istream &s) |
Set the input stream for persistent
objects. |
|
void | startOutput () |
Start the output to a persistent
stream. |
|
void | endOutput () |
Terminate the output to a persistent
stream. |
|
PersistentObject * | readObject () throw (Exception::GeneralException) |
Read a persistent object from the
stream. |
|
PersistenceManager & | operator<< (const PersistentObject &object) |
Write a persistent object to the
stream. |
|
PersistenceManager & | operator>> (PersistentObject *&object_ptr) |
Read a persistent object from a
stream. |
|
Layer 1 methods
|
|
template<typename T > | |
bool | checkObjectHeader (const T &, const char *name=0) |
Check an object header by
determining its stream name by using. |
|
bool | checkObjectHeader (const char *type_name) |
Check an object header by supplying
its stream name. |
|
template<typename T > | |
void | writeObjectHeader (const T *object, const char *name=0) |
Write an object Header. |
|
void | writeObjectTrailer (const char *name=0) |
Write an object trailer by calling.
|
|
bool | checkObjectTrailer (const char *name=0) |
Check an object trailer by calling.
|
|
template<typename T > | |
void | writePrimitive (const T &t, const char *name) |
Write a primitive member variable.
|
|
template<typename T > | |
bool | readPrimitive (T &t, const char *name) |
Read a primitive member variable.
|
|
template<typename T > | |
void | writeStorableObject (const T &t, const char *name) |
Write a storable object. |
|
template<typename T > | |
bool | readStorableObject (T &t, const char *name) |
Read a storable object. |
|
template<typename T > | |
void | writeObjectPointer (const T *object, const char *name) |
Write a pointer to a PersistentObject. |
|
template<typename T > | |
bool | readObjectPointer (T *&object, const char *name) |
Read a pointer to a PersistentObject. |
|
void | registerSmartPointer (boost::shared_ptr< PersistentObject > &s_ptr, PersistentObject *ptr) |
Register a smart pointer to a
PersistentObject.
|
|
template<typename T > | |
void | writeObjectReference (const T &object, const char *name) |
Write a reference to a PersistentObject. |
|
template<typename T > | |
bool | readObjectReference (T &object, const char *name) |
Read a reference to a PersistentObject. |
|
template<typename T > | |
void | writeObjectArray (const T *array, const char *name, Size size) |
Write an array of persistent
objects. |
|
template<typename T > | |
bool | readObjectArray (const T *array, const char *name, Size &size) |
Read an array of persistent objects.
|
|
template<typename T > | |
void | writeObjectPointerArray (T **arr, const char *name, const Size size) |
Write an array of pointers to
persistent objects. |
|
template<typename T > | |
bool | readObjectPointerArray (T **array, const char *name, Size &size) |
Read an array of persistent object
pointers. |
|
Layer 0 methods
|
|
virtual void | writeHeader (const char *type_name, const char *name, LongSize ptr)=0 |
Write the header for an object.
|
|
virtual bool | checkHeader (const char *type_name, const char *name, LongSize &ptr)=0 |
Check an object header. |
|
virtual void | writeTrailer (const char *name=0)=0 |
Write the trailer for an object.
|
|
virtual bool | checkTrailer (const char *name=0)=0 |
Check an object trailer. |
|
virtual void | writeStreamHeader ()=0 |
Write a start marker to the output
stream. |
|
virtual void | writeStreamTrailer ()=0 |
Write an end marker to the output
stream. |
|
virtual bool | checkStreamHeader ()=0 |
Check for the start marker in the
input stream. |
|
virtual bool | checkStreamTrailer ()=0 |
Check for the end marker in the
output stream. |
|
virtual bool | getObjectHeader (String &type_name, LongSize &ptr)=0 |
Get an (unknown) object header.
|
|
virtual void | writeName (const char *name)=0 |
Write a variable/member name.
|
|
virtual bool | checkName (const char *name)=0 |
Check for variable/member name.
|
|
virtual void | writeStorableHeader (const char *type_name, const char *name)=0 |
Write storable object header.
|
|
virtual bool | checkStorableHeader (const char *type_name, const char *name)=0 |
Check for storable object header.
|
|
virtual void | writeStorableTrailer ()=0 |
Write the trailer for a storable
object. |
|
virtual bool | checkStorableTrailer ()=0 |
Check for the trailer of a storable
object. |
|
virtual void | writePrimitiveHeader (const char *type_name, const char *name)=0 |
Write type header and name for a
primitive type. |
|
virtual bool | checkPrimitiveHeader (const char *type_name, const char *name)=0 |
Check for a type header and name for
a primitive type. |
|
virtual void | writePrimitiveTrailer ()=0 |
Write the trailer for a primitive
type. |
|
virtual bool | checkPrimitiveTrailer ()=0 |
Check for the trailer of a primitive
type. |
|
virtual void | writeObjectPointerHeader (const char *type_name, const char *name)=0 |
Write header for a pointer to a
PersistentObject.
|
|
virtual bool | checkObjectPointerHeader (const char *type_name, const char *name)=0 |
Check for header for a pointer to a
PersistentObject.
|
|
virtual void | writeObjectReferenceHeader (const char *type_name, const char *name)=0 |
Write header for a reference to a
PersistentObject.
|
|
virtual bool | checkObjectReferenceHeader (const char *type_name, const char *name)=0 |
Check for header for a reference to
a PersistentObject.
|
|
virtual void | writeObjectPointerArrayHeader (const char *type_name, const char *name, Size size)=0 |
Write header for an array of
pointers to PersistentObjects. |
|
virtual bool | checkObjectPointerArrayHeader (const char *type_name, const char *name, Size &size)=0 |
Check for header for an array of
pointers to PersistentObjects. |
|
virtual void | writeObjectPointerArrayTrailer ()=0 |
Write trailer for an array of
pointers to PersistentObjects. |
|
virtual bool | checkObjectPointerArrayTrailer ()=0 |
Check for trailer for an array of
pointers to PersistentObjects. |
|
virtual void | initializeOutputStream () |
Prepare the output stream for
output. |
|
virtual void | finalizeOutputStream () |
Prepare the output stream for
closing. |
|
virtual void | initializeInputStream () |
Prepare the input stream for
reading. |
|
virtual void | finalizeInputStream () |
Prepare the input stream for
closing. |
|
Put methods for primitive data types.
|
|
Persistence in BALL supports the following predefined
data types: {tabular}{lcc} Name & signed/unsigned
& Size (in bit)
|
|
virtual void | put (const char c)=0 |
Write a signed char to the output
stream. |
|
virtual void | put (const Byte c)=0 |
Write a single byte to the output
stream. |
|
virtual void | put (const Index i)=0 |
Write an Index to the output
stream. |
|
virtual void | put (const Size p)=0 |
Write a Position or a Size to the
output stream. |
|
virtual void | put (const bool b)=0 |
Write a boolean value to the output
stream. |
|
virtual void | put (const Real f)=0 |
Write a single precision floating
point number to the output stream. |
|
virtual void | put (const DoubleReal d)=0 |
Write a double precision floating
point number to the output stream. |
|
virtual void | put (const string &s)=0 |
Write a string to the
output. |
|
virtual void | put (const LongSize p)=0 |
Write a pointer to the
output. |
|
Get methods for primitive data types.
|
|
virtual void | get (char &c)=0 |
Read a signed char from the input
stream. |
|
virtual void | get (Byte &b)=0 |
Read a single Byte from the input
stream. |
|
virtual void | get (Index &s)=0 |
Read an Index from the input
stream. |
|
virtual void | get (Size &s)=0 |
Read a Size or a Position from the
input stream. |
|
virtual void | get (bool &b)=0 |
Read a boolean value from the input
stream. |
|
virtual void | get (Real &f)=0 |
Read a single precision floating
point number from the input stream. |
|
virtual void | get (DoubleReal &d)=0 |
Read a double precision floating
point number from the input stream. |
|
virtual void | get (string &s)=0 |
Read a string from the output
stream. |
|
virtual void | get (LongSize &p)=0 |
Read a 64-bit pointer from the input
stream. |
|
Protected Types |
|
typedef HashSet< const PersistentObject * > |
ObjectSet |
typedef std::list< const PersistentObject * > |
ObjectList |
typedef HashMap< LongSize, void * > | PointerMap |
typedef std::list< std::pair < void **, LongSize > > |
PointerList |
typedef std::list< std::pair < boost::shared_ptr < PersistentObject > *, LongSize > > |
SmartPointerList |
Protected Member Functions |
|
void | registerKernelClasses_ () |
void | addPointerPair_ (LongSize old_ptr, void *new_ptr) |
void | addNeededObjects_ () throw (Exception::GeneralException) |
bool | updatePointers_ () |
Protected Attributes |
|
StringHashMap< CreateMethod > | create_methods_ |
ObjectSet | object_out_ |
ObjectList | object_out_needed_ |
PointerMap | pointer_map_ |
PointerList | pointer_list_ |
SmartPointerList | smart_pointer_list_ |
ObjectList | object_in_ |
::std::ostream * | ostr_ |
::std::istream * | istr_ |
This class serializes and deserializes persistent objects and provides support for the implementation of the object-specific serialization methods persistentRead and persistentWrite . It defines three different layers:
typedef void*(* BALL::PersistenceManager::CreateMethod)() |
Create method type.
This type describes a method to dynamically create a
specific object. It should return a void
pointer for interface compatibility and doesn't take an
argument. It creates a new object and returns the object's
this
pointer (cast to void*
). The
getNew function (in the RTTI
namespace) is an example for such a method.
CREATE
BALL::PersistenceManager::PersistenceManager | ( | ::std::istream & | is | ) |
Detailed constructor with an input stream.
Creates a persistence manager object and assigns an input stream.
BALL::PersistenceManager::PersistenceManager | ( | ::std::ostream & | os | ) |
Detailed constructor with an output stream.
Creates a persistence manager object and assigns an output stream.
BALL::PersistenceManager::PersistenceManager | ( | ::std::istream & | is, | |
::std::ostream & | os | |||
) |
Detailed constructor with an input stream and an output stream.
Creates a persistence manager object and assigns an input stream and an output stream.
virtual BALL::PersistenceManager::~PersistenceManager | ( | ) | [virtual] |
Destructor.
Destruct the persistence manager and and clear up all data structures. The associated streams or sockets ( setIStream / setOStream ) are not closed.
virtual bool BALL::PersistenceManager::checkHeader | ( | const char * | type_name, | |
const char * | name, | |||
LongSize & | ptr | |||
) | [pure virtual] |
Check an object header.
type_name | the stream name of the class to be read | |
name | the expected name of the object | |
ptr | a reference to a PointerSizeUInt
to store the this pointer of the
object read from the stream |
ptr the pointer is set to the value read from the file
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by checkObjectHeader().
virtual bool BALL::PersistenceManager::checkName | ( | const char * | name | ) | [pure virtual] |
Check for variable/member name.
name | the name we want to check |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
bool BALL::PersistenceManager::checkObjectHeader | ( | const char * | type_name | ) |
Check an object header by supplying its stream name.
type_name | the stream name of the object type |
bool BALL::PersistenceManager::checkObjectHeader | ( | const T & | , | |
const char * | name =
0 |
|||
) |
Check an object header by determining its stream name by using.
object | an Object of type T | |
name | the expected name of the object |
References checkHeader().
virtual bool BALL::PersistenceManager::checkObjectPointerArrayHeader | ( | const char * | type_name, | |
const char * | name, | |||
Size & | size | |||
) | [pure virtual] |
Check for header for an array of pointers to PersistentObjects.
type_name | the stream name of the object type | |
name | the name of the object array (?) | |
size | the size of the array |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readObjectPointerArray().
virtual bool BALL::PersistenceManager::checkObjectPointerArrayTrailer | ( | ) | [pure virtual] |
Check for trailer for an array of pointers to PersistentObjects.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readObjectPointerArray().
virtual bool BALL::PersistenceManager::checkObjectPointerHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Check for header for a pointer to a PersistentObject.
type_name | the stream name of the object type | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readObjectPointer().
virtual bool BALL::PersistenceManager::checkObjectReferenceHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Check for header for a reference to a PersistentObject.
type_name | the stream name of the object type | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readObjectReference().
bool BALL::PersistenceManager::checkObjectTrailer | ( | const char * | name =
0 |
) |
virtual bool BALL::PersistenceManager::checkPrimitiveHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Check for a type header and name for a primitive type.
type_name | the stream name of the primitive | |
name | the name of the primitive |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readPrimitive().
virtual bool BALL::PersistenceManager::checkPrimitiveTrailer | ( | ) | [pure virtual] |
Check for the trailer of a primitive type.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readObjectPointer(), readObjectReference(), and readPrimitive().
virtual bool BALL::PersistenceManager::checkStorableHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Check for storable object header.
type_name | the stream name of the storable object | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readStorableObject().
virtual bool BALL::PersistenceManager::checkStorableTrailer | ( | ) | [pure virtual] |
Check for the trailer of a storable object.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by readStorableObject().
virtual bool BALL::PersistenceManager::checkStreamHeader | ( | ) | [pure virtual] |
Check for the start marker in the input stream.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
virtual bool BALL::PersistenceManager::checkStreamTrailer | ( | ) | [pure virtual] |
Check for the end marker in the output stream.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
virtual bool BALL::PersistenceManager::checkTrailer | ( | const char * | name =
0 |
) | [pure virtual] |
Check an object trailer.
This method checks the trailer of an object.
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
virtual void* BALL::PersistenceManager::createObject | ( | String | signature | ) | const [virtual] |
Create an object of a registered class.
If the persistence manager has registered a create method for the given class signature, the corresponding create method is called and its result is returned. If the class is not registered, 0 is returned.
signature | the class signature of the object to be created |
void BALL::PersistenceManager::endOutput | ( | ) |
Terminate the output to a persistent stream.
This method finishes the writing of a persistent object to a stream. In fact, it does most of the work. It checks for the list of "missing" objects, i.e. objects that have been referenced via a pointer or a reference by the objects written before and calls their persistent write methods. It then writes an end marker to the file (via writeStreamTrailer) and clears the pending output list.
operator >>
.virtual Size BALL::PersistenceManager::getNumberOfClasses | ( | ) | const [virtual] |
Return the number of registerd classes.
virtual bool BALL::PersistenceManager::getObjectHeader | ( | String & | type_name, | |
LongSize & | ptr | |||
) | [pure virtual] |
Get an (unknown) object header.
The name (if set) is ignored. The type name is returned
in type_name
and the address of the object is
read but not inserted into the table.
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
PersistenceManager& BALL::PersistenceManager::operator<< | ( | const PersistentObject & | object | ) |
Write a persistent object to the stream.
This method writes a persistent object to a stream.
PersistenceManager& BALL::PersistenceManager::operator>> | ( | PersistentObject *& | object_ptr | ) |
Read a persistent object from a stream.
This method calls readObject .
PersistentObject* BALL::PersistenceManager::readObject | ( | ) | throw (Exception::GeneralException) |
Read a persistent object from the stream.
This method tries to read a persistent object from the stream, creates the object and all dependend objects, finally demangles all pointers and references.
this
pointer otherwisebool BALL::PersistenceManager::readObjectArray | ( | const T * | array, | |
const char * | name, | |||
Size & | size | |||
) |
Read an array of persistent objects.
This method reads size
persistent objects
from the persistent stream. It also checks header and
trailer of the array.
array | the array of persistent objects | |
name | the name (usually the name of the member variable) | |
size | the number of elements in the array |
bool BALL::PersistenceManager::readObjectPointer | ( | T *& | object, | |
const char * | name | |||
) |
Read a pointer to a PersistentObject.
This method also checks header and trailer.
object | a mutable pointer reference we want to read. | |
name | the name of the object pointer (usually the name of the member variable) |
References checkObjectPointerHeader(), and checkPrimitiveTrailer().
bool BALL::PersistenceManager::readObjectPointerArray | ( | T ** | array, | |
const char * | name, | |||
Size & | size | |||
) |
Read an array of persistent object pointers.
This method reads size
persistent object
pointers from the persistent stream. It also checks header
and trailer of the array.
array | the array of persistent object pointers | |
name | the name (usually the name of the member variable) | |
size | the number of elements in the array |
References checkObjectPointerArrayHeader(), and checkObjectPointerArrayTrailer().
bool BALL::PersistenceManager::readObjectReference | ( | T & | object, | |
const char * | name | |||
) |
Read a reference to a PersistentObject.
This method also checks header and trailer of the object reference.
object | a mutable reference | |
name | the name of the object (usually the name of the member variable) |
References checkObjectReferenceHeader(), and checkPrimitiveTrailer().
bool BALL::PersistenceManager::readPrimitive | ( | T & | t, | |
const char * | name | |||
) |
Read a primitive member variable.
This method also checks header and trailer of the primitive.
t | a mutable reference of the primitive variable | |
name | the expected name of the variable |
References checkPrimitiveHeader(), and checkPrimitiveTrailer().
Referenced by BALL::TVector3< T >::read().
bool BALL::PersistenceManager::readStorableObject | ( | T & | t, | |
const char * | name | |||
) |
Read a storable object.
This method also checks header and trailer of the object.
t | a mutable reference of the object | |
name | the expected name of the object |
References checkStorableHeader(), and checkStorableTrailer().
virtual void BALL::PersistenceManager::registerClass | ( | String | signature, | |
const CreateMethod | m | |||
) | [virtual] |
Register a create method for a class.
Each object read by the persistence manager has to be constructed somehow. The persistence manager first reads a class' signature (i.e. a unique identifier in the context of this stream). This is usually the stream name of the class (see getStreamName ), but can be an arbitrary string (without blanks). When reading an object header with a given class signature, the persistence manager tries to find a method to create an instance of this object. For this purpose it contains a StringHashMap object. Each of the classes to be read has to be contained in this hash map together with a method to create an instance of this object. This is done by calling registerClass. The create method is usually the getNew method for a class:
PersistenceManager pm; pm.registerClass(RTTI::getStreamName<Atom>(), RTTI::getNew<Atom>); pm.registerClass(RTTI::getStreamName<Composite>(), RTTI::getNew<Composite>);
signature | the class signatur | |
m | a dynamic class create method |
void BALL::PersistenceManager::registerSmartPointer | ( | boost::shared_ptr< PersistentObject > & | s_ptr, | |
PersistentObject * | ptr | |||
) |
Register a smart pointer to a PersistentObject.
This method registers a shared pointer for later updating when an object with corresponding this pointer has been read. If s_ptr currently points to zero this method is a noop.
s_ptr | a mutable shared_ptr reference for later update | |
ptr | the pointer stub for the this pointer |
virtual void BALL::PersistenceManager::setIstream | ( | ::std::istream & | s | ) | [virtual] |
Set the input stream for persistent objects.
s | the input stream |
virtual void BALL::PersistenceManager::setOstream | ( | ::std::ostream & | s | ) | [virtual] |
Set the output stream for persistent objects.
s | the output stream |
void BALL::PersistenceManager::startOutput | ( | ) |
Start the output to a persistent stream.
This method write a start marker to the output stream and prepares the stream and the persistence manager's internal data structures for the output of an object. The start marker is written via the method writeStreamHeader .
operator >>
.virtual void BALL::PersistenceManager::writeHeader | ( | const char * | type_name, | |
const char * | name, | |||
LongSize | ptr | |||
) | [pure virtual] |
Write the header for an object.
This method writes the header information containing the
class signature, the name and its this
pointer
. The name information is required to
differentiate between base classes of an object and member
objects or the object itself. If writeHeader is called for
a base class, name should be set to 0.
type_name
should refer to the stream name of
an object (see getStreamName
).
name
should
be set to ""
. For base classes, name has to
be set to 0. The exact behaviour of this method is
implementation dependend - it is abstract for PersistenceManager.Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writeObjectHeader().
virtual void BALL::PersistenceManager::writeName | ( | const char * | name | ) | [pure virtual] |
Write a variable/member name.
name | the name we want to write |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
void BALL::PersistenceManager::writeObjectArray | ( | const T * | array, | |
const char * | name, | |||
Size | size | |||
) |
Write an array of persistent objects.
This method writes size
persistent objects
to the persistent stream. It also writes the necessary
header and trailer.
array | the array of persistent objects | |
name | the name (usually the name of the member variable) | |
size | the number of elements in the array |
References writeObjectPointerArrayHeader(), and writeObjectPointerArrayTrailer().
void BALL::PersistenceManager::writeObjectHeader | ( | const T * | object, | |
const char * | name =
0 |
|||
) |
Write an object Header.
Determine the stream name of the object via
object | a const pointer to the object | |
name | the name of the object |
References BALL::HashSet< Key >::insert(), and writeHeader().
void BALL::PersistenceManager::writeObjectPointer | ( | const T * | object, | |
const char * | name | |||
) |
Write a pointer to a PersistentObject.
This method also writes the necessary header and trailer.
object | a const pointer to the object we want to write | |
name | the name of the object pointer (the name of the member variable written) |
References BALL::HashSet< Key >::has(), put(), writeObjectPointerHeader(), and writePrimitiveTrailer().
void BALL::PersistenceManager::writeObjectPointerArray | ( | T ** | arr, | |
const char * | name, | |||
const Size | size | |||
) |
Write an array of pointers to persistent objects.
This method writes size
persistent objects
to the persistent stream. It also writes the necessary
header and trailer.
arr | the array of persistent object pointers | |
name | the name (usually the name of the member variable) | |
size | the number of elements in the array |
virtual void BALL::PersistenceManager::writeObjectPointerArrayHeader | ( | const char * | type_name, | |
const char * | name, | |||
Size | size | |||
) | [pure virtual] |
Write header for an array of pointers to PersistentObjects.
type_name | the stream name of the object type | |
name | the name of the object array (?) | |
size | the size of the array |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writeObjectArray().
virtual void BALL::PersistenceManager::writeObjectPointerHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Write header for a pointer to a PersistentObject.
type_name | the stream name of the object type | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writeObjectPointer().
void BALL::PersistenceManager::writeObjectReference | ( | const T & | object, | |
const char * | name | |||
) |
Write a reference to a PersistentObject.
This method also writes the necessary header and trailer.
object | a const reference to the object | |
name | the name of the object (usually the name of the member variable) |
References BALL::HashSet< Key >::has(), put(), writeObjectReferenceHeader(), and writePrimitiveTrailer().
virtual void BALL::PersistenceManager::writeObjectReferenceHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Write header for a reference to a PersistentObject.
type_name | the stream name of the object type | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writeObjectReference().
void BALL::PersistenceManager::writeObjectTrailer | ( | const char * | name =
0 |
) |
void BALL::PersistenceManager::writePrimitive | ( | const T & | t, | |
const char * | name | |||
) |
Write a primitive member variable.
This method also writes the necessary header and trailer of the primitive.
t | the variable | |
name | the name of the variable |
References put(), writePrimitiveHeader(), and writePrimitiveTrailer().
Referenced by BALL::TVector3< T >::write().
virtual void BALL::PersistenceManager::writePrimitiveHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Write type header and name for a primitive type.
type_name | the stream name of the primitive | |
name | the name of the primitive |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writePrimitive().
virtual void BALL::PersistenceManager::writeStorableHeader | ( | const char * | type_name, | |
const char * | name | |||
) | [pure virtual] |
Write storable object header.
type_name | the stream name of the storable object | |
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.
Referenced by writeStorableObject().
void BALL::PersistenceManager::writeStorableObject | ( | const T & | t, | |
const char * | name | |||
) |
Write a storable object.
This method also writes header and trailer of the object.
t | the storable object | |
name | the name of the object |
References writeStorableHeader(), and writeStorableTrailer().
virtual void BALL::PersistenceManager::writeTrailer | ( | const char * | name =
0 |
) | [pure virtual] |
Write the trailer for an object.
name | the name of the object |
Implemented in BALL::TextPersistenceManager, and BALL::XDRPersistenceManager.