1 #ifndef FWCore_Framework_global_implementors_h
2 #define FWCore_Framework_global_implementors_h
46 class WaitingTaskWithArenaHolder;
52 template <
typename T,
typename C>
99 template <
typename T,
typename... CacheTypes>
111 template <std::
size_t ICacheType,
typename DataType,
typename Func>
113 cacheImpl_.template registerProcessBlockCacheFiller<ICacheType, DataType, Func>(
token,
114 std::forward<Func>(
func));
117 template <
typename CacheType,
typename DataType,
typename Func>
119 cacheImpl_.template registerProcessBlockCacheFiller<CacheType, DataType, Func>(
token,
120 std::forward<Func>(
func));
129 cacheImpl_.selectInputProcessBlocks(productRegistry, processBlockHelperBase, *
this);
146 template <
typename T,
typename C>
170 template <
typename T,
typename C>
196 std::unique_ptr<std::shared_ptr<C>[]>
caches_;
199 template <
typename T,
typename C>
202 template <
typename T,
typename C>
217 std::lock_guard<std::mutex> guard(
mutex_);
232 template <
typename T,
typename C>
235 template <
typename T,
typename C>
253 std::lock_guard<std::mutex> guard(
mutex_);
273 std::unique_ptr<std::shared_ptr<C>[]>
caches_;
277 template <
typename T>
293 template <
typename T>
316 void doEndProcessBlockProduce_(ProcessBlock&) final;
318 virtual
void endProcessBlockProduce(edm::ProcessBlock&) = 0;
335 template <
typename T>
349 template <
typename T,
typename C>
350 class EndRunSummaryProducer :
public RunSummaryCacheHolder<T, C> {
352 EndRunSummaryProducer() =
default;
353 EndRunSummaryProducer(EndRunSummaryProducer
const&) =
delete;
354 EndRunSummaryProducer&
operator=(EndRunSummaryProducer
const&) =
delete;
365 template <
typename T>
378 template <
typename T>
391 template <
typename T,
typename S>
392 class EndLuminosityBlockSummaryProducer :
public LuminosityBlockSummaryCacheHolder<T, S> {
394 EndLuminosityBlockSummaryProducer() =
default;
395 EndLuminosityBlockSummaryProducer(EndLuminosityBlockSummaryProducer
const&) =
delete;
396 EndLuminosityBlockSummaryProducer&
operator=(EndLuminosityBlockSummaryProducer
const&) =
delete;
411 template <
typename T>
440 virtual void accumulate(StreamID streamID,
Event const&
ev,
EventSetup const& es)
const = 0;
void preallocLumisSummary(unsigned int iNLumis) final
~EndLuminosityBlockSummaryProducer() noexcept(false) override
bool hasAcquire() const override
const edm::EventSetup & c
~LuminosityBlockSummaryCacheHolder() noexcept(false) override
~EndRunProducer() noexcept(false) override
LuminosityBlockIndex index() const
virtual void globalEndRun(edm::Run const &, edm::EventSetup const &) const =0
StreamCacheHolder< T, C > & operator=(StreamCacheHolder< T, C > const &)=delete
virtual void streamEndRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
virtual void endStream(edm::StreamID) const
RunCacheHolder< T, C > & operator=(RunCacheHolder< T, C > const &)=delete
~EndRunSummaryProducer() noexcept(false) override
void maybeClearCache(LuminosityBlock const &) final
~BeginProcessBlockProducer() noexcept(false) override
WatchProcessBlock()=default
void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
~EndLuminosityBlockProducer() noexcept(false) override
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t Func __host__ __device__ V int Func func
~EndProcessBlockProducer() noexcept(false) override
void doStreamEndRunSummary_(StreamID id, Run const &rp, EventSetup const &c) final
void doBeginLuminosityBlockSummary_(edm::LuminosityBlock const &lb, EventSetup const &c) final
RunSummaryCacheHolder()=default
virtual std::shared_ptr< C > globalBeginLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
WatchProcessBlock & operator=(WatchProcessBlock const &)=delete
void doEndRunSummary_(Run const &rp, EventSetup const &c) final
~Accumulator() noexcept(false) override
virtual void streamEndRunSummary(StreamID, edm::Run const &, edm::EventSetup const &, C *) const =0
virtual std::unique_ptr< C > beginStream(edm::StreamID) const =0
virtual void streamBeginRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
virtual void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
virtual void globalEndLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
~BeginRunProducer() noexcept(false) override
void preallocStreams(unsigned int iNStreams) final
void doEndStream_(StreamID id) final
~RunSummaryCacheHolder() noexcept(false) override
StreamCacheHolder()=default
std::unique_ptr< std::shared_ptr< C >[]> caches_
virtual void beginProcessBlockProduce(edm::ProcessBlock &)=0
void doEndRunProduce_(Run &rp, EventSetup const &c) final
void doBeginProcessBlock_(ProcessBlock const &) final
virtual std::shared_ptr< C > globalBeginRun(edm::Run const &, edm::EventSetup const &) const =0
void doEndProcessBlock_(ProcessBlock const &) final
virtual void streamEndLuminosityBlockSummary(StreamID, edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
LuminosityBlockCacheHolder< T, C > & operator=(LuminosityBlockCacheHolder< T, C > const &)=delete
void doEndRun_(Run const &rp, EventSetup const &c) final
void doBeginProcessBlockProduce_(ProcessBlock &) final
edm::propagate_const< std::shared_ptr< C > > cache_
virtual void beginProcessBlock(ProcessBlock const &)
BeginProcessBlockProducer()=default
~RunCacheHolder() noexcept(false) override
LuminosityBlockSummaryCacheHolder< T, C > & operator=(LuminosityBlockSummaryCacheHolder< T, C > const &)=delete
virtual void streamEndLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
virtual std::shared_ptr< C > globalBeginRunSummary(edm::Run const &, edm::EventSetup const &) const =0
void doStreamEndRun_(StreamID id, Run const &rp, EventSetup const &c) final
void doBeginLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
RunSummaryCacheHolder< T, C > & operator=(RunSummaryCacheHolder< T, C > const &)=delete
void doEndLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
C const * runCache(edm::RunIndex iID) const
bool hasAccumulator() const override
virtual void endProcessBlock(ProcessBlock 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
void doBeginRun_(Run const &rp, EventSetup const &c) final
void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
LuminosityBlockCacheHolder()=default
C const * luminosityBlockCache(edm::LuminosityBlockIndex iID) const
virtual void maybeClearCache(LuminosityBlock const &lb)
constexpr element_type const * get() const
~StreamCacheHolder() override
~LuminosityBlockCacheHolder() noexcept(false) override
virtual void globalEndRunSummary(edm::Run const &, edm::EventSetup const &, C *) const =0
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
BeginProcessBlockProducer & operator=(BeginProcessBlockProducer const &)=delete
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
LuminosityBlockSummaryCacheHolder()=default
~ExternalWork() noexcept(false) override
void doStreamEndLuminosityBlockSummary_(StreamID id, LuminosityBlock const &lb, EventSetup const &c) final
~WatchProcessBlock() noexcept(false) override
~BeginLuminosityBlockProducer() noexcept(false) override
void doEndLuminosityBlockSummary_(LuminosityBlock const &lb, EventSetup const &c) final
void doStreamBeginRun_(StreamID id, Run const &rp, EventSetup const &c) final
virtual std::shared_ptr< C > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
void produce(StreamID streamID, Event &ev, EventSetup const &es) const final