LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
ModuleFactory.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_detail_ModuleFactory_h
2 #define art_Framework_Core_detail_ModuleFactory_h
3 
5 // ModuleFactory
6 //
7 // Manage the creation of workers.
8 //
15 #include "cetlib/LibraryManager.h"
16 
17 #include <memory>
18 #include <string>
19 
20 namespace art {
21  namespace detail {
22  class ModuleFactory;
23  }
24 }
25 
27 public:
28  ModuleFactory() = default;
29 
30  ModuleFactory(ModuleFactory const&) = delete;
31  ModuleFactory& operator=(ModuleFactory const&) = delete;
32 
33  ModuleType moduleType(std::string const& libspec);
34 
35  std::unique_ptr<Worker> makeWorker(WorkerParams const& wp,
36  ModuleDescription const& md);
37 
38 private:
39  cet::LibraryManager lm_{Suffixes::module()};
40 };
41 #endif /* art_Framework_Core_detail_ModuleFactory_h */
42 
43 // Local Variables:
44 // mode: c++
45 // End:
ModuleType moduleType(std::string const &libspec)
ModuleFactory & operator=(ModuleFactory const &)=delete
std::unique_ptr< Worker > makeWorker(WorkerParams const &wp, ModuleDescription const &md)
HLT enums.
static std::string const & module()
cet::LibraryManager lm_
Definition: ModuleFactory.h:39
ModuleType
Definition: ModuleType.h:22