CMS 3D CMS Logo

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions

edm::eventsetup::DataProxyTemplate< RecordT, DataT > Class Template Reference

#include <DataProxyTemplate.h>

Inheritance diagram for edm::eventsetup::DataProxyTemplate< RecordT, DataT >:
edm::eventsetup::DataProxy DataProxy< RecordT, DataT >

List of all members.

Public Types

typedef RecordT record_type
typedef DataT value_type

Public Member Functions

 DataProxyTemplate ()
virtual const void * getImpl (const EventSetupRecord &iRecord, const DataKey &iKey)

Protected Member Functions

virtual const DataT * make (const RecordT &, const DataKey &)=0

Private Member Functions

 DataProxyTemplate (const DataProxyTemplate &)
const DataProxyTemplateoperator= (const DataProxyTemplate &)

Detailed Description

template<class RecordT, class DataT>
class edm::eventsetup::DataProxyTemplate< RecordT, DataT >

Definition at line 33 of file DataProxyTemplate.h.


Member Typedef Documentation

template<class RecordT , class DataT >
typedef RecordT edm::eventsetup::DataProxyTemplate< RecordT, DataT >::record_type

Definition at line 38 of file DataProxyTemplate.h.

template<class RecordT , class DataT >
typedef DataT edm::eventsetup::DataProxyTemplate< RecordT, DataT >::value_type

Definition at line 37 of file DataProxyTemplate.h.


Constructor & Destructor Documentation

template<class RecordT , class DataT >
edm::eventsetup::DataProxyTemplate< RecordT, DataT >::DataProxyTemplate ( ) [inline]

Definition at line 40 of file DataProxyTemplate.h.

{}
template<class RecordT , class DataT >
edm::eventsetup::DataProxyTemplate< RecordT, DataT >::DataProxyTemplate ( const DataProxyTemplate< RecordT, DataT > &  ) [private]

Member Function Documentation

template<class RecordT , class DataT >
virtual const void* edm::eventsetup::DataProxyTemplate< RecordT, DataT >::getImpl ( const EventSetupRecord ,
const DataKey iKey 
) [inline, virtual]

This is the function which does the real work of getting the data if it is not already cached. The returning 'void const*' must point to an instance of the class type corresponding to the type designated in iKey. So if iKey refers to a base class interface the pointer must be a pointer to that base class interface and not a pointer to an inheriting class instance.

Implements edm::eventsetup::DataProxy.

Definition at line 48 of file DataProxyTemplate.h.

References edm::eventsetup::EventSetupRecord::key(), and edm::eventsetup::DataProxyTemplate< RecordT, DataT >::make().

                                                       {
         assert(iRecord.key() == RecordT::keyForClass());
         return this->make(static_cast<const RecordT&>(iRecord), iKey);
      }
template<class RecordT , class DataT >
virtual const DataT* edm::eventsetup::DataProxyTemplate< RecordT, DataT >::make ( const RecordT &  ,
const DataKey  
) [protected, pure virtual]
template<class RecordT , class DataT >
const DataProxyTemplate& edm::eventsetup::DataProxyTemplate< RecordT, DataT >::operator= ( const DataProxyTemplate< RecordT, DataT > &  ) [private]