|
|
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>
37 namespace callGlobalDetail {
38 template <
typename,
typename = std::
void_t<>>
44 template <
typename T,
bool>
47 static void set(
B* iProd,
typename T::GlobalCache
const* iCache) {
48 static_cast<T*>(iProd)->setGlobalCache(iCache);
50 static void beginJob(
typename T::GlobalCache* iCache) {
52 T::globalBeginJob(iCache);
55 static void endJob(
typename T::GlobalCache* iCache) { T::globalEndJob(iCache); }
59 static void set(
void* iProd,
void const* iCache) {}
70 template <
typename T,
bool,
bool>
74 T::accessInputProcessBlock(iProcessBlock, iGC);
82 T::accessInputProcessBlock(processBlock);
103 template <
typename T,
bool>
107 typename T::GlobalCache
const* iGC,
108 std::shared_ptr<typename T::RunCache const>& oCache) {
109 oCache = T::globalBeginRun(iRun, iES, iGC);
112 template <
typename B>
113 static void set(
B* iProd,
typename T::RunCache
const* iCache) {
114 static_cast<T*>(iProd)->setRunCache(iCache);
118 T::globalEndRun(iRun, iES, iContext);
122 template <
typename T>
125 static void set(
void* iProd,
typename T::RunCache
const* iCache) {}
129 template <
typename T>
135 template <
typename T,
bool>
139 typename T::RunContext
const* iRC,
140 std::shared_ptr<typename T::RunSummaryCache>& oCache) {
141 oCache = T::globalBeginRunSummary(iRun, iES, iRC);
143 template <
typename B>
147 typename T::RunSummaryCache* iCache) {
148 static_cast<T*>(iProd)->endRunSummary(iRun, iES, iCache);
153 typename T::RunContext
const* iContext,
154 typename T::RunSummaryCache* iCache) {
155 T::globalEndRunSummary(iRun, iES, iContext, iCache);
159 template <
typename T>
165 typename T::RunSummaryCache
const* iCache) {}
168 typename T::RunContext
const*,
169 typename T::RunSummaryCache*) {}
172 template <
typename T>
178 template <
typename T,
bool>
182 typename T::RunContext
const* iRC,
183 std::shared_ptr<typename T::LuminosityBlockCache const>& oCache) {
184 oCache = T::globalBeginLuminosityBlock(
Lumi, iES, iRC);
187 template <
typename B>
188 static void set(
B* iProd,
typename T::LuminosityBlockCache
const* iCache) {
189 static_cast<T*>(iProd)->setLuminosityBlockCache(iCache);
194 typename T::LuminosityBlockContext
const* iContext) {
195 T::globalEndLuminosityBlock(
Lumi, iES, iContext);
199 template <
typename T>
203 typename T::RunContext
const*,
205 static void set(
void* iProd,
typename T::LuminosityBlockCache
const* iCache) {}
208 typename T::LuminosityBlockContext
const*) {}
210 template <
typename T>
216 template <
typename T,
bool>
220 typename T::LuminosityBlockContext
const* iRC,
221 std::shared_ptr<typename T::LuminosityBlockSummaryCache>& oCache) {
222 oCache = T::globalBeginLuminosityBlockSummary(
Lumi, iES, iRC);
224 template <
typename B>
228 typename T::LuminosityBlockSummaryCache* iCache) {
229 static_cast<T*>(iProd)->endLuminosityBlockSummary(iLumi, iES, iCache);
234 typename T::LuminosityBlockContext
const* iContext,
235 typename T::LuminosityBlockSummaryCache* iCache) {
236 T::globalEndLuminosityBlockSummary(
Lumi, iES, iContext, iCache);
240 template <
typename T>
244 typename T::LuminosityBlockContext
const*,
249 typename T::LuminosityBlockSummaryCache* iCache) {}
252 typename T::LuminosityBlockContext
const*,
253 typename T::LuminosityBlockSummaryCache*) {}
256 template <
typename T>
263 template <
typename T,
bool,
bool>
266 T::beginProcessBlock(iProcessBlock, iGC);
270 T::endProcessBlock(iProcessBlock, iGC);
274 template <
typename T>
277 T::beginProcessBlock(processBlock);
281 T::endProcessBlock(processBlock);
285 template <
typename T>
291 template <
typename T>
297 template <
typename T>
304 template <
typename T,
bool,
bool>
307 T::beginProcessBlockProduce(processBlock, globalCache);
311 template <
typename T>
314 T::beginProcessBlockProduce(processBlock);
318 template <
typename T>
323 template <
typename T>
328 template <
typename T>
335 template <
typename T,
bool,
bool>
338 T::endProcessBlockProduce(processBlock, globalCache);
342 template <
typename T>
345 T::endProcessBlockProduce(processBlock);
349 template <
typename T>
354 template <
typename T>
359 template <
typename T>
366 template <
typename T,
bool>
369 T::globalBeginRunProduce(iRun, iES, iRC);
373 template <
typename T>
378 template <
typename T>
384 template <
typename T,
bool bProduce,
bool bSummary>
388 typename T::RunContext
const*,
389 typename T::RunSummaryCache
const*) {}
392 template <
typename T>
396 typename T::RunContext
const* iRC,
397 typename T::RunSummaryCache
const*) {
398 T::globalEndRunProduce(iRun, iES, iRC);
402 template <
typename T>
406 typename T::RunContext
const* iRC,
407 typename T::RunSummaryCache
const* iRS) {
408 T::globalEndRunProduce(iRun, iES, iRC, iRS);
412 template <
typename T>
418 template <
typename T,
bool>
422 typename T::LuminosityBlockContext
const* iRC) {
423 T::globalBeginLuminosityBlockProduce(
Lumi, iES, iRC);
427 template <
typename T>
431 typename T::LuminosityBlockContext
const* iRC) {}
434 template <
typename T>
441 template <
typename T,
bool bProduce,
bool bSummary>
445 typename T::LuminosityBlockContext
const*,
446 typename T::LuminosityBlockSummaryCache
const*) {}
449 template <
typename T>
453 typename T::LuminosityBlockContext
const* iRC,
454 typename T::LuminosityBlockSummaryCache
const*) {
455 T::globalEndLuminosityBlockProduce(
Lumi, iES, iRC);
459 template <
typename T>
463 typename T::LuminosityBlockContext
const* iRC,
464 typename T::LuminosityBlockSummaryCache
const* iRS) {
465 T::globalEndLuminosityBlockProduce(
Lumi, iES, iRC, iRS);
469 template <
typename T>
471 CallEndLuminosityBlockProduceImpl<
T,
472 T::HasAbility::kEndLuminosityBlockProducer,
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void beginProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *)
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 endProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
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 produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *)
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)
CallWatchProcessBlockImpl< T, T::HasAbility::kWatchProcessBlock, T::HasAbility::kGlobalCache > CallWatchProcessBlock
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 endProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)
static void beginProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
CallInputProcessBlockImpl< T, T::HasAbility::kInputProcessBlockCache, T::HasAbility::kGlobalCache > CallInputProcessBlock
static void endProcessBlock(edm::ProcessBlock const &processBlock, typename T::GlobalCache *)
CallBeginProcessBlockProduceImpl< T, T::HasAbility::kBeginProcessBlockProducer, T::HasAbility::kGlobalCache > CallBeginProcessBlockProduce
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
static void produce(edm::ProcessBlock &, typename T::GlobalCache *)
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 produce(edm::ProcessBlock &, typename T::GlobalCache *)
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 produce(edm::ProcessBlock &, typename T::GlobalCache *)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *)
static void beginRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::GlobalCache const *iGC, std::shared_ptr< typename T::RunCache const > &oCache)
CallEndProcessBlockProduceImpl< T, T::HasAbility::kEndProcessBlockProducer, T::HasAbility::kGlobalCache > CallEndProcessBlockProduce
static void globalEndRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache *)
static void beginProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
static void produce(edm::ProcessBlock &processBlock, typename T::GlobalCache *globalCache)
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 endProcessBlock(edm::ProcessBlock const &, typename T::GlobalCache *)
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 *)
static void beginProcessBlock(edm::ProcessBlock const &iProcessBlock, typename T::GlobalCache *iGC)