CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain > Struct Template Reference

#include <eventsetup_dependsOn.h>

Public Member Functions

 DependsOnCaller (T *iCallee, void(T::*iMethod)(const TDependsOnRecord &), const TCallerChain &iChain)
 
void operator() (const TRecord &iRecord)
 

Private Attributes

unsigned long long cacheID_
 
Tcallee_
 
TCallerChain chain_
 
void(T::* method_ )(const TDependsOnRecord &)
 

Detailed Description

template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
struct edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >

Definition at line 66 of file eventsetup_dependsOn.h.

Constructor & Destructor Documentation

template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::DependsOnCaller ( T iCallee,
void(T::*)(const TDependsOnRecord &)  iMethod,
const TCallerChain &  iChain 
)
inline

Definition at line 68 of file eventsetup_dependsOn.h.

68  :
69  callee_(iCallee), method_(iMethod), chain_(iChain),cacheID_(0){}
void(T::* method_)(const TDependsOnRecord &)

Member Function Documentation

template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
void edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::operator() ( const TRecord &  iRecord)
inline

Definition at line 71 of file eventsetup_dependsOn.h.

References edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::cacheID_, edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::callee_, edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::chain_, edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::method_, and record.

71  {
72  const TDependsOnRecord& record = iRecord.template getRecord<TDependsOnRecord>();
73  if(record.cacheIdentifier() != cacheID_) {
74  (callee_->*method_)(record);
75  cacheID_=record.cacheIdentifier();
76  }
77  //call next 'functor' in our chain
78  chain_(iRecord);
79  }
JetCorrectorParameters::Record record
Definition: classes.h:11
void(T::* method_)(const TDependsOnRecord &)

Member Data Documentation

template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
unsigned long long edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::cacheID_
private
template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
T* edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::callee_
private
template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
TCallerChain edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::chain_
private
template<class T, class TRecord, class TDependsOnRecord, class TCallerChain>
void(T::* edm::eventsetup::DependsOnCaller< T, TRecord, TDependsOnRecord, TCallerChain >::method_)(const TDependsOnRecord &)
private