Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
FWCore
Framework
interface
limited
producerAbilityToImplementor.h
Go to the documentation of this file.
1
#ifndef FWCore_Framework_limited_producerAbilityToImplementor_h
2
#define FWCore_Framework_limited_producerAbilityToImplementor_h
3
// -*- C++ -*-
4
//
5
// Package: FWCore/Framework
6
// File : producerAbilityToImplementor
7
//
16
//
17
// Original Author: Chris Jones
18
// Created: Thu, 18 Jul 2013 11:51:33 GMT
19
//
20
21
// system include files
22
23
// user include files
24
#include "
FWCore/Framework/interface/moduleAbilities.h
"
25
#include "
FWCore/Framework/interface/limited/implementors.h
"
26
#include "
FWCore/Framework/interface/limited/EDProducerBase.h
"
27
28
// forward declarations
29
namespace
edm {
30
namespace
limited {
31
namespace
producer
{
32
template
<
typename
T>
33
struct
AbilityToImplementor
;
34
35
template
<
typename
C>
36
struct
AbilityToImplementor
<edm::
StreamCache
<C>> {
37
using
Type
=
edm::limited::impl::StreamCacheHolder<edm::limited::EDProducerBase, C>
;
38
};
39
40
template
<
typename
... Cs>
41
struct
AbilityToImplementor
<edm::
InputProcessBlockCache
<Cs...>> {
42
using
Type
=
edm::limited::impl::InputProcessBlockCacheHolder
<
edm::limited::EDProducerBase
, Cs...>;
43
};
44
45
template
<
typename
C>
46
struct
AbilityToImplementor
<edm::
RunCache
<C>> {
47
using
Type
=
edm::limited::impl::RunCacheHolder<edm::limited::EDProducerBase, C>
;
48
};
49
50
template
<
typename
C>
51
struct
AbilityToImplementor
<edm::
RunSummaryCache
<C>> {
52
using
Type
=
edm::limited::impl::RunSummaryCacheHolder<edm::limited::EDProducerBase, C>
;
53
};
54
55
template
<
typename
C>
56
struct
AbilityToImplementor
<edm::
LuminosityBlockCache
<C>> {
57
using
Type
=
edm::limited::impl::LuminosityBlockCacheHolder<edm::limited::EDProducerBase, C>
;
58
};
59
60
template
<
typename
C>
61
struct
AbilityToImplementor
<edm::
LuminosityBlockSummaryCache
<C>> {
62
using
Type
=
edm::limited::impl::LuminosityBlockSummaryCacheHolder<edm::limited::EDProducerBase, C>
;
63
};
64
65
template
<>
66
struct
AbilityToImplementor
<edm::
WatchProcessBlock
> {
67
using
Type
=
edm::limited::impl::WatchProcessBlock<edm::limited::EDProducerBase>
;
68
};
69
70
template
<>
71
struct
AbilityToImplementor
<edm::
BeginProcessBlockProducer
> {
72
using
Type
=
edm::limited::impl::BeginProcessBlockProducer<edm::limited::EDProducerBase>
;
73
};
74
75
template
<>
76
struct
AbilityToImplementor
<edm::
EndProcessBlockProducer
> {
77
using
Type
=
edm::limited::impl::EndProcessBlockProducer<edm::limited::EDProducerBase>
;
78
};
79
80
template
<>
81
struct
AbilityToImplementor
<edm::
BeginRunProducer
> {
82
using
Type
=
edm::limited::impl::BeginRunProducer<edm::limited::EDProducerBase>
;
83
};
84
85
template
<>
86
struct
AbilityToImplementor
<edm::
EndRunProducer
> {
87
using
Type
=
edm::limited::impl::EndRunProducer<edm::limited::EDProducerBase>
;
88
};
89
90
template
<>
91
struct
AbilityToImplementor
<edm::
BeginLuminosityBlockProducer
> {
92
using
Type
=
edm::limited::impl::BeginLuminosityBlockProducer<edm::limited::EDProducerBase>
;
93
};
94
95
template
<>
96
struct
AbilityToImplementor
<edm::
EndLuminosityBlockProducer
> {
97
using
Type
=
edm::limited::impl::EndLuminosityBlockProducer<edm::limited::EDProducerBase>
;
98
};
99
100
template
<>
101
struct
AbilityToImplementor
<edm::
Accumulator
> {
102
using
Type
=
edm::limited::impl::Accumulator<edm::limited::EDProducerBase>
;
103
};
104
105
template
<
bool
,
bool
,
typename
T>
106
struct
SpecializeAbilityToImplementor
{
107
using
Type
=
typename
AbilityToImplementor<T>::Type
;
108
};
109
110
template
<
bool
B,
typename
C>
111
struct
SpecializeAbilityToImplementor
<
true
,
B
, edm::
RunSummaryCache
<C>> {
112
using
Type
=
typename
edm::limited::impl::EndRunSummaryProducer<edm::limited::EDProducerBase, C>
;
113
};
114
115
template
<
bool
B>
116
struct
SpecializeAbilityToImplementor
<
true
,
B
, edm::
EndRunProducer
> {
117
using
Type
=
edm::limited::impl::EmptyType
;
118
};
119
120
template
<
bool
B,
typename
C>
121
struct
SpecializeAbilityToImplementor
<
B
,
true
, edm::
LuminosityBlockSummaryCache
<C>> {
122
using
Type
=
typename
edm::limited::impl::EndLuminosityBlockSummaryProducer<edm::limited::EDProducerBase, C>
;
123
};
124
125
template
<
bool
B>
126
struct
SpecializeAbilityToImplementor
<
B
,
true
, edm::
EndLuminosityBlockProducer
> {
127
using
Type
=
edm::limited::impl::EmptyType
;
128
};
129
}
// namespace producer
130
}
// namespace limited
131
}
// namespace edm
132
133
#endif
edm::BeginRunProducer
Definition:
moduleAbilities.h:91
reco_calib_source_client_cfg.producer
tuple producer
Definition:
reco_calib_source_client_cfg.py:68
edm::LuminosityBlockCache
Definition:
moduleAbilities.h:59
edm::limited::impl::EmptyType
Definition:
implementors.h:47
implementors.h
edm::limited::impl::EndLuminosityBlockSummaryProducer
Definition:
implementors.h:233
EDProducerBase.h
edm::limited::impl::StreamCacheHolder
Definition:
implementors.h:53
B
Definition:
APVGainStruct.h:7
edm::EndRunProducer
Definition:
moduleAbilities.h:96
edm::StreamCache
Definition:
moduleAbilities.h:42
edm::Accumulator
Definition:
moduleAbilities.h:121
edm::limited::producer::SpecializeAbilityToImplementor< true, B, edm::RunSummaryCache< C > >::Type
typename edm::limited::impl::EndRunSummaryProducer< edm::limited::EDProducerBase, C > Type
Definition:
producerAbilityToImplementor.h:112
edm::RunSummaryCache
Definition:
moduleAbilities.h:65
edm::InputProcessBlockCache
Definition:
moduleAbilities.h:48
edm::BeginProcessBlockProducer
Definition:
moduleAbilities.h:81
edm::LuminosityBlockSummaryCache
Definition:
moduleAbilities.h:71
moduleAbilities.h
edm::limited::impl::LuminosityBlockSummaryCacheHolder
Definition:
implementors.h:236
edm::limited::impl::RunSummaryCacheHolder
Definition:
implementors.h:203
edm::limited::producer::SpecializeAbilityToImplementor< B, true, edm::LuminosityBlockSummaryCache< C > >::Type
typename edm::limited::impl::EndLuminosityBlockSummaryProducer< edm::limited::EDProducerBase, C > Type
Definition:
producerAbilityToImplementor.h:122
edm::limited::impl::BeginProcessBlockProducer
Definition:
implementors.h:294
edm::limited::producer::SpecializeAbilityToImplementor::Type
typename AbilityToImplementor< T >::Type Type
Definition:
producerAbilityToImplementor.h:107
funct::true
true
Definition:
Factorize.h:173
edm::RunCache
Definition:
moduleAbilities.h:53
edm::WatchProcessBlock
Definition:
moduleAbilities.h:76
edm::limited::producer::AbilityToImplementor
Definition:
producerAbilityToImplementor.h:33
edm::limited::impl::BeginRunProducer
Definition:
implementors.h:322
edm::limited::impl::BeginLuminosityBlockProducer
Definition:
implementors.h:366
edm::limited::impl::EndLuminosityBlockProducer
Definition:
implementors.h:379
edm::limited::impl::EndProcessBlockProducer
Definition:
implementors.h:308
edm::BeginLuminosityBlockProducer
Definition:
moduleAbilities.h:101
edm::limited::impl::InputProcessBlockCacheHolder
Definition:
implementors.h:100
edm::limited::EDProducerBase
Definition:
EDProducerBase.h:50
edm::limited::impl::LuminosityBlockCacheHolder
Definition:
implementors.h:171
edm::limited::impl::Accumulator
Definition:
implementors.h:413
edm::EndProcessBlockProducer
Definition:
moduleAbilities.h:86
edm::limited::impl::WatchProcessBlock
Definition:
implementors.h:278
edm::limited::impl::EndRunSummaryProducer
Definition:
implementors.h:200
edm::limited::impl::RunCacheHolder
Definition:
implementors.h:147
edm::EndLuminosityBlockProducer
Definition:
moduleAbilities.h:106
edm::limited::producer::SpecializeAbilityToImplementor
Definition:
producerAbilityToImplementor.h:106
edm::limited::impl::EndRunProducer
Definition:
implementors.h:336
Generated for CMSSW Reference Manual by
1.8.5