emcObjectManagerRegister.h

Go to the documentation of this file.
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