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
4 
5 namespace cond {
6 
7  /* manages various types of wrappers...
8  */
9  template<typename DataT>
10  class PayloadRef {
11  public:
12 
15 
16  // dereference (does not re-load)
17  const DataT & operator*() const {
18  return *m_Data;
19  }
20 
21  void clear() {
22  m_Data.reset();
23  }
24 
25 
26  bool load( DbSession& dbSess, std::string const & itoken) {
27  clear();
28  bool ok = false;
29  // is it ok to open a transaction here? or could be at higher level?
30  boost::shared_ptr<DataT> tmp = dbSess.getTypedObject<DataT>( itoken );
31  if (tmp.get()) {
32  m_Data = tmp;
33  ok = true;
34  }
35  return ok;
36  }
37 
38 
39  private:
40  boost::shared_ptr<DataT> m_Data;
41  };
42 
43 }
44 #endif // CondCore_PayloadProxy_h
bool load(DbSession &dbSess, std::string const &itoken)
Definition: PayloadRef.h:26
boost::shared_ptr< DataT > m_Data
Definition: PayloadRef.h:40
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
boost::shared_ptr< T > getTypedObject(const std::string &objectId)
Definition: DbSession.h:125
const DataT & operator*() const
Definition: PayloadRef.h:17