CMS 3D CMS Logo

WorkerRegistry.h
Go to the documentation of this file.
1 #ifndef Framework_WorkerRegistry_h
2 #define Framework_WorkerRegistry_h
3 
12 #include <memory>
13 
14 #include <map>
15 #include <string>
16 
18 
19 namespace edm {
20 
21  class Worker;
22  class ActivityRegistry;
23  struct WorkerParams;
24  class ModuleRegistry;
25  class ParameterSet;
26  namespace maker {
27  class ModuleHolder;
28  }
29 
39 
40  public:
41 
42  explicit WorkerRegistry(std::shared_ptr<ActivityRegistry> areg);
43  WorkerRegistry(std::shared_ptr<ActivityRegistry> areg,
44  std::shared_ptr<ModuleRegistry> iModReg);
45  ~WorkerRegistry();
46 
47  WorkerRegistry(WorkerRegistry&&) = default;
48  WorkerRegistry(WorkerRegistry const&) = delete; // Disallow copying and moving
49  WorkerRegistry& operator=(WorkerRegistry const&) = delete; // Disallow copying and moving
50 
52 
55  Worker* getWorker(WorkerParams const& p, std::string const& moduleLabel);
56  void clear();
57 
58  private:
60  typedef std::map<std::string, edm::propagate_const<std::shared_ptr<Worker>>> WorkerMap;
61 
63 
65  WorkerMap m_workerMap;
66  std::shared_ptr<ActivityRegistry> actReg_; // We do not use propagate_const because the registry itself is mutable.
67 
68  }; // WorkerRegistry
69 
70 
71 } // edm
72 
73 
74 #endif
std::shared_ptr< ActivityRegistry > actReg_
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
Definition: matutil.cc:167
WorkerMap m_workerMap
internal map of registered workers (owned).
edm::propagate_const< std::shared_ptr< ModuleRegistry > > modRegistry_
std::map< std::string, edm::propagate_const< std::shared_ptr< Worker > > > WorkerMap
the container of workers
HLT enums.
The Registry of all workers that where requested Holds all instances of workers. In this implementati...