2 #ifndef Framework_eventsetup_dependsOn_h
3 #define Framework_eventsetup_dependsOn_h
60 namespace eventsetup {
65 template<
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain >
68 DependsOnCaller(
T* iCallee,
void(
T::* iMethod)(
const TDependsOnRecord&) ,
const TCallerChain& iChain) :
72 const TDependsOnRecord&
record = iRecord.template getRecord<TDependsOnRecord>();
73 if(record.cacheIdentifier() !=
cacheID_) {
88 template<
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain >
96 template<
class TRecord>
100 namespace depends_on {
102 template <
class T,
class TDependsOnRecord>
113 template <
class T,
class U>
123 template<
class T,
class U>
130 template<
class TRecord,
class THolder>
133 template<
class TRecord,
class T,
class TDependsOnRecord >
137 template<
class TRecord,
class T,
class T1,
class T2>
143 template<
class T,
class TDependsOnRecord,
class TRecord>
149 template<
class T,
class T1,
class T2,
class TRecord>
157 template<
typename T,
typename TRecord,
typename TArg>
160 template<
typename T,
typename TRecord,
typename TDependsOnRecord>
166 template<
typename T,
typename TRecord,
typename TDependsOnRecord >
175 template<
typename T,
typename TRecord,
typename T1,
typename T2>
180 template<
typename T,
typename TRecord,
typename T1,
typename T2>
189 template <
typename T,
typename TDependsOnRecord>
190 depends_on::OneHolder<T,TDependsOnRecord>
191 dependsOn(
void(
T::*iT)(
const TDependsOnRecord&)) {
return iT ; }
193 template<
typename T,
typename T1,
typename T2>
194 depends_on::TwoHolder<depends_on::OneHolder<T,T1>, T2>
197 template<
typename T,
typename T1,
typename T2,
typename T3>
198 depends_on::TwoHolder< depends_on::TwoHolder<depends_on::OneHolder<T,T1>, T2>, T3>
void(T::* holdee_)(const TDependsOnRecord &)
depends_on::OneHolder< T, TDependsOnRecord > dependsOn(void(T::*iT)(const TDependsOnRecord &))
DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > Caller_t
unsigned long long cacheID_
ESPreFunctorDecorator< TRecord, DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > > Decorator_t
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)
DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > makeCaller(T *iT, const TRecord *iRec, const OneHolder< T, TDependsOnRecord > &iHolder)
TDependsOnRecord DependsOnRecord_t
DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > createDependsOnCaller(T *iCallee, const TRecord *, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
ESPreFunctorDecorator< TRecord, typename depends_on::HolderToCaller< TRecord, depends_on::TwoHolder< T1, T2 > >::Caller_t > Decorator_t
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > Caller_t
OneHolder(void(T::*iHoldee)(const TDependsOnRecord &))
TwoHolder< T, U > operator&(const T &iT, const U &iU)
TwoHolder(const T &i1, const U &i2)
void operator()(const TRecord &iRecord)