00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_CONCEPT_OBJECTCREATOR_H
00008 #define BALL_CONCEPT_OBJECTCREATOR_H
00009
00010 #ifndef BALL_CONCEPT_COMPOSITE_H
00011 # include <BALL/CONCEPT/composite.h>
00012 #endif
00013
00014 #ifndef BALL_CONCEPT_PERSISTENTOBJECT_H
00015 # include <BALL/CONCEPT/persistentObject.h>
00016 #endif
00017
00018 #ifndef BALL_CONCET_TEXTPERSISTENCEMANAGER_H
00019 # include <BALL/CONCEPT/textPersistenceManager.h>
00020 #endif
00021
00022 #ifdef BALL_HAS_ASIO
00023 #ifndef BALL_SYSTEM_NETWORKING_H
00024 # include <BALL/SYSTEM/networking.h>
00025 #endif
00026 #endif
00027
00028 #include <vector>
00029
00030 namespace BALL
00031 {
00039 class BALL_EXPORT ObjectCreator
00040 {
00041 public:
00042
00046
00054 ObjectCreator()
00055 ;
00056
00058
00061
00064 virtual ~ObjectCreator()
00065 ;
00066
00070 virtual void clear()
00071 ;
00072
00074
00077
00086 virtual void initPersistenceManager(TextPersistenceManager &pm)
00087 ;
00088
00097 virtual Composite *convertObject(PersistentObject &po)
00098 ;
00099
00101
00104
00105 #ifdef BALL_HAS_ASIO
00106
00118 Composite *operator() (TCPIOStream &tcp_iostream)
00119 ;
00120 #endif
00121
00123
00124 private:
00125
00126 bool init_;
00127 TextPersistenceManager pm_;
00128 };
00129
00130 }
00131
00132 #endif // BALL_CONCEPT_OBJECTCREATOR_H