FWCore
Framework
src
Factory.h
Go to the documentation of this file.
1
#ifndef FWCore_Framework_Factory_h
2
#define FWCore_Framework_Factory_h
3
4
#include "
FWCore/Framework/interface/maker/Worker.h
"
5
#include "
FWCore/Framework/interface/maker/WorkerMaker.h
"
6
#include "
FWCore/Framework/interface/maker/MakeModuleParams.h
"
7
8
#include <map>
9
#include <string>
10
#include <memory>
11
#include "
FWCore/Utilities/interface/Signal.h
"
12
#include "
FWCore/Utilities/interface/propagate_const.h
"
13
#include "
FWCore/Utilities/interface/thread_safety_macros.h
"
14
15
namespace
edm
{
16
class
ModuleTypeResolverMaker;
17
18
class
Factory
{
19
public
:
20
typedef
std::map<std::string, std::unique_ptr<Maker const>>
MakerMap
;
21
22
~Factory
();
23
24
static
Factory
const
*
get
();
25
26
//This function is not const-thread safe
27
std::shared_ptr<maker::ModuleHolder>
makeModule
(
const
MakeModuleParams
&,
28
const
ModuleTypeResolverMaker
*,
29
signalslot::Signal
<
void
(
const
ModuleDescription
&)>& pre,
30
signalslot::Signal
<
void
(
const
ModuleDescription
&)>& post)
const
;
31
32
std::shared_ptr<maker::ModuleHolder>
makeReplacementModule
(
const
edm::ParameterSet
&)
const
;
33
34
private
:
35
Factory
();
36
Maker
const
*
findMaker
(
const
MakeModuleParams
&
p
,
const
ModuleTypeResolverMaker
*)
const
;
37
static
Factory
const
singleInstance_
;
38
//It is not safe to create modules across threads
39
CMS_SA_ALLOW
mutable
MakerMap
makers_
;
40
};
41
42
}
// namespace edm
43
#endif
Worker.h
edm::Maker
Definition:
WorkerMaker.h:21
CMS_SA_ALLOW
#define CMS_SA_ALLOW
MakeModuleParams.h
thread_safety_macros.h
edm::Factory::makeReplacementModule
std::shared_ptr< maker::ModuleHolder > makeReplacementModule(const edm::ParameterSet &) const
Definition:
Factory.cc:43
WorkerMaker.h
edm::Factory::makeModule
std::shared_ptr< maker::ModuleHolder > makeModule(const MakeModuleParams &, const ModuleTypeResolverMaker *, signalslot::Signal< void(const ModuleDescription &)> &pre, signalslot::Signal< void(const ModuleDescription &)> &post) const
Definition:
Factory.cc:33
edm::Factory::singleInstance_
static Factory const singleInstance_
Definition:
Factory.h:37
Signal.h
edm::Factory
Definition:
Factory.h:18
edm::ModuleTypeResolverMaker
Definition:
ModuleTypeResolverMaker.h:29
edm::MakeModuleParams
Definition:
MakeModuleParams.h:21
edm::signalslot::Signal
Definition:
DelayedReader.h:26
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::ParameterSet
Definition:
ParameterSet.h:47
edm::Factory::MakerMap
std::map< std::string, std::unique_ptr< Maker const > > MakerMap
Definition:
Factory.h:20
edm::ModuleDescription
Definition:
ModuleDescription.h:21
edm::Factory::findMaker
Maker const * findMaker(const MakeModuleParams &p, const ModuleTypeResolverMaker *) const
Definition:
Factory.cc:23
edm::Factory::Factory
Factory()
propagate_const.h
AlCaHLTBitMon_ParallelJobs.p
def p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
edm::Factory::~Factory
~Factory()
edm::Factory::makers_
MakerMap makers_
Definition:
Factory.h:39
Generated for CMSSW Reference Manual by
1.8.14