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 //
16 //
17 // Author: Chris Jones
18 // Created: Thu Mar 31 12:45:32 EST 2005
19 //
20 
21 // system include files
22 
23 // user include files
26 #include <cassert>
27 #include <limits>
28 
29 // forward declarations
30 
31 namespace edm {
32  namespace eventsetup {
33  template <class RecordT, class DataT>
34  class DataProxyTemplate : public DataProxy {
35  public:
36  typedef DataT value_type;
37  typedef RecordT record_type;
38 
40  //virtual ~DataProxyTemplate();
41 
42  // ---------- const member functions ---------------------
43 
44  // ---------- static member functions --------------------
45 
46  // ---------- member functions ---------------------------
47  const void* getImpl(const EventSetupRecordImpl& iRecord, const DataKey& iKey) override {
48  assert(iRecord.key() == RecordT::keyForClass());
49  RecordT rec;
50  rec.setImpl(&iRecord, std::numeric_limits<unsigned int>::max(), nullptr);
51  return this->make(rec, iKey);
52  }
53 
54  protected:
55  virtual const DataT* make(const RecordT&, const DataKey&) = 0;
56 
57  private:
58  DataProxyTemplate(const DataProxyTemplate&) = delete; // stop default
59 
60  const DataProxyTemplate& operator=(const DataProxyTemplate&) = delete; // stop default
61 
62  // ---------- member data --------------------------------
63  };
64 
65  } // namespace eventsetup
66 } // namespace edm
67 #endif
const void * getImpl(const EventSetupRecordImpl &iRecord, const DataKey &iKey) override
virtual const DataT * make(const RecordT &, const DataKey &)=0
HLT enums.
const DataProxyTemplate & operator=(const DataProxyTemplate &)=delete
EventSetupRecordKey const & key() const