00001 #ifndef SUIFKERNEL__REAL_OBJECT_FACTORY_H 00002 #define SUIFKERNEL__REAL_OBJECT_FACTORY_H 00003 00004 #include "suifkernel_forwarders.h" 00005 00006 class RealObjectFactory { 00007 public: 00008 RealObjectFactory(); 00009 virtual void init( SuifEnv* suif_env ); 00010 virtual ~RealObjectFactory(); 00011 00012 virtual void init_io( ObjectFactory* of ); 00013 virtual void init_cloning( CloneSubSystem* css ); 00014 virtual void init_printing( PrintSubSystem* pss ); 00015 00016 virtual void* create_empty_object( const MetaClass* metaClass ); 00017 00018 virtual const LString& getName(); 00019 00020 SuifEnv *get_suif_environment(); 00021 00022 protected: 00023 virtual MetaClass* lookupMetaClass( const LString& metaClassName ); 00024 00025 virtual ObjectFactory* get_object_factory(); 00026 00027 ObjectFactory* _object_factory; 00028 00029 SuifEnv* _suif_env; 00030 private: 00031 RealObjectFactory(const RealObjectFactory &); 00032 RealObjectFactory& operator=(const RealObjectFactory &); 00033 }; 00034 00035 00036 #endif 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050