BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members
BALL::XDRPersistenceManager Class Reference

#include <BALL/CONCEPT/XDRPersistenceManager.h>

Inheritance diagram for BALL::XDRPersistenceManager:
BALL::PersistenceManager

Public Member Functions

Constructors and Destructors
 XDRPersistenceManager ()
 
 XDRPersistenceManager (std::istream &is)
 
 XDRPersistenceManager (std::ostream &os)
 
 XDRPersistenceManager (std::istream &is, std::ostream &os)
 
Layer 0 methods
virtual void writeHeader (const char *type_name, const char *name, LongSize ptr)
 
virtual bool checkHeader (const char *type_name, const char *name, LongSize &ptr)
 
virtual void writeTrailer (const char *name=0)
 
virtual bool checkTrailer (const char *name=0)
 
virtual void writeStreamHeader ()
 
virtual void writeStreamTrailer ()
 
virtual bool checkStreamHeader ()
 
virtual bool checkStreamTrailer ()
 
virtual bool getObjectHeader (String &type_name, LongSize &ptr)
 
virtual void writeName (const char *name)
 
virtual bool checkName (const char *name)
 
virtual void writeStorableHeader (const char *type_name, const char *name)
 
virtual bool checkStorableHeader (const char *type_name, const char *name)
 
virtual void writePrimitiveHeader (const char *type_name, const char *name)
 
virtual bool checkPrimitiveHeader (const char *type_name, const char *name)
 
virtual void writeStorableTrailer ()
 
virtual bool checkStorableTrailer ()
 
virtual void writePrimitiveTrailer ()
 
virtual bool checkPrimitiveTrailer ()
 
virtual void writeObjectPointerHeader (const char *type_name, const char *name)
 
virtual bool checkObjectPointerHeader (const char *type_name, const char *name)
 
virtual void writeObjectReferenceHeader (const char *type_name, const char *name)
 
virtual bool checkObjectReferenceHeader (const char *type_name, const char *name)
 
virtual void writeObjectPointerArrayHeader (const char *type_name, const char *name, Size size)
 
virtual bool checkObjectPointerArrayHeader (const char *type_name, const char *name, Size &size)
 
virtual void writeObjectPointerArrayTrailer ()
 
virtual bool checkObjectPointerArrayTrailer ()
 
virtual void initializeOutputStream ()
 
virtual void finalizeOutputStream ()
 
virtual void initializeInputStream ()
 
virtual void finalizeInputStream ()
 
Put methods for primitive data types.
virtual void put (const char c)
 
virtual void put (const Byte b)
 
virtual void put (const Index i)
 
virtual void put (const Size s)
 
virtual void put (const bool b)
 
virtual void put (const Real f)
 
virtual void put (const DoubleReal d)
 
virtual void put (const string &s)
 
virtual void put (const LongSize p)
 
Get methods for primitive data types.
virtual void get (char &c)
 
virtual void get (Byte &c)
 
virtual void get (Index &s)
 
virtual void get (Size &s)
 
virtual void get (bool &b)
 
virtual void get (Real &f)
 
virtual void get (DoubleReal &d)
 
virtual void get (string &s)
 
virtual void get (LongSize &p)
 
void setHandleStreamsExternally (bool handle_externally)
 
- Public Member Functions inherited from BALL::PersistenceManager
 PersistenceManager ()
 
 PersistenceManager (const PersistenceManager &pm)
 
 PersistenceManager (::std::istream &is)
 
 PersistenceManager (::std::ostream &os)
 
 PersistenceManager (::std::istream &is,::std::ostream &os)
 
virtual ~PersistenceManager ()
 
virtual void registerClass (String signature, const CreateMethod m)
 
virtual void * createObject (String signature) const
 
virtual Size getNumberOfClasses () const
 
virtual void setOstream (::std::ostream &s)
 
virtual void setIstream (::std::istream &s)
 
void startOutput ()
 
void endOutput ()
 
PersistentObjectreadObject ()
 
PersistenceManageroperator<< (const PersistentObject &object)
 
PersistenceManageroperator>> (PersistentObject *&object_ptr)
 
template<typename T >
bool checkObjectHeader (const T &, const char *name=0)
 
bool checkObjectHeader (const char *type_name)
 
template<typename T >
void writeObjectHeader (const T *object, const char *name=0)
 
void writeObjectTrailer (const char *name=0)
 
bool checkObjectTrailer (const char *name=0)
 
template<typename T >
void writePrimitive (const T &t, const char *name)
 
template<typename T >
bool readPrimitive (T &t, const char *name)
 
template<typename T >
void writeStorableObject (const T &t, const char *name)
 
template<typename T >
bool readStorableObject (T &t, const char *name)
 
template<typename T >
void writeObjectPointer (const T *object, const char *name)
 
template<typename T >
bool readObjectPointer (T *&object, const char *name)
 
template<typename T >
bool readObjectSmartPointer (boost::shared_ptr< T > &s_ptr, const char *name)
 
template<typename T >
void writeObjectReference (const T &object, const char *name)
 
template<typename T >
bool readObjectReference (T &object, const char *name)
 
template<typename T >
void writeObjectArray (const T *array, const char *name, Size size)
 
template<typename T >
bool readObjectArray (const T *array, const char *name, Size &size)
 
template<typename T >
void writeObjectPointerArray (T **arr, const char *name, const Size size)
 
template<typename T >
bool readObjectPointerArray (T **array, const char *name, Size &size)
 

Static Public Attributes

Constants
static const Size STREAM_HEADER
 
static const Size STREAM_TRAILER
 
static const Size OBJECT_HEADER
 
static const Size OBJECT_TRAILER
 

Additional Inherited Members

- Public Types inherited from BALL::PersistenceManager
typedef void *(* CreateMethod )()
 
- Protected Types inherited from BALL::PersistenceManager
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 inherited from BALL::PersistenceManager
void registerKernelClasses_ ()
 
void addPointerPair_ (LongSize old_ptr, void *new_ptr)
 
void addNeededObjects_ ()
 
bool updatePointers_ ()
 
- Protected Attributes inherited from BALL::PersistenceManager
StringHashMap< CreateMethodcreate_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_
 

Detailed Description

XDR-format-based persistence manager. This class implements a persistence manager that reads and writes its objects in a portable binary format.

See also
TextPersistenceManager

Definition at line 24 of file XDRPersistenceManager.h.

Constructor & Destructor Documentation

BALL::XDRPersistenceManager::XDRPersistenceManager ( )

Default constructor.

BALL::XDRPersistenceManager::XDRPersistenceManager ( std::istream &  is)

Detailed constructor with an input stream

BALL::XDRPersistenceManager::XDRPersistenceManager ( std::ostream &  os)

Detailed constructor with an output stream

BALL::XDRPersistenceManager::XDRPersistenceManager ( std::istream &  is,
std::ostream &  os 
)

Detailed constructor with an input stream and an output stream.

Member Function Documentation

virtual bool BALL::XDRPersistenceManager::checkHeader ( const char *  type_name,
const char *  name,
LongSize ptr 
)
virtual

Check for an object header. This method reads an int form the input stream (using xdr_int) and returns true if the value read equals OBJECT_HEADER .

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkName ( const char *  name)
virtual

Check for variable/member name.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkObjectPointerArrayHeader ( const char *  type_name,
const char *  name,
Size size 
)
virtual

Check for header for an array of pointers to PersistentObjects.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkObjectPointerArrayTrailer ( )
virtual

Check for trailer for an array of pointers to PersistentObjects.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkObjectPointerHeader ( const char *  type_name,
const char *  name 
)
virtual

Check for header for a pointer to a PersistentObject.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkObjectReferenceHeader ( const char *  type_name,
const char *  name 
)
virtual

Check for header for a reference to a PersistentObject.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkPrimitiveHeader ( const char *  type_name,
const char *  name 
)
virtual

Check for a type header and name for a primitive type.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkPrimitiveTrailer ( )
virtual

Check the trailer of a primitive type.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkStorableHeader ( const char *  type_name,
const char *  name 
)
virtual

Check for storable object header.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkStorableTrailer ( )
virtual

Check for storable object trailer.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkStreamHeader ( )
virtual

Check for the start marker in the input stream.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkStreamTrailer ( )
virtual

Check for the end marker in the output stream.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::checkTrailer ( const char *  name = 0)
virtual

Check for an object trailer. This method reads an int form the input stream (using xdr_int) and returns true if the value read equals OBJECT_TRAILER .

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::finalizeInputStream ( )
virtual

Prepare the stream for closing. This method destroys the XDR output stream (using xdr_destroy).

Reimplemented from BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::finalizeOutputStream ( )
virtual

Prepare the stream for closing. This method destroys the XDR output stream (using xdr_destroy).

Reimplemented from BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( char &  c)
virtual

Read a signed char from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( Byte c)
virtual

Read a single byte from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( Index s)
virtual

Read an Index from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( Size s)
virtual

Read a Size or a Position from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( bool b)
virtual

Read a boolean value from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( Real f)
virtual

Read a single precision floating point number from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( DoubleReal d)
virtual

Read a double precision floating point number from the input stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( string &  s)
virtual

Read a string from the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::get ( LongSize p)
virtual

Read a pointer from the input stream.

Implements BALL::PersistenceManager.

virtual bool BALL::XDRPersistenceManager::getObjectHeader ( String type_name,
LongSize ptr 
)
virtual

Get an (unknown) object header.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::initializeInputStream ( )
virtual

Prepare the stream for output. This method creates an XDR output stream (using xdrrec_create) and prepares it for output.

Reimplemented from BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::initializeOutputStream ( )
virtual

Prepare the stream for output. This method creates an XDR output stream (using xdrrec_create) and prepares it for output.

Reimplemented from BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const char  c)
virtual

Write a signed char to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const Byte  b)
virtual

Write a single byte the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const Index  i)
virtual

Write an Index to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const Size  s)
virtual

Write a Size or a Position to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const bool  b)
virtual

Write a boolean value to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const Real  f)
virtual

Write a single precision floating point number to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const DoubleReal  d)
virtual

Write a double precision floating point number to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const string &  s)
virtual

Write a string to the output.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::put ( const LongSize  p)
virtual

Write a pointer to the output.

Implements BALL::PersistenceManager.

void BALL::XDRPersistenceManager::setHandleStreamsExternally ( bool  handle_externally)

AccesssorsWith this method, our caller can take responsibility for initializing and destroying the XDR streams.

virtual void BALL::XDRPersistenceManager::writeHeader ( const char *  type_name,
const char *  name,
LongSize  ptr 
)
virtual

Write an object header. This method stores OBJECT_HEADER as an int value to mark the start of an object (using xdr_int).

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeName ( const char *  name)
virtual

Write a variable/member name.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeObjectPointerArrayHeader ( const char *  type_name,
const char *  name,
Size  size 
)
virtual

Write header for an array of pointers to PersistentObjects.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeObjectPointerArrayTrailer ( )
virtual

Write trailer for an array of pointers to PersistentObjects.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeObjectPointerHeader ( const char *  type_name,
const char *  name 
)
virtual

Write header for a pointer to a PersistentObject.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeObjectReferenceHeader ( const char *  type_name,
const char *  name 
)
virtual

Write header for a reference to a PersistentObject.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writePrimitiveHeader ( const char *  type_name,
const char *  name 
)
virtual

Write type header and name for a primitive type.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writePrimitiveTrailer ( )
virtual

Write the trailer for a primitive type.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeStorableHeader ( const char *  type_name,
const char *  name 
)
virtual

Write storable object header.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeStorableTrailer ( )
virtual

Write storable object trailer.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeStreamHeader ( )
virtual

Write a start marker to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeStreamTrailer ( )
virtual

Write an end marker to the output stream.

Implements BALL::PersistenceManager.

virtual void BALL::XDRPersistenceManager::writeTrailer ( const char *  name = 0)
virtual

Write an object trailer. This method stores OBJECT_TRAILER as an int value to mark the start of an object (using xdr_int).

Implements BALL::PersistenceManager.

Member Data Documentation

const Size BALL::XDRPersistenceManager::OBJECT_HEADER
static

A constant value used to mark the beginning of an object

Definition at line 42 of file XDRPersistenceManager.h.

const Size BALL::XDRPersistenceManager::OBJECT_TRAILER
static

A constant value used to mark the end of an object

Definition at line 46 of file XDRPersistenceManager.h.

const Size BALL::XDRPersistenceManager::STREAM_HEADER
static

A constant value used to mark the beginning of a persistent stream

Definition at line 34 of file XDRPersistenceManager.h.

const Size BALL::XDRPersistenceManager::STREAM_TRAILER
static

A constant value used to mark the end of a persistent stream

Definition at line 38 of file XDRPersistenceManager.h.