CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PayloadRef.h
Go to the documentation of this file.
1 #ifndef CondCore_DBCommon_PayloadRef_h
2 #define CondCore_DBCommon_PayloadRef_h
3 
4 namespace cond {
5 
6  /* manages various types of wrappers...
7  */
8  template<typename DataT>
9  class PayloadRef {
10  public:
11 
14 
15  // dereference (does not re-load)
16  const DataT & operator*() const {
17  return *m_Data;
18  }
19 
20  void clear() {
21  m_Data.reset();
22  }
23 
24 
25  bool load( DbSession& dbSess, std::string const & itoken) {
26  clear();
27  bool ok = false;
28 
29  boost::shared_ptr<DataT> tmp = dbSess.getTypedObject<DataT>( itoken );
30  if (tmp.get()) {
31  m_Data = tmp;
32  ok = true;
33  }
34  return ok;
35  }
36 
37 
38  private:
39  boost::shared_ptr<DataT> m_Data;
40  };
41 
42 }
43 #endif // CondCore_PayloadProxy_h
bool load(DbSession &dbSess, std::string const &itoken)
Definition: PayloadRef.h:25
boost::shared_ptr< DataT > m_Data
Definition: PayloadRef.h:39
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
boost::shared_ptr< T > getTypedObject(const std::string &objectId)
Definition: DbSession.h:98
const DataT & operator*() const
Definition: PayloadRef.h:16