2 #ifndef Framework_eventsetup_dependsOn_h
3 #define Framework_eventsetup_dependsOn_h
58 namespace eventsetup {
63 template <
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain>
65 DependsOnCaller(
T* iCallee,
void (
T::*iMethod)(
const TDependsOnRecord&),
const TCallerChain& iChain)
69 const TDependsOnRecord&
record = iRecord.template getRecord<TDependsOnRecord>();
70 if (record.cacheIdentifier() !=
cacheID_) {
86 template <
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain>
88 T* iCallee,
const TRecord*,
void (
T::*iMethod)(
const TDependsOnRecord&),
const TCallerChain& iChain) {
93 template <
class TRecord>
99 namespace depends_on {
101 template <
class T,
class TDependsOnRecord>
111 template <
class T,
class U>
121 template <
class T,
class U>
128 template <
class TRecord,
class THolder>
130 template <
class TRecord,
class T,
class TDependsOnRecord>
134 template <
class TRecord,
class T,
class T1,
class T2>
140 template <
class T,
class TDependsOnRecord,
class TRecord>
146 template <
class T,
class T1,
class T2,
class TRecord>
148 T* iT,
const TRecord* iRec,
const TwoHolder<T1,
void (
T::*)(
const T2&)>& iHolder) {
154 template <
typename T,
typename TRecord,
typename TArg>
159 template <
typename T,
typename TRecord,
typename TDependsOnRecord>
166 template <
typename T,
typename TRecord,
typename TDependsOnRecord>
176 template <
typename T,
typename TRecord,
typename T1,
typename T2>
183 template <
typename T,
typename TRecord,
typename T1,
typename T2>
194 template <
typename T,
typename TDependsOnRecord>
199 template <
typename T,
typename T1,
typename T2>
204 template <
typename T,
typename T1,
typename T2,
typename T3>
206 void (
T::*iT1)(
const T1&), T2 iT2, T3 iT3) {
ESPreFunctorDecorator< TRecord, typename depends_on::HolderToCaller< TRecord, depends_on::TwoHolder< T1, T2 > >::Caller_t > Decorator_t
void(T::* holdee_)(const TDependsOnRecord &)
depends_on::OneHolder< T, TDependsOnRecord > dependsOn(void(T::*iT)(const TDependsOnRecord &))
TwoHolder< T, U > operator&(const T &iT, const U &iU)
unsigned long long cacheID_
void operator()(const TRecord &)
DependsOnCaller(T *iCallee, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
void(T::* method_)(const TDependsOnRecord &)
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
TDependsOnRecord DependsOnRecord_t
ESPreFunctorDecorator< TRecord, DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > > Decorator_t
DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > makeCaller(T *iT, const TRecord *iRec, const OneHolder< T, TDependsOnRecord > &iHolder)
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller(T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
OneHolder(void(T::*iHoldee)(const TDependsOnRecord &))
DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > Caller_t
TwoHolder(const T &i1, const U &i2)
void operator()(const TRecord &iRecord)
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > Caller_t