1 #ifndef FWCore_Framework_global_implementors_h 2 #define FWCore_Framework_global_implementors_h 36 class WaitingTaskWithArenaHolder;
42 template <
typename T,
typename C>
49 for (
auto c : caches_) {
58 void preallocStreams(
unsigned int iNStreams)
final { caches_.resize(iNStreams, static_cast<C*>(
nullptr)); }
62 delete caches_[
id.value()];
63 caches_[
id.value()] =
nullptr;
68 streamBeginLuminosityBlock(
id, lbp,
c);
71 streamEndLuminosityBlock(
id, lbp,
c);
74 virtual std::unique_ptr<C> beginStream(
edm::StreamID)
const = 0;
89 template <
typename T,
typename C>
113 template <
typename T,
typename C>
122 void preallocLumis(
unsigned int iNLumis)
final { caches_.reset(
new std::shared_ptr<C>[iNLumis]); }
128 caches_[lp.index()] = globalBeginLuminosityBlock(lp,
c);
131 globalEndLuminosityBlock(lp,
c);
132 caches_[lp.index()].reset();
139 std::unique_ptr<std::shared_ptr<C>[]>
caches_;
142 template <
typename T,
typename C>
145 template <
typename T,
typename C>
156 cache_ = globalBeginRunSummary(rp,
c);
160 std::lock_guard<std::mutex> guard(mutex_);
161 streamEndRunSummary(
id, rp,
c, cache_.get());
175 template <
typename T,
typename C>
178 template <
typename T,
typename C>
192 caches_[lb.index()] = globalBeginLuminosityBlockSummary(lb,
c);
196 std::lock_guard<std::mutex> guard(mutex_);
197 streamEndLuminosityBlockSummary(
id, lb,
c, caches_[lb.index()].get());
200 globalEndLuminosityBlockSummary(lb,
c, caches_[lb.index()].get());
206 virtual void streamEndLuminosityBlockSummary(
StreamID,
216 std::unique_ptr<std::shared_ptr<C>[]>
caches_;
220 template <
typename T>
234 template <
typename T>
248 template <
typename T,
typename C>
264 template <
typename T>
277 template <
typename T>
290 template <
typename T,
typename S>
310 template <
typename T>
326 template <
typename T>
void preallocLumisSummary(unsigned int iNLumis) final
~LuminosityBlockCacheHolder()(false) override
static boost::mutex mutex
~BeginRunProducer()(false) override
LuminosityBlockIndex index() const
~RunCacheHolder()(false) override
virtual void streamEndRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
virtual void endStream(edm::StreamID) const
void produce(StreamID streamID, Event &ev, EventSetup const &es) const final
~LuminosityBlockSummaryCacheHolder()(false) override
void maybeClearCache(LuminosityBlock const &) final
void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
~EndRunSummaryProducer()(false)
void doStreamEndRunSummary_(StreamID id, Run const &rp, EventSetup const &c) final
void doBeginLuminosityBlockSummary_(edm::LuminosityBlock const &lb, EventSetup const &c) final
void doEndRunSummary_(Run const &rp, EventSetup const &c) final
~Accumulator()(false) override
virtual void streamBeginRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
void preallocStreams(unsigned int iNStreams) final
void doEndStream_(StreamID id) final
~EndLuminosityBlockProducer()(false) override
std::unique_ptr< std::shared_ptr< C >[]> caches_
void doEndRunProduce_(Run &rp, EventSetup const &c) final
void doEndRun_(Run const &rp, EventSetup const &c) final
bool hasAcquire() const override
edm::propagate_const< std::shared_ptr< C > > cache_
virtual void streamEndLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
void doStreamEndRun_(StreamID id, Run const &rp, EventSetup const &c) final
void doBeginLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
void doEndLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
C const * runCache(edm::RunIndex iID) const
std::vector< C * > caches_
std::unique_ptr< std::shared_ptr< C >[]> caches_
virtual void streamBeginLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
std::shared_ptr< C > cache_
unsigned int value() const
~EndRunProducer()(false) override
void doBeginRun_(Run const &rp, EventSetup const &c) final
~ExternalWork()(false) override
bool hasAccumulator() const override
void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
~BeginLuminosityBlockProducer()(false) override
C const * luminosityBlockCache(edm::LuminosityBlockIndex iID) const
virtual void maybeClearCache(LuminosityBlock const &lb)
~StreamCacheHolder() override
C * streamCache(edm::StreamID iID) const
void preallocLumis(unsigned int iNLumis) final
void doBeginStream_(StreamID id) final
void doBeginRunSummary_(edm::Run const &rp, EventSetup const &c) final
void doStreamEndLuminosityBlockSummary_(StreamID id, LuminosityBlock const &lb, EventSetup const &c) final
~RunSummaryCacheHolder()(false)
void doEndLuminosityBlockSummary_(LuminosityBlock const &lb, EventSetup const &c) final
void doStreamBeginRun_(StreamID id, Run const &rp, EventSetup const &c) final
~EndLuminosityBlockSummaryProducer()(false)