persistentObject.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: persistentObject.h,v 1.16 2005/10/23 12:02:16 oliver Exp $
00005 //
00006 
00007 #ifndef BALL_CONCEPT_PERSISTENTOBJECT_H
00008 #define BALL_CONCEPT_PERSISTENTOBJECT_H
00009 
00010 #ifndef BALL_CONCEPT_OBJECT_H
00011 # include <BALL/CONCEPT/object.h>
00012 #endif
00013 
00014 namespace BALL 
00015 {
00016 
00017   class PersistenceManager;
00018 
00029   class BALL_EXPORT PersistentObject
00030     : public Object
00031   { 
00032     public:
00033 
00037 
00041     PersistentObject() 
00042       
00043       : Object()
00044     {
00045     }
00046     
00050     virtual ~PersistentObject() 
00051       
00052     {
00053     }
00055 
00059       
00070     PersistenceManager& operator >> (PersistenceManager& pm) const
00071       throw(Exception::GeneralException);
00072 
00082     virtual void persistentWrite(PersistenceManager& pm, const char* name = "") const
00083       throw(Exception::GeneralException);
00084 
00096     virtual void persistentRead(PersistenceManager& pm)
00097       throw(Exception::GeneralException);
00098 
00106     virtual void finalize()
00107       throw(Exception::GeneralException)
00108     {
00109     }
00111 
00112   };
00113   
00114 } // namespace BALL
00115 
00116 #endif // BALL_CONCEPT_PERSISTENTOBJECT_H