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