Go to the documentation of this file. 1 #ifndef FWCore_Framework_Callback_h
2 #define FWCore_Framework_Callback_h
23 #include <type_traits>
30 namespace eventsetup {
33 template <
typename TRecord>
35 void pre(
const TRecord&) {}
36 void post(
const TRecord&) {}
43 = CallbackSimpleDecorator<TRecord> >
71 template <
class DataT>
78 setData<typename type::head_type, typename type::tail_type>(iReturn);
81 template <
class RemainingContainerT,
class DataT,
class ProductsT>
84 if (
nullptr !=
temp) {
87 if constexpr (not std::is_same_v<produce::Null, RemainingContainerT>) {
88 setData<typename RemainingContainerT::head_type, typename RemainingContainerT::tail_type>(iProducts);
const Callback & operator=(const Callback &)=delete
void pre(const TRecord &)
void storeReturnedValues(TReturn iReturn)
edm::propagate_const< T * > producer_
void holdOntoPointer(DataT *iData)
TReturn(T ::*)(const TRecord &) method_type
void post(const TRecord &)
unsigned int transitionID() const
element_type const * get() const
std::array< void *, produce::size< TReturn >::value > proxyData_
Callback(T *iProd, method_type iMethod, unsigned int iID, const TDecorator &iDec=TDecorator())
ESProxyIndex const * getTokenIndices() const
void operator()(const TRecord &iRecord)
void setData(ProductsT &iProducts)
bool wasCalledForThisRecord_
void moveFromTo(FromT &iFrom, ToT &iTo)