|
|
Go to the documentation of this file. 1 #ifndef FWCore_Framework_stream_callAbilities_h
2 #define FWCore_Framework_stream_callAbilities_h
23 #include <type_traits>
36 namespace callGlobalDetail {
37 template <
typename,
typename = std::
void_t<>>
43 template <
typename T,
bool>
46 static void set(
B* iProd,
typename T::GlobalCache
const* iCache) {
47 static_cast<T*>(iProd)->setGlobalCache(iCache);
49 static void beginJob(
typename T::GlobalCache* iCache) {
51 T::globalBeginJob(iCache);
54 static void endJob(
typename T::GlobalCache* iCache) { T::globalEndJob(iCache); }
58 static void set(
void* iProd,
void const* iCache) {}
68 template <
typename T,
bool>
72 typename T::GlobalCache
const* iGC,
73 std::shared_ptr<typename T::RunCache const>& oCache) {
74 oCache = T::globalBeginRun(iRun, iES, iGC);
78 static void set(
B* iProd,
typename T::RunCache
const* iCache) {
79 static_cast<T*>(iProd)->setRunCache(iCache);
83 T::globalEndRun(iRun, iES, iContext);
90 static void set(
void* iProd,
typename T::RunCache
const* iCache) {}
100 template <
typename T,
bool>
104 typename T::RunContext
const* iRC,
105 std::shared_ptr<typename T::RunSummaryCache>& oCache) {
106 oCache = T::globalBeginRunSummary(iRun, iES, iRC);
108 template <
typename B>
112 typename T::RunSummaryCache* iCache) {
113 static_cast<T*>(iProd)->endRunSummary(iRun, iES, iCache);
118 typename T::RunContext
const* iContext,
119 typename T::RunSummaryCache* iCache) {
120 T::globalEndRunSummary(iRun, iES, iContext, iCache);
124 template <
typename T>
130 typename T::RunSummaryCache
const* iCache) {}
133 typename T::RunContext
const*,
134 typename T::RunSummaryCache*) {}
137 template <
typename T>
143 template <
typename T,
bool>
147 typename T::RunContext
const* iRC,
148 std::shared_ptr<typename T::LuminosityBlockCache const>& oCache) {
149 oCache = T::globalBeginLuminosityBlock(
Lumi, iES, iRC);
152 template <
typename B>
153 static void set(
B* iProd,
typename T::LuminosityBlockCache
const* iCache) {
154 static_cast<T*>(iProd)->setLuminosityBlockCache(iCache);
159 typename T::LuminosityBlockContext
const* iContext) {
160 T::globalEndLuminosityBlock(
Lumi, iES, iContext);
164 template <
typename T>
168 typename T::RunContext
const*,
170 static void set(
void* iProd,
typename T::LuminosityBlockCache
const* iCache) {}
173 typename T::LuminosityBlockContext
const*) {}
175 template <
typename T>
181 template <
typename T,
bool>
185 typename T::LuminosityBlockContext
const* iRC,
186 std::shared_ptr<typename T::LuminosityBlockSummaryCache>& oCache) {
187 oCache = T::globalBeginLuminosityBlockSummary(
Lumi, iES, iRC);
189 template <
typename B>
193 typename T::LuminosityBlockSummaryCache* iCache) {
194 static_cast<T*>(iProd)->endLuminosityBlockSummary(iLumi, iES, iCache);
199 typename T::LuminosityBlockContext
const* iContext,
200 typename T::LuminosityBlockSummaryCache* iCache) {
201 T::globalEndLuminosityBlockSummary(
Lumi, iES, iContext, iCache);
205 template <
typename T>
209 typename T::LuminosityBlockContext
const*,
214 typename T::LuminosityBlockSummaryCache* iCache) {}
217 typename T::LuminosityBlockContext
const*,
218 typename T::LuminosityBlockSummaryCache*) {}
221 template <
typename T>
228 template <
typename T,
bool>
231 T::globalBeginRunProduce(iRun, iES, iRC);
235 template <
typename T>
240 template <
typename T>
246 template <
typename T,
bool bProduce,
bool bSummary>
250 typename T::RunContext
const*,
251 typename T::RunSummaryCache
const*) {}
254 template <
typename T>
258 typename T::RunContext
const* iRC,
259 typename T::RunSummaryCache
const*) {
260 T::globalEndRunProduce(iRun, iES, iRC);
264 template <
typename T>
268 typename T::RunContext
const* iRC,
269 typename T::RunSummaryCache
const* iRS) {
270 T::globalEndRunProduce(iRun, iES, iRC, iRS);
274 template <
typename T>
280 template <
typename T,
bool>
284 typename T::LuminosityBlockContext
const* iRC) {
285 T::globalBeginLuminosityBlockProduce(
Lumi, iES, iRC);
289 template <
typename T>
293 typename T::LuminosityBlockContext
const* iRC) {}
296 template <
typename T>
303 template <
typename T,
bool bProduce,
bool bSummary>
307 typename T::LuminosityBlockContext
const*,
308 typename T::LuminosityBlockSummaryCache
const*) {}
311 template <
typename T>
315 typename T::LuminosityBlockContext
const* iRC,
316 typename T::LuminosityBlockSummaryCache
const*) {
317 T::globalEndLuminosityBlockProduce(
Lumi, iES, iRC);
321 template <
typename T>
325 typename T::LuminosityBlockContext
const* iRC,
326 typename T::LuminosityBlockSummaryCache
const* iRS) {
327 T::globalEndLuminosityBlockProduce(
Lumi, iES, iRC, iRS);
331 template <
typename T>
333 CallEndLuminosityBlockProduceImpl<
T,
334 T::HasAbility::kEndLuminosityBlockProducer,
static void endJob(typename T::GlobalCache *iCache)
CallGlobalLuminosityBlockSummaryImpl< T, T::HasAbility::kLuminosityBlockSummaryCache > CallGlobalLuminosityBlockSummary
static void produce(edm::Run &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache const *)
static void streamEndRunSummary(B *iProd, edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunSummaryCache *iCache)
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::LuminosityBlockCache const > &oCache)
static void set(void *iProd, void const *iCache)
static void set(B *iProd, typename T::GlobalCache const *iCache)
static void set(B *iProd, typename T::RunCache const *iCache)
static void produce(edm::LuminosityBlock &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache const *)
static void streamEndLuminosityBlockSummary(void *iProd, edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockSummaryCache *iCache)
static void endLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext)
static void streamEndRunSummary(void *iProd, edm::Run const &, edm::EventSetup const &, typename T::RunSummaryCache const *iCache)
CallBeginLuminosityBlockProduceImpl< T, T::HasAbility::kBeginLuminosityBlockProducer > CallBeginLuminosityBlockProduce
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void endRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext)
static void beginJob(typename T::GlobalCache *iCache)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void endJob(void *iCache)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext, typename T::LuminosityBlockSummaryCache *iCache)
static void beginRun(edm::Run const &, edm::EventSetup const &, typename T::GlobalCache const *, impl::dummy_ptr)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *iRS)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache *)
static void endRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *)
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, std::shared_ptr< typename T::RunSummaryCache > &oCache)
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
static void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, impl::dummy_ptr)
static void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *)
static void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::RunContext const *, impl::dummy_ptr)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, typename T::RunSummaryCache const *)
static void beginRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, impl::dummy_ptr)
static void set(void *iProd, typename T::RunCache const *iCache)
static const std::string B
static void set(B *iProd, typename T::LuminosityBlockCache const *iCache)
CallEndLuminosityBlockProduceImpl< T, T::HasAbility::kEndLuminosityBlockProducer, T::HasAbility::kLuminosityBlockSummaryCache > CallEndLuminosityBlockProduce
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::GlobalCache const *iGC, std::shared_ptr< typename T::RunCache const > &oCache)
static void globalEndRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache *)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, typename T::RunSummaryCache const *iRS)
static void set(void *iProd, typename T::LuminosityBlockCache const *iCache)
static void streamEndLuminosityBlockSummary(B *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES, typename T::LuminosityBlockSummaryCache *iCache)
static void beginLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, std::shared_ptr< typename T::LuminosityBlockSummaryCache > &oCache)
static void beginJob(void *iCache)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *)