00001 #ifndef DataFormats_Provenance_Transient_h 00002 #define DataFormats_Provenance_Transient_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Provenance 00006 // Class : Transient 00007 // 00017 // 00018 // Original Author: Bill Tanenbaum 00019 // Created: Sat Aug 18 17:30:08 EDT 2007 00020 // $Id: Transient.h,v 1.1 2008/09/29 23:01:39 wmtan Exp $ 00021 // 00022 00023 // system include files 00024 00025 // user include files 00026 00027 // forward declarations 00028 namespace edm { 00029 00030 template <typename T> 00031 class Transient { 00032 public: 00033 typedef T value_type; 00034 Transient(T value = T()) : value_(value) {} 00035 operator T() const { return value_; } 00036 Transient & operator=(T rh) { value_ = rh; return *this; } 00037 T const& get() const { return value_;} 00038 T & get() { return value_;} 00039 private: 00040 T value_; 00041 }; 00042 } 00043 #endif