SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
ModuleRegistry.hh
Go to the documentation of this file.
1 #ifndef SLIC_MODULEREGISTRY_HH_
2 #define SLIC_MODULEREGISTRY_HH_ 1
3 
4 // std
5 #include <map>
6 #include <string>
7 
8 // slic
9 #include "Module.hh"
10 #include "Singleton.hh"
11 
12 namespace slic {
13 
18 class ModuleRegistry: public Singleton<ModuleRegistry>, public Module {
19 
20  public:
21 
25  typedef std::map<std::string, Module*> ModuleMap;
26 
27  public:
28 
33 
37  virtual ~ModuleRegistry();
38 
39  public:
40 
45  void registerModule(Module* module);
46 
52  Module* findModule(const std::string& name);
53 
58  void deregisterModule(Module* module);
59 
64  void deregisterModule(const std::string& name);
65 
69  void print();
70 
74  void deleteModules();
75 
76  private:
78 };
79 }
80 
81 #endif
A central store for accessing Module objects.
Module * findModule(const std::string &name)
void registerModule(Module *module)
std::map< std::string, Module * > ModuleMap
void deregisterModule(Module *module)
Base class for slic code modules that provides common functionality, such as logging to an output str...
Definition: Module.hh:25
@ name
Definition: LogStream.hh:26