CMS 3D CMS Logo

ModuleRegistry.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ModuleRegistry_h
2 #define FWCore_Framework_ModuleRegistry_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : ModuleRegistry
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 23 Aug 2013 16:21:10 GMT
19 //
20 
21 // system include files
22 #include <map>
23 #include <memory>
24 #include <string>
25 
26 // user include files
29 
30 // forward declarations
31 namespace edm {
32  class ParameterSet;
33  struct MakeModuleParams;
34  class ModuleDescription;
35  class PreallocationConfiguration;
36  namespace maker {
37  class ModuleHolder;
38  }
39 
41  public:
42  std::shared_ptr<maker::ModuleHolder> getModule(MakeModuleParams const& p,
43  std::string const& moduleLabel,
44  signalslot::Signal<void(ModuleDescription const&)>& iPre,
45  signalslot::Signal<void(ModuleDescription const&)>& iPost);
46 
47  maker::ModuleHolder* replaceModule(std::string const& iModuleLabel,
48  edm::ParameterSet const& iPSet,
50 
51  void deleteModule(std::string const& iModuleLabel,
52  signalslot::Signal<void(ModuleDescription const&)>& iPre,
53  signalslot::Signal<void(ModuleDescription const&)>& iPost);
54 
55  template <typename F>
56  void forAllModuleHolders(F iFunc) {
57  for (auto& labelMod : labelToModule_) {
58  maker::ModuleHolder* t = labelMod.second.get();
59  iFunc(t);
60  }
61  }
62 
63  private:
64  std::map<std::string, edm::propagate_const<std::shared_ptr<maker::ModuleHolder>>> labelToModule_;
65  };
66 } // namespace edm
67 
68 #endif
propagate_const.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::MakeModuleParams
Definition: MakeModuleParams.h:21
edm::maker::ModuleHolder
Definition: ModuleHolder.h:37
edm::ModuleDescription
Definition: ModuleDescription.h:21
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
ActivityRegistry.h
edm::ModuleRegistry::forAllModuleHolders
void forAllModuleHolders(F iFunc)
Definition: ModuleRegistry.h:56
edm::ParameterSet
Definition: ParameterSet.h:47
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
ParameterSet
Definition: Functions.h:16
edm::ModuleRegistry::labelToModule_
std::map< std::string, edm::propagate_const< std::shared_ptr< maker::ModuleHolder > > > labelToModule_
Definition: ModuleRegistry.h:64
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ModuleRegistry::deleteModule
void deleteModule(std::string const &iModuleLabel, signalslot::Signal< void(ModuleDescription const &)> &iPre, signalslot::Signal< void(ModuleDescription const &)> &iPost)
Definition: ModuleRegistry.cc:53
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::ModuleRegistry
Definition: ModuleRegistry.h:40
edm::ModuleRegistry::replaceModule
maker::ModuleHolder * replaceModule(std::string const &iModuleLabel, edm::ParameterSet const &iPSet, edm::PreallocationConfiguration const &)
Definition: ModuleRegistry.cc:36
edm::ModuleRegistry::getModule
std::shared_ptr< maker::ModuleHolder > getModule(MakeModuleParams const &p, std::string const &moduleLabel, signalslot::Signal< void(ModuleDescription const &)> &iPre, signalslot::Signal< void(ModuleDescription const &)> &iPost)
Definition: ModuleRegistry.cc:20
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
edm::signalslot::Signal
Definition: DelayedReader.h:26