00001
00002
00003
00004
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 }
00115
00116 #endif // BALL_CONCEPT_PERSISTENTOBJECT_H