1 #ifndef FWCore_Framework_stream_callAbilities_h 2 #define FWCore_Framework_stream_callAbilities_h 35 template <
typename T,
bool>
38 static void set(
B* iProd,
typename T::GlobalCache
const* iCache) {
39 static_cast<T*
>(iProd)->setGlobalCache(iCache);
41 static void endJob(
typename T::GlobalCache* iCache) { T::globalEndJob(iCache); }
45 static void set(
void* iProd,
void const* iCache) {}
54 template <
typename T,
bool>
58 typename T::GlobalCache
const* iGC,
59 std::shared_ptr<typename T::RunCache const>& oCache) {
60 oCache = T::globalBeginRun(iRun, iES, iGC);
64 static void set(
B* iProd,
typename T::RunCache
const* iCache) {
65 static_cast<T*
>(iProd)->setRunCache(iCache);
69 T::globalEndRun(iRun, iES, iContext);
76 static void set(
void* iProd,
typename T::RunCache
const* iCache) {}
86 template <
typename T,
bool>
90 typename T::RunContext
const* iRC,
91 std::shared_ptr<typename T::RunSummaryCache>& oCache) {
92 oCache = T::globalBeginRunSummary(iRun, iES, iRC);
98 typename T::RunSummaryCache* iCache) {
99 static_cast<T*
>(iProd)->endRunSummary(iRun, iES, iCache);
104 typename T::RunContext
const* iContext,
105 typename T::RunSummaryCache* iCache) {
106 T::globalEndRunSummary(iRun, iES, iContext, iCache);
110 template <
typename T>
116 typename T::RunSummaryCache
const* iCache) {}
119 typename T::RunContext
const*,
120 typename T::RunSummaryCache*) {}
123 template <
typename T>
129 template <
typename T,
bool>
133 typename T::RunContext
const* iRC,
134 std::shared_ptr<typename T::LuminosityBlockCache const>& oCache) {
135 oCache = T::globalBeginLuminosityBlock(Lumi, iES, iRC);
138 template <
typename B>
139 static void set(
B* iProd,
typename T::LuminosityBlockCache
const* iCache) {
140 static_cast<T*
>(iProd)->setLuminosityBlockCache(iCache);
145 typename T::LuminosityBlockContext
const* iContext) {
146 T::globalEndLuminosityBlock(Lumi, iES, iContext);
150 template <
typename T>
154 typename T::RunContext
const*,
156 static void set(
void* iProd,
typename T::LuminosityBlockCache
const* iCache) {}
159 typename T::LuminosityBlockContext
const*) {}
161 template <
typename T>
167 template <
typename T,
bool>
171 typename T::LuminosityBlockContext
const* iRC,
172 std::shared_ptr<typename T::LuminosityBlockSummaryCache>& oCache) {
173 oCache = T::globalBeginLuminosityBlockSummary(Lumi, iES, iRC);
175 template <
typename B>
179 typename T::LuminosityBlockSummaryCache* iCache) {
180 static_cast<T*
>(iProd)->endLuminosityBlockSummary(iLumi, iES, iCache);
185 typename T::LuminosityBlockContext
const* iContext,
186 typename T::LuminosityBlockSummaryCache* iCache) {
187 T::globalEndLuminosityBlockSummary(Lumi, iES, iContext, iCache);
191 template <
typename T>
195 typename T::LuminosityBlockContext
const*,
200 typename T::LuminosityBlockSummaryCache* iCache) {}
203 typename T::LuminosityBlockContext
const*,
204 typename T::LuminosityBlockSummaryCache*) {}
207 template <
typename T>
214 template <
typename T,
bool>
217 T::globalBeginRunProduce(iRun, iES, iRC);
221 template <
typename T>
226 template <
typename T>
232 template <
typename T,
bool bProduce,
bool bSummary>
236 typename T::RunContext
const*,
237 typename T::RunSummaryCache
const*) {}
240 template <
typename T>
244 typename T::RunContext
const* iRC,
245 typename T::RunSummaryCache
const*) {
246 T::globalEndRunProduce(iRun, iES, iRC);
250 template <
typename T>
254 typename T::RunContext
const* iRC,
255 typename T::RunSummaryCache
const* iRS) {
256 T::globalEndRunProduce(iRun, iES, iRC, iRS);
260 template <
typename T>
266 template <
typename T,
bool>
270 typename T::LuminosityBlockContext
const* iRC) {
271 T::globalBeginLuminosityBlockProduce(Lumi, iES, iRC);
275 template <
typename T>
279 typename T::LuminosityBlockContext
const* iRC) {}
282 template <
typename T>
289 template <
typename T,
bool bProduce,
bool bSummary>
293 typename T::LuminosityBlockContext
const*,
294 typename T::LuminosityBlockSummaryCache
const*) {}
297 template <
typename T>
301 typename T::LuminosityBlockContext
const* iRC,
302 typename T::LuminosityBlockSummaryCache
const*) {
303 T::globalEndLuminosityBlockProduce(Lumi, iES, iRC);
307 template <
typename T>
311 typename T::LuminosityBlockContext
const* iRC,
312 typename T::LuminosityBlockSummaryCache
const* iRS) {
313 T::globalEndLuminosityBlockProduce(Lumi, iES, iRC, iRS);
317 template <
typename T>
320 T::HasAbility::kEndLuminosityBlockProducer,
static void endLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
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 globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache *)
static void endRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC)
static void produce(edm::LuminosityBlock &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, typename T::LuminosityBlockSummaryCache const *)
static void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockContext const *, impl::dummy_ptr)
static void streamEndRunSummary(B *iProd, edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunSummaryCache *iCache)
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 produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
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 produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC)
static void globalEndRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache *)
static void beginRun(edm::Run const &, edm::EventSetup const &, typename T::GlobalCache 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 beginRun(edm::Run 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 *iRS)
static void streamEndRunSummary(void *iProd, edm::Run const &, edm::EventSetup const &, typename T::RunSummaryCache const *iCache)
static const std::string B
static void endJob(typename T::GlobalCache *iCache)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *iRS)
static void streamEndLuminosityBlockSummary(B *iProd, edm::LuminosityBlock const &iLumi, edm::EventSetup const &iES, typename T::LuminosityBlockSummaryCache *iCache)
static void globalEndRun(edm::Run const &iRun, edm::EventSetup const &iES, typename T::RunContext const *iContext, typename T::RunSummaryCache *iCache)
static void endJob(void *iCache)
static void streamEndLuminosityBlockSummary(void *iProd, edm::LuminosityBlock const &, edm::EventSetup const &, typename T::LuminosityBlockSummaryCache *iCache)
static void produce(edm::Run &iRun, edm::EventSetup const &iES, typename T::RunContext const *iRC, typename T::RunSummaryCache const *)
static void produce(edm::Run &, edm::EventSetup const &, typename T::RunContext const *, typename T::RunSummaryCache const *)
static void produce(edm::LuminosityBlock &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iRC, typename T::LuminosityBlockSummaryCache const *)
static void globalEndLuminosityBlock(edm::LuminosityBlock const &Lumi, edm::EventSetup const &iES, typename T::LuminosityBlockContext const *iContext, typename T::LuminosityBlockSummaryCache *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 endRun(edm::Run const &, edm::EventSetup const &, typename T::RunContext const *)