CMS 3D CMS Logo

ESTransientHandle.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ESTransientHandle_h
2 #define FWCore_Framework_ESTransientHandle_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : ESTransientHandle
7 //
25 //
26 // Author: Chris Jones
27 // Created: Thu Nov 12 14:47:35 CST 2009
28 //
29 
30 // system include files
31 
32 // user include files
34 
35 // forward declarations
36 namespace edm {
37 
38  class ESHandleExceptionFactory;
39 
40  template <typename T>
42  public:
43  typedef T value_type;
44 
46  ESTransientHandle(T const* iData) : ESHandleBase(iData, 0) {}
48  ESTransientHandle(std::shared_ptr<ESHandleExceptionFactory>&&);
49 
50  // ---------- const member functions ---------------------
51  T const* product() const { return static_cast<T const*>(productStorage()); }
52  T const* operator->() const { return product(); }
53  T const& operator*() const { return *product(); }
54  // ---------- static member functions --------------------
55  static constexpr bool transientAccessOnly = true;
56 
57  // ---------- member functions ---------------------------
58 
59  private:
60  };
61 
62  template <class T>
63  ESTransientHandle<T>::ESTransientHandle(std::shared_ptr<edm::ESHandleExceptionFactory>&& iWhyFailed)
64  : ESHandleBase(std::move(iWhyFailed)) {}
65 
66 } // namespace edm
67 #endif
static constexpr bool transientAccessOnly
void const * productStorage() const
Definition: ESHandle.h:61
T const * operator->() const
T const & operator*() const
ESTransientHandle(T const *iData)
T const * product() const
HLT enums.
long double T
def move(src, dest)
Definition: eostools.py:511
ESTransientHandle(T const *iData, edm::eventsetup::ComponentDescription const *desc)