CMS 3D CMS Logo

PayloadReader.h
Go to the documentation of this file.
1 #ifndef CondCore_CondDB_PayloadReader_h
2 #define CondCore_CondDB_PayloadReader_h
3 //
4 // Package: CondDB
5 // Class : PayloadReader
6 //
10 //
11 // Author: Giacomo Govi
12 // Created: Jul 2015
13 //
14 
16 
17 #include <memory>
18 
19 namespace cond {
20 
21  namespace persistency {
22 
23  class PayloadReader {
24  public:
25 
26  static constexpr const char* const PRODUCTION_DB = "oracle://cms_orcon_adg/CMS_CONDITIONS";
27 
28  public:
29 
30  // default constructor
31  PayloadReader();
32 
33  //
34  PayloadReader( const PayloadReader& rhs );
35 
36  //
37  virtual ~PayloadReader();
38 
39  //
40  PayloadReader& operator=( const PayloadReader& rhs );
41 
42  //
44 
45  //
46  void open( const std::string& connectionString );
47 
48  //
49  void open();
50 
51  //
52  void close();
53 
54  //
55  template <typename T> std::shared_ptr<T> fetch( const cond::Hash& payloadHash );
56 
57  private:
58 
59  std::shared_ptr<ConnectionPool> m_connection;
61  };
62 
63  template <typename T> inline std::shared_ptr<T> PayloadReader::fetch( const cond::Hash& payloadHash ){
64  std::shared_ptr<T> ret;
66  m_session.transaction().start( true );
67  ret = m_session.fetchPayload<T>( payloadHash );
69  return ret;
70  }
71 
72  }
73 }
74 #endif // CondCore_CondDB_PayloadReader_h
void start(bool readOnly=true)
Definition: Session.cc:22
Transaction & transaction()
Definition: Session.cc:66
#define constexpr
std::string Hash
Definition: Types.h:45
std::string connectionString()
Definition: Session.cc:217
std::shared_ptr< T > fetch(const cond::Hash &payloadHash)
Definition: PayloadReader.h:63
static const char *const PRODUCTION_DB
Definition: PayloadReader.h:26
Definition: plugin.cc:24
long double T
std::shared_ptr< ConnectionPool > m_connection
Definition: PayloadReader.h:59
PayloadReader & operator=(const PayloadReader &rhs)
std::shared_ptr< T > fetchPayload(const cond::Hash &payloadHash)
Definition: Session.h:197