2 #ifndef FWCore_Framework_Callback_h 3 #define FWCore_Framework_Callback_h 23 #include "oneapi/tbb/task_group.h" 34 namespace eventsetup {
36 class EventSetupRecordImpl;
39 typename TProduceFunc,
43 = CallbackSimpleDecorator<TRecord>>
48 Callback(
T* iProd, TProduceFunc iProduceFunc,
unsigned int iID,
const TDecorator& iDec = TDecorator())
49 :
Callback(iProd,
std::make_shared<TProduceFunc>(
std::
move(iProduceFunc)), iID, iDec) {}
62 constexpr bool emitPostPrefetchingSignal =
true;
76 std::shared_ptr<TProduceFunc> iProduceFunc,
78 const TDecorator& iDec = TDecorator())
79 :
Base(iProd,
std::
move(iProduceFunc), iID, iDec) {}
void prefetchAsync(WaitingTaskHolder iTask, EventSetupRecordImpl const *iRecord, EventSetupImpl const *iEventSetupImpl, ServiceToken const &token, ESParentContext const &iParent) noexcept
unsigned int transitionID() const noexcept
TDecorator const & decorator() const noexcept
WaitingTaskHolder makeProduceTask(oneapi::tbb::task_group *group, ServiceWeakToken const &serviceToken, EventSetupRecordImpl const *record, EventSetupImpl const *eventSetupImpl, bool emitPostPrefetchingSignal, ProduceFunctor &&produceFunctor)
Callback(T *iProd, TProduceFunc iProduceFunc, unsigned int iID, const TDecorator &iDec=TDecorator())
void prefetchAsyncImpl(RunModuleFnctr &&runModuleFnctr, WaitingTaskHolder iTask, EventSetupRecordImpl const *iRecord, EventSetupImpl const *iEventSetupImpl, ServiceToken const &token, ESParentContext const &iParent) noexcept
Callback(T *iProd, std::shared_ptr< TProduceFunc > iProduceFunc, unsigned int iID, const TDecorator &iDec=TDecorator())
std::shared_ptr< TProduceFunc > const & produceFunction() noexcept