CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator > Class Template Reference

#include <Callback.h>

Inheritance diagram for edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >:
edm::eventsetup::CallbackBase

Public Types

typedef TReturn(T::* method_type )(const TRecord &)
 

Public Member Functions

 Callback (T *iProd, method_type iMethod, const TDecorator &iDec=TDecorator())
 
template<class DataT >
void holdOntoPointer (DataT *iData)
 
void newRecordComing ()
 
void operator() (const TRecord &iRecord)
 
template<class RemainingContainerT , class DataT , class ProductsT >
void setData (ProductsT &iProducts, const RemainingContainerT *, const DataT *)
 
template<class DataT , class ProductsT >
void setData (ProductsT &iProducts, const produce::Null *, const DataT *)
 
void storeReturnedValues (TReturn iReturn)
 
- Public Member Functions inherited from edm::eventsetup::CallbackBase
virtual ~CallbackBase ()
 

Private Member Functions

 Callback (const Callback &)
 
const Callbackoperator= (const Callback &)
 

Private Attributes

TDecorator decorator_
 
method_type method_
 
Tproducer_
 
std::vector< void * > proxyData_
 
bool wasCalledForThisRecord_
 

Detailed Description

template<typename T, typename TReturn, typename TRecord, typename TDecorator = CallbackSimpleDecorator<TRecord>>
class edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >

Definition at line 47 of file Callback.h.

Member Typedef Documentation

template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
typedef TReturn(T ::* edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::method_type)(const TRecord &)

Definition at line 49 of file Callback.h.

Constructor & Destructor Documentation

template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::Callback ( T iProd,
method_type  iMethod,
const TDecorator &  iDec = TDecorator() 
)
inline

Definition at line 51 of file Callback.h.

53  :
54  proxyData_(produce::size< TReturn >::value, static_cast<void*>(nullptr)),
55  producer_(iProd),
56  method_(iMethod),
58  decorator_(iDec) {}
std::vector< void * > proxyData_
Definition: Callback.h:111
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::Callback ( const Callback< T, TReturn, TRecord, TDecorator > &  )
private

Member Function Documentation

template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
template<class DataT >
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::holdOntoPointer ( DataT *  iData)
inline
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::newRecordComing ( )
inline
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::operator() ( const TRecord &  iRecord)
inline
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
const Callback& edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::operator= ( const Callback< T, TReturn, TRecord, TDecorator > &  )
private
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
template<class RemainingContainerT , class DataT , class ProductsT >
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::setData ( ProductsT &  iProducts,
const RemainingContainerT *  ,
const DataT *   
)
inline

Definition at line 89 of file Callback.h.

References edm::eventsetup::copyFromTo(), edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::proxyData_, and groupFilesInBlocks::temp.

Referenced by edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::storeReturnedValues().

89  {
90  DataT* temp = reinterpret_cast< DataT*>(proxyData_[produce::find_index<TReturn,DataT>::value]) ;
91  if(0 != temp) { copyFromTo(iProducts, *temp); }
92  setData(iProducts, static_cast< const typename RemainingContainerT::head_type *>(nullptr),
93  static_cast< const typename RemainingContainerT::tail_type *>(nullptr));
94  }
void setData(ProductsT &iProducts, const RemainingContainerT *, const DataT *)
Definition: Callback.h:89
std::vector< void * > proxyData_
Definition: Callback.h:111
void copyFromTo(FromT &iFrom, ToT &iTo)
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
template<class DataT , class ProductsT >
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::setData ( ProductsT &  iProducts,
const produce::Null ,
const DataT *   
)
inline

Definition at line 96 of file Callback.h.

References edm::eventsetup::copyFromTo(), edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::proxyData_, and groupFilesInBlocks::temp.

96  {
97 
98  DataT* temp = reinterpret_cast< DataT*>(proxyData_[produce::find_index<TReturn,DataT>::value]) ;
99  //std::cout <<" setData["<< produce::find_index<TReturn,DataT>::value<<"] "<< temp <<std::endl;
100  if(0 != temp) { copyFromTo(iProducts, *temp); }
101  }
std::vector< void * > proxyData_
Definition: Callback.h:111
void copyFromTo(FromT &iFrom, ToT &iTo)
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
void edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::storeReturnedValues ( TReturn  iReturn)
inline

Definition at line 82 of file Callback.h.

References edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::setData().

Referenced by edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::operator()().

82  {
83  //std::cout <<" storeReturnedValues "<< iReturn <<" " <<iReturn->value_ <<std::endl;
85  setData(iReturn, static_cast<typename type::head_type*>(nullptr), static_cast<const typename type::tail_type *>(nullptr));
86  }
type
Definition: HCALResponse.h:21
void setData(ProductsT &iProducts, const RemainingContainerT *, const DataT *)
Definition: Callback.h:89

Member Data Documentation

template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
TDecorator edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::decorator_
private
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
method_type edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::method_
private
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
T* edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::producer_
private
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
std::vector<void*> edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::proxyData_
private
template<typename T , typename TReturn , typename TRecord , typename TDecorator = CallbackSimpleDecorator<TRecord>>
bool edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::wasCalledForThisRecord_
private