ModuleRegistry.hh

Go to the documentation of this file.
00001 // $Header: /cvs/lcd/slic/include/ModuleRegistry.hh,v 1.6 2007/04/27 01:54:32 jeremy Exp $
00002 
00003 // std
00004 #include <map>
00005 #include <string>
00006 
00007 // slic
00008 #include "Module.hh"
00009 #include "Singleton.hh"
00010 
00011 namespace slic
00012 {
00017   class ModuleRegistry : 
00018     public Singleton<ModuleRegistry>,
00019     public Module  
00020   {
00021   public:
00022     typedef std::map<std::string, Module*> ModuleMap;
00023 
00024   public:
00025     virtual ~ModuleRegistry();
00026     ModuleRegistry();
00027 
00028   public:
00029 
00030     void registerModule(Module*);
00031     Module* findModule(const std::string&);
00032 
00033     void deregisterModule(Module* module);
00034     void deregisterModule(const std::string& name);
00035 
00039     void print();
00040 
00041     void deleteModules();
00042 
00043   private:
00044     ModuleMap m_modules;
00045   };
00046 }

Generated on Thu Nov 15 15:24:16 2007 for Simulator for the Linear Collider by  doxygen 1.5.4