src
FWCore
Framework
interface
global
producerAbilityToImplementor.h
Go to the documentation of this file.
1
#ifndef FWCore_Framework_global_producerAbilityToImplementor_h
2
#define FWCore_Framework_global_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/global/implementors.h
"
26
#include "
FWCore/Framework/interface/global/EDProducerBase.h
"
27
28
// forward declarations
29
namespace
edm
{
30
namespace
global {
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::global::impl::StreamCacheHolder<edm::global::EDProducerBase, C>
;
38
};
39
40
template
<
typename
... Cs>
41
struct
AbilityToImplementor
<
edm
::
InputProcessBlockCache
<Cs...>> {
42
using
Type
=
edm::global::impl::InputProcessBlockCacheHolder
<
edm::global::EDProducerBase
, Cs...>;
43
};
44
45
template
<
typename
C>
46
struct
AbilityToImplementor
<
edm
::
RunCache
<C>> {
47
using
Type
=
edm::global::impl::RunCacheHolder<edm::global::EDProducerBase, C>
;
48
};
49
50
template
<
typename
C>
51
struct
AbilityToImplementor
<
edm
::
RunSummaryCache
<C>> {
52
using
Type
=
edm::global::impl::RunSummaryCacheHolder<edm::global::EDProducerBase, C>
;
53
};
54
55
template
<
typename
C>
56
struct
AbilityToImplementor
<
edm
::
LuminosityBlockCache
<C>> {
57
using
Type
=
edm::global::impl::LuminosityBlockCacheHolder<edm::global::EDProducerBase, C>
;
58
};
59
60
template
<
typename
C>
61
struct
AbilityToImplementor
<
edm
::
LuminosityBlockSummaryCache
<C>> {
62
using
Type
=
edm::global::impl::LuminosityBlockSummaryCacheHolder<edm::global::EDProducerBase, C>
;
63
};
64
65
template
<>
66
struct
AbilityToImplementor
<
edm
::
WatchProcessBlock
> {
67
using
Type
=
edm::global::impl::WatchProcessBlock<edm::global::EDProducerBase>
;
68
};
69
70
template
<>
71
struct
AbilityToImplementor
<
edm
::
BeginProcessBlockProducer
> {
72
using
Type
=
edm::global::impl::BeginProcessBlockProducer<edm::global::EDProducerBase>
;
73
};
74
75
template
<>
76
struct
AbilityToImplementor
<
edm
::
EndProcessBlockProducer
> {
77
using
Type
=
edm::global::impl::EndProcessBlockProducer<edm::global::EDProducerBase>
;
78
};
79
80
template
<>
81
struct
AbilityToImplementor
<
edm
::
BeginRunProducer
> {
82
using
Type
=
edm::global::impl::BeginRunProducer<edm::global::EDProducerBase>
;
83
};
84
85
template
<>
86
struct
AbilityToImplementor
<
edm
::
EndRunProducer
> {
87
using
Type
=
edm::global::impl::EndRunProducer<edm::global::EDProducerBase>
;
88
};
89
90
template
<>
91
struct
AbilityToImplementor
<
edm
::
BeginLuminosityBlockProducer
> {
92
using
Type
=
edm::global::impl::BeginLuminosityBlockProducer<edm::global::EDProducerBase>
;
93
};
94
95
template
<>
96
struct
AbilityToImplementor
<
edm
::
EndLuminosityBlockProducer
> {
97
using
Type
=
edm::global::impl::EndLuminosityBlockProducer<edm::global::EDProducerBase>
;
98
};
99
100
template
<>
101
struct
AbilityToImplementor
<
edm
::
ExternalWork
> {
102
using
Type
=
edm::global::impl::ExternalWork<edm::global::EDProducerBase>
;
103
};
104
105
template
<>
106
struct
AbilityToImplementor
<
edm
::
Transformer
> {
107
using
Type
=
edm::global::impl::Transformer<edm::global::EDProducerBase>
;
108
};
109
110
template
<>
111
struct
AbilityToImplementor
<
edm
::
Accumulator
> {
112
using
Type
=
edm::global::impl::Accumulator<edm::global::EDProducerBase>
;
113
};
114
115
template
<
bool
,
bool
,
typename
T>
116
struct
SpecializeAbilityToImplementor
{
117
using
Type
=
typename
AbilityToImplementor<T>::Type
;
118
};
119
120
template
<
bool
B,
typename
C>
121
struct
SpecializeAbilityToImplementor
<
true
,
B
,
edm
::
RunSummaryCache
<C>> {
122
using
Type
=
typename
edm::global::impl::EndRunSummaryProducer<edm::global::EDProducerBase, C>
;
123
};
124
125
template
<
bool
B>
126
struct
SpecializeAbilityToImplementor
<
true
,
B
,
edm
::
EndRunProducer
> {
127
using
Type
=
edm::global::impl::EmptyType
;
128
};
129
130
template
<
bool
B,
typename
C>
131
struct
SpecializeAbilityToImplementor
<
B
,
true
,
edm
::
LuminosityBlockSummaryCache
<C>> {
132
using
Type
=
typename
edm::global::impl::EndLuminosityBlockSummaryProducer<edm::global::EDProducerBase, C>
;
133
};
134
135
template
<
bool
B>
136
struct
SpecializeAbilityToImplementor
<
B
,
true
,
edm
::
EndLuminosityBlockProducer
> {
137
using
Type
=
edm::global::impl::EmptyType
;
138
};
139
}
// namespace producer
140
}
// namespace global
141
}
// namespace edm
142
143
#endif
edm::BeginRunProducer
Definition:
moduleAbilities.h:91
edm::global::impl::WatchProcessBlock
Definition:
implementors.h:290
edm::global::impl::BeginLuminosityBlockProducer
Definition:
implementors.h:382
edm::ExternalWork
Definition:
moduleAbilities.h:116
edm::LuminosityBlockCache
Definition:
moduleAbilities.h:59
edm::global::impl::Transformer
Definition:
implementors.h:460
B
Definition:
APVGainStruct.h:7
edm::global::impl::EndLuminosityBlockProducer
Definition:
implementors.h:395
edm::global::impl::EndLuminosityBlockSummaryProducer
Definition:
implementors.h:246
edm::EndRunProducer
Definition:
moduleAbilities.h:96
edm::StreamCache
Definition:
moduleAbilities.h:42
edm::Accumulator
Definition:
moduleAbilities.h:121
edm::global::producer::AbilityToImplementor
Definition:
producerAbilityToImplementor.h:33
producer
edm::RunSummaryCache
Definition:
moduleAbilities.h:65
implementors.h
edm::InputProcessBlockCache
Definition:
moduleAbilities.h:48
edm::BeginProcessBlockProducer
Definition:
moduleAbilities.h:81
edm::LuminosityBlockSummaryCache
Definition:
moduleAbilities.h:71
moduleAbilities.h
edm::global::impl::ExternalWork
Definition:
implementors.h:428
edm::global::impl::StreamCacheHolder
Definition:
implementors.h:59
edm::global::impl::EmptyType
Definition:
implementors.h:56
edm::global::impl::EndProcessBlockProducer
Definition:
implementors.h:320
edm::global::impl::RunSummaryCacheHolder
Definition:
implementors.h:209
funct::true
true
Definition:
Factorize.h:173
edm::RunCache
Definition:
moduleAbilities.h:53
edm::WatchProcessBlock
Definition:
moduleAbilities.h:76
edm::global::producer::SpecializeAbilityToImplementor< B, true, edm::LuminosityBlockSummaryCache< C > >::Type
typename edm::global::impl::EndLuminosityBlockSummaryProducer< edm::global::EDProducerBase, C > Type
Definition:
producerAbilityToImplementor.h:132
EDProducerBase.h
edm::global::impl::BeginRunProducer
Definition:
implementors.h:334
edm::global::impl::LuminosityBlockSummaryCacheHolder
Definition:
implementors.h:249
edm::global::producer::SpecializeAbilityToImplementor
Definition:
producerAbilityToImplementor.h:116
edm::BeginLuminosityBlockProducer
Definition:
moduleAbilities.h:101
edm::global::impl::EndRunProducer
Definition:
implementors.h:348
edm::global::impl::BeginProcessBlockProducer
Definition:
implementors.h:306
edm::global::impl::Accumulator
Definition:
implementors.h:444
edm::global::impl::EndRunSummaryProducer
Definition:
implementors.h:206
edm::global::EDProducerBase
Definition:
EDProducerBase.h:52
edm::global::producer::SpecializeAbilityToImplementor::Type
typename AbilityToImplementor< T >::Type Type
Definition:
producerAbilityToImplementor.h:117
edm::EndProcessBlockProducer
Definition:
moduleAbilities.h:86
edm::global::impl::InputProcessBlockCacheHolder
Definition:
implementors.h:106
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::global::impl::RunCacheHolder
Definition:
implementors.h:153
edm::global::impl::LuminosityBlockCacheHolder
Definition:
implementors.h:178
edm::global::producer::SpecializeAbilityToImplementor< true, B, edm::RunSummaryCache< C > >::Type
typename edm::global::impl::EndRunSummaryProducer< edm::global::EDProducerBase, C > Type
Definition:
producerAbilityToImplementor.h:122
edm::EndLuminosityBlockProducer
Definition:
moduleAbilities.h:106
edm::Transformer
Definition:
moduleAbilities.h:126
Generated for CMSSW Reference Manual by
1.8.14