CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
28 
29 // forward declarations
30 namespace edm {
31  class ParameterSet;
32  struct MakeModuleParams;
33  class ModuleDescription;
34  class PreallocationConfiguration;
35  namespace maker {
36  class ModuleHolder;
37  }
38 
40  {
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  template <typename F>
52  void forAllModuleHolders(F iFunc) {
53  for(auto const& labelMod: labelToModule_) {
54  maker::ModuleHolder* t = labelMod.second.get();
55  iFunc(t);
56  }
57  }
58  private:
59  std::map<std::string,std::shared_ptr<maker::ModuleHolder>> labelToModule_;
60  };
61 }
62 
63 
64 #endif
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)
std::map< std::string, std::shared_ptr< maker::ModuleHolder > > labelToModule_
void forAllModuleHolders(F iFunc)
maker::ModuleHolder * replaceModule(std::string const &iModuleLabel, edm::ParameterSet const &iPSet, edm::PreallocationConfiguration const &)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281