CMS 3D CMS Logo

DataProxyTemplate.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_DataProxyTemplate_h
2 #define FWCore_Framework_DataProxyTemplate_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : DataProxyTemplate
7 //
26 //
27 // Author: Chris Jones
28 // Created: Thu Mar 31 12:45:32 EST 2005
29 //
30 
31 // system include files
32 
33 // user include files
36 #include <cassert>
37 #include <limits>
38 
39 // forward declarations
40 
41 namespace edm {
42 
43  class EventSetupImpl;
44 
45  namespace eventsetup {
46 
47  template <class RecordT, class DataT>
48  class DataProxyTemplate : public DataProxy {
49  public:
50  typedef DataT value_type;
51  typedef RecordT record_type;
52 
54 
55  const void* getImpl(const EventSetupRecordImpl& iRecord,
56  const DataKey& iKey,
57  EventSetupImpl const* iEventSetupImpl) override {
58  assert(iRecord.key() == RecordT::keyForClass());
59  RecordT rec;
60  rec.setImpl(&iRecord, std::numeric_limits<unsigned int>::max(), nullptr, iEventSetupImpl, true);
61  return this->make(rec, iKey);
62  }
63 
64  protected:
65  virtual const DataT* make(const RecordT&, const DataKey&) = 0;
66  };
67 
68  } // namespace eventsetup
69 } // namespace edm
70 #endif
edm::eventsetup::DataProxyTemplate::record_type
RecordT record_type
Definition: DataProxyTemplate.h:51
edm::eventsetup::DataProxyTemplate::value_type
DataT value_type
Definition: DataProxyTemplate.h:50
edm::eventsetup::DataProxyTemplate::getImpl
const void * getImpl(const EventSetupRecordImpl &iRecord, const DataKey &iKey, EventSetupImpl const *iEventSetupImpl) override
Definition: DataProxyTemplate.h:55
edm::EventSetupImpl
Definition: EventSetupImpl.h:44
edm
HLT enums.
Definition: AlignableModifier.h:19
cms::cuda::assert
assert(be >=bs)
edm::eventsetup::DataKey
Definition: DataKey.h:29
DataProxy.h
EventSetupRecord.h
edm::eventsetup::DataProxyTemplate::DataProxyTemplate
DataProxyTemplate()
Definition: DataProxyTemplate.h:53
edm::eventsetup::EventSetupRecordImpl
Definition: EventSetupRecordImpl.h:73
edm::eventsetup::EventSetupRecordImpl::key
EventSetupRecordKey const & key() const
Definition: EventSetupRecordImpl.h:99
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edm::eventsetup::DataProxy
Definition: DataProxy.h:38
edm::eventsetup::DataProxyTemplate::make
virtual const DataT * make(const RecordT &, const DataKey &)=0
edm::eventsetup::DataProxyTemplate
Definition: DataProxyTemplate.h:48