CMS 3D CMS Logo

data_default_record_trait.h
Go to the documentation of this file.
1 #ifndef Framework_data_default_record_trait_h
2 #define Framework_data_default_record_trait_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : data_default_record_trait
7 //
38 //
39 // Author: Chris Jones
40 // Created: Thu Apr 7 07:59:56 CDT 2005
41 //
42 
43 namespace edm {
44 
45  template <typename T>
46  class ESHandle;
47 
48  // Special class to denote that the default record should be used.
49  struct DefaultRecord {};
50 
51  namespace eventsetup {
52  template <class T>
54 
55  template <class DataT>
57  //NOTE: by default, a data item does not have a default record
59  };
60 
61  template <typename T>
62  struct default_record {
63  using data_type = typename T::value_type;
65  };
66 
67  template <typename T>
69  } // namespace eventsetup
70 
71  template <typename T>
72  struct ESHandleAdapter {
73  using value_type = T;
74  };
75 } // namespace edm
76 
77 #define EVENTSETUP_DATA_DEFAULT_RECORD(_data_, _record_) \
78  namespace edm::eventsetup { \
79  template <> \
80  struct data_default_record_trait<_data_> { \
81  typedef _record_ type; \
82  }; \
83  }
84 
85 #endif
typename default_record< T >::RecordT default_record_t
MUST_GET_RECORD_FROM_EVENTSETUP_TO_GET_DATA< DataT > type
HLT enums.
typename eventsetup::data_default_record_trait< data_type >::type RecordT
long double T