00001 #ifndef __EMCOBJECTMANAGERREGISTER_H__ 00002 #define __EMCOBJECTMANAGERREGISTER_H__ 00003 00004 #include <string> 00005 #include <map> 00006 00007 class emcObjectManager; 00008 00009 typedef std::map<std::string, emcObjectManager*> emcObjectManagerMap; 00010 00016 //___________________________________________________________________________ 00017 class emcObjectManagerRegister 00018 { 00019 private: 00020 emcObjectManagerMap fMap; 00021 00022 private: 00023 static emcObjectManagerRegister* fInstance; 00024 static int fCount; 00025 00026 private: 00028 emcObjectManagerRegister(); 00029 00030 public: 00032 static emcObjectManagerRegister* GetInstance(void); 00033 00035 virtual ~emcObjectManagerRegister(); 00036 00038 virtual void AddObjectManager(emcObjectManager*); 00039 00041 virtual void RemoveObjectManager(emcObjectManager*); 00042 00044 virtual emcObjectManager* GetObjectManager(const char*); 00045 00050 virtual const emcObjectManagerMap& GetObjectManagerMap(void) 00051 { 00052 return fMap; 00053 } 00054 }; 00055 00056 #endif