2 #ifndef Framework_eventsetup_dependsOn_h 3 #define Framework_eventsetup_dependsOn_h 59 namespace eventsetup {
64 template<
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain >
67 DependsOnCaller(
T* iCallee,
void(
T::* iMethod)(
const TDependsOnRecord&) ,
const TCallerChain& iChain) :
71 const TDependsOnRecord&
record = iRecord.template getRecord<TDependsOnRecord>();
72 if(record.cacheIdentifier() !=
cacheID_) {
87 template<
class T,
class TRecord,
class TDependsOnRecord,
class TCallerChain >
95 template<
class TRecord>
99 namespace depends_on {
101 template <
class T,
class TDependsOnRecord>
106 OneHolder(
void (
T::*iHoldee)(
const TDependsOnRecord&)) : holdee_(iHoldee) {}
107 void (
T::*holdee_)(
const TDependsOnRecord&);
112 template <
class T,
class U>
122 template<
class T,
class U>
129 template<
class TRecord,
class THolder>
132 template<
class TRecord,
class T,
class TDependsOnRecord >
136 template<
class TRecord,
class T,
class T1,
class T2>
142 template<
class T,
class TDependsOnRecord,
class TRecord>
148 template<
class T,
class T1,
class T2,
class TRecord>
156 template<
typename T,
typename TRecord,
typename TArg>
159 template<
typename T,
typename TRecord,
typename TDependsOnRecord>
165 template<
typename T,
typename TRecord,
typename TDependsOnRecord >
174 template<
typename T,
typename TRecord,
typename T1,
typename T2>
179 template<
typename T,
typename TRecord,
typename T1,
typename T2>
188 template <
typename T,
typename TDependsOnRecord>
190 dependsOn(
void(
T::*iT)(
const TDependsOnRecord&)) {
return iT ; }
192 template<
typename T,
typename T1,
typename T2>
196 template<
typename T,
typename T1,
typename T2,
typename T3>
depends_on::OneHolder< T, TDependsOnRecord > dependsOn(void(T::*iT)(const TDependsOnRecord &))
DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > Caller_t
void(T::* method_)(const TDependsOnRecord &)
unsigned long long cacheID_
ESPreFunctorDecorator< TRecord, DependsOnCaller< T, TRecord, TDependsOnRecord, DependsOnDoNothingCaller< TRecord > > > Decorator_t
void operator()(const TRecord &)
mathSSE::Vec4< double > operator&(mathSSE::Vec4< double > a, mathSSE::Vec4< double > b)
DependsOnCaller(T *iCallee, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > makeCaller(T *iT, const TRecord *iRec, const TwoHolder< T1, void(T::*)(const T2 &)> &iHolder)
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
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
void(T::* holdee_)(const TDependsOnRecord &)
DependsOnCaller< T, TRecord, T2, typename HolderToCaller< TRecord, T1 >::Caller_t > Caller_t
OneHolder(void(T::*iHoldee)(const TDependsOnRecord &))
TwoHolder(const T &i1, const U &i2)
void operator()(const TRecord &iRecord)