FWCore
Framework
src
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
27
#include "
FWCore/ServiceRegistry/interface/ActivityRegistry.h
"
28
#include "
FWCore/Utilities/interface/propagate_const.h
"
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
40
class
ModuleRegistry
{
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,
49
edm::PreallocationConfiguration
const
&);
50
51
template
<
typename
F>
52
void
forAllModuleHolders
(
F
iFunc) {
53
for
(
auto
& labelMod :
labelToModule_
) {
54
maker::ModuleHolder
*
t
= labelMod.second.get();
55
iFunc(
t
);
56
}
57
}
58
59
private
:
60
std::map<std::string, edm::propagate_const<std::shared_ptr<maker::ModuleHolder>>>
labelToModule_
;
61
};
62
}
// namespace edm
63
64
#endif
propagate_const.h
edm
HLT enums.
Definition:
AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
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:52
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition:
ParameterSet.h:47
ParameterSet
Definition:
Functions.h:16
edm::ModuleRegistry::labelToModule_
std::map< std::string, edm::propagate_const< std::shared_ptr< maker::ModuleHolder > > > labelToModule_
Definition:
ModuleRegistry.h:60
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
Generated for CMSSW Reference Manual by
1.8.16