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 
28 // forward declarations
29 
30 namespace edm {
31  namespace eventsetup {
32 template<class RecordT, class DataT>
34 {
35 
36  public:
37  typedef DataT value_type;
38  typedef RecordT record_type;
39 
41  //virtual ~DataProxyTemplate();
42 
43  // ---------- const member functions ---------------------
44 
45  // ---------- static member functions --------------------
46 
47  // ---------- member functions ---------------------------
48  virtual const void* getImpl(const EventSetupRecord& iRecord,
49  const DataKey& iKey) {
50  assert(iRecord.key() == RecordT::keyForClass());
51  return this->make(static_cast<const RecordT&>(iRecord), iKey);
52  }
53 
54  protected:
55  virtual const DataT* make(const RecordT&, const DataKey&) = 0;
56 
57  private:
58  DataProxyTemplate(const DataProxyTemplate&); // stop default
59 
60  const DataProxyTemplate& operator=(const DataProxyTemplate&); // stop default
61 
62  // ---------- member data --------------------------------
63 };
64 
65  }
66 }
67 #endif
virtual EventSetupRecordKey key() const =0
virtual const DataT * make(const RecordT &, const DataKey &)=0
HLT enums.
virtual const void * getImpl(const EventSetupRecord &iRecord, const DataKey &iKey)
const DataProxyTemplate & operator=(const DataProxyTemplate &)