1 #ifndef FWCore_Framework_limited_outputmoduleAbilityToImplementor_h
2 #define FWCore_Framework_limited_outputmoduleAbilityToImplementor_h
31 class ModuleCallingContext;
34 namespace outputmodule {
68 virtual std::shared_ptr<C> globalBeginRun(
RunForOutput const&)
const = 0;
69 virtual void globalEndRun(
RunForOutput const&)
const = 0;
74 template <
typename T,
typename C>
86 void preallocLumis(
unsigned int iNLumis)
final { caches_.reset(
new std::shared_ptr<C>[iNLumis]); }
88 caches_[lp.index()] = globalBeginLuminosityBlock(lp);
91 globalEndLuminosityBlock(lp);
92 caches_[lp.index()].reset();
98 std::unique_ptr<std::shared_ptr<C>[]>
caches_;
101 template <
typename T>
109 template <
typename C>
114 template <
typename C>
void doEndRun_(RunForOutput const &rp) final
void doBeginLuminosityBlock_(LuminosityBlockForOutput const &lp) final
C const * luminosityBlockCache(edm::LuminosityBlockIndex iID) const
edm::propagate_const< std::shared_ptr< C > > cache_
void doBeginRun_(RunForOutput const &rp) final
std::unique_ptr< std::shared_ptr< C >[]> caches_
void doEndLuminosityBlock_(LuminosityBlockForOutput const &lp) final
edm::limited::outputmodule::RunCacheHolder< edm::limited::OutputModuleBase, C > Type
LuminosityBlockCacheHolder(edm::ParameterSet const &iPSet)
edm::limited::outputmodule::LuminosityBlockCacheHolder< edm::limited::OutputModuleBase, C > Type
RunCacheHolder(edm::ParameterSet const &iPSet)
C const * runCache(edm::RunIndex iID) const
~LuminosityBlockCacheHolder() noexcept(false) override
~RunCacheHolder() noexcept(false) override
void preallocLumis(unsigned int iNLumis) final