00001 #ifndef FWCore_Framework_ESTransientHandle_h 00002 #define FWCore_Framework_ESTransientHandle_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Framework 00006 // Class : ESTransientHandle 00007 // 00025 // 00026 // Author: Chris Jones 00027 // Created: Thu Nov 12 14:47:35 CST 2009 00028 // 00029 00030 // system include files 00031 00032 // user include files 00033 #include "FWCore/Framework/interface/ESHandle.h" 00034 00035 // forward declarations 00036 namespace edm { 00037 00038 template<typename T> 00039 class ESTransientHandle : public ESHandleBase { 00040 public: 00041 typedef T value_type; 00042 00043 ESTransientHandle() : ESHandleBase() {} 00044 ESTransientHandle(T const* iData) : ESHandleBase(iData, 0) {} 00045 ESTransientHandle(T const* iData, edm::eventsetup::ComponentDescription const* desc) : ESHandleBase(iData, desc) {} 00046 00047 // ---------- const member functions --------------------- 00048 T const* product() const { return static_cast<T const *>(productStorage()); } 00049 T const* operator->() const { return product(); } 00050 T const& operator*() const { return *product(); } 00051 // ---------- static member functions -------------------- 00052 static const bool transientAccessOnly = true; 00053 00054 // ---------- member functions --------------------------- 00055 00056 private: 00057 }; 00058 00059 } 00060 #endif