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  static constexpr const char* const PRODUCTION_DB = "oracle://cms_orcon_adg/CMS_CONDITIONS";
26 
27  public:
28  // default constructor
29  PayloadReader();
30 
31  //
32  PayloadReader(const PayloadReader& rhs);
33 
34  //
35  virtual ~PayloadReader();
36 
37  //
39 
40  //
42 
43  //
44  void open(const std::string& connectionString);
45 
46  //
47  void open();
48 
49  //
50  void close();
51 
52  //
53  template <typename T>
54  std::shared_ptr<T> fetch(const cond::Hash& payloadHash);
55 
56  private:
57  std::shared_ptr<ConnectionPool> m_connection;
59  };
60 
61  template <typename T>
62  inline std::shared_ptr<T> PayloadReader::fetch(const cond::Hash& payloadHash) {
63  std::shared_ptr<T> ret;
64  if (m_session.connectionString().empty())
66  m_session.transaction().start(true);
67  ret = m_session.fetchPayload<T>(payloadHash);
69  return ret;
70  }
71 
72  } // namespace persistency
73 } // namespace cond
74 #endif // CondCore_CondDB_PayloadReader_h
ret
prodAgent to be discontinued
void start(bool readOnly=true)
Definition: Session.cc:18
std::unique_ptr< T > fetchPayload(const cond::Hash &payloadHash)
Definition: Session.h:213
Transaction & transaction()
Definition: Session.cc:52
std::string Hash
Definition: Types.h:43
static constexpr const char *const PRODUCTION_DB
Definition: PayloadReader.h:25
std::string connectionString()
Definition: Session.cc:216
std::shared_ptr< T > fetch(const cond::Hash &payloadHash)
Definition: PayloadReader.h:62
long double T
std::shared_ptr< ConnectionPool > m_connection
Definition: PayloadReader.h:57
PayloadReader & operator=(const PayloadReader &rhs)