00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_CONCEPT_PERSISTENTOBJECT_H 00006 #define BALL_CONCEPT_PERSISTENTOBJECT_H 00007 00008 #ifndef BALL_CONCEPT_OBJECT_H 00009 # include <BALL/CONCEPT/object.h> 00010 #endif 00011 00012 namespace BALL 00013 { 00014 00015 class PersistenceManager; 00016 00027 class BALL_EXPORT PersistentObject 00028 : public Object 00029 { 00030 public: 00031 00035 00039 PersistentObject() 00040 : Object() 00041 { 00042 } 00043 00047 virtual ~PersistentObject() 00048 { 00049 } 00051 00055 00067 PersistenceManager& operator >> (PersistenceManager& pm) const; 00068 00079 virtual void persistentWrite(PersistenceManager& pm, const char* name = "") const; 00080 00093 virtual void persistentRead(PersistenceManager& pm); 00094 00103 virtual void finalize() 00104 { 00105 } 00107 00108 }; 00109 00110 } // namespace BALL 00111 00112 #endif // BALL_CONCEPT_PERSISTENTOBJECT_H