00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_CONCEPT_OBJECTCREATOR_H 00006 #define BALL_CONCEPT_OBJECTCREATOR_H 00007 00008 #ifndef BALL_CONCEPT_COMPOSITE_H 00009 # include <BALL/CONCEPT/composite.h> 00010 #endif 00011 00012 #ifndef BALL_CONCEPT_PERSISTENTOBJECT_H 00013 # include <BALL/CONCEPT/persistentObject.h> 00014 #endif 00015 00016 #ifndef BALL_CONCET_TEXTPERSISTENCEMANAGER_H 00017 # include <BALL/CONCEPT/textPersistenceManager.h> 00018 #endif 00019 00020 #ifdef BALL_HAS_ASIO 00021 #ifndef BALL_SYSTEM_NETWORKING_H 00022 # include <BALL/SYSTEM/networking.h> 00023 #endif 00024 #endif 00025 00026 #include <vector> 00027 00028 namespace BALL 00029 { 00037 class BALL_EXPORT ObjectCreator 00038 { 00039 public: 00040 00044 00052 ObjectCreator() 00053 ; 00054 00056 00059 00062 virtual ~ObjectCreator() 00063 ; 00064 00068 virtual void clear() 00069 ; 00070 00072 00075 00084 virtual void initPersistenceManager(TextPersistenceManager &pm) 00085 ; 00086 00095 virtual Composite *convertObject(PersistentObject &po) 00096 ; 00097 00099 00102 00103 #ifdef BALL_HAS_ASIO 00104 00116 Composite *operator() (TCPIOStream &tcp_iostream) 00117 ; 00118 #endif 00119 00121 00122 private: 00123 00124 bool init_; 00125 TextPersistenceManager pm_; 00126 }; 00127 00128 }// namespace BALL 00129 00130 #endif // BALL_CONCEPT_OBJECTCREATOR_H