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
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
limited
edm::StreamCache
Definition:
moduleAbilities.h:42
edm::Accumulator
Definition:
moduleAbilities.h:121
producer
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
HLT enums.
Definition:
AlignableModifier.h:19
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.14