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
ModuleTypeResolverBase;
17
18
class
Factory
{
19
public
:
20
typedef
std::map<std::string, edm::propagate_const<std::unique_ptr<Maker>>>
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
ModuleTypeResolverBase
*,
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
*
findMaker
(
const
MakeModuleParams
&
p
,
const
ModuleTypeResolverBase
*)
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:49
edm::Factory::findMaker
Maker * findMaker(const MakeModuleParams &p, const ModuleTypeResolverBase *) const
Definition:
Factory.cc:23
WorkerMaker.h
edm::Factory::MakerMap
std::map< std::string, edm::propagate_const< std::unique_ptr< Maker > > > MakerMap
Definition:
Factory.h:20
edm::Factory::singleInstance_
static Factory const singleInstance_
Definition:
Factory.h:37
edm::ModuleTypeResolverBase
Definition:
ModuleTypeResolverBase.h:28
Signal.h
edm::Factory
Definition:
Factory.h:18
edm::MakeModuleParams
Definition:
MakeModuleParams.h:21
edm::signalslot::Signal
Definition:
DelayedReader.h:26
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::Factory::makeModule
std::shared_ptr< maker::ModuleHolder > makeModule(const MakeModuleParams &, const ModuleTypeResolverBase *, signalslot::Signal< void(const ModuleDescription &)> &pre, signalslot::Signal< void(const ModuleDescription &)> &post) const
Definition:
Factory.cc:39
edm::ParameterSet
Definition:
ParameterSet.h:47
edm::ModuleDescription
Definition:
ModuleDescription.h:21
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