ATLAS Offline Software
SessionMgr.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TrigConf_SessionMgr
6 #define TrigConf_SessionMgr
7 
8 #include <string>
9 #include <iostream>
10 #include <stdexcept>
11 #include <memory>
12 #include "RelationalAccess/IRelationalService.h"
13 #include "RelationalAccess/IRelationalDomain.h"
15 
16 namespace coral {
17  class ISessionProxy;
18 }
19 
20 
21 namespace TrigConf {
22 
23  class ReplicaSorter;
24 
30  {
31  public:
32 
34  SessionMgr();
35 
37  virtual ~SessionMgr() override;
38 
40  void closeSession();
41 
43  coral::ISessionProxy& createSession();
44 
47 
48  // setters
49  void setConnectionString(const std::string & connStr) { m_connectionString = connStr; }
54 
55  void setDbType(const std::string & s);
56  void setDbServer(const std::string & s);
57  void setDbName(const std::string & s);
58  void setDbUser(const std::string & s);
59  void setDbPassword(const std::string & s);
60 
61  // accessors
62  const std::string& connection() const { return m_connectionString; }
63  bool useFrontier() const { return m_useFrontier; }
64  int retrialPeriod() const { return m_retrialPeriod; }
65  int retrialTimeout() const { return m_retrialTimeout; }
66  int connectionTimeout() const { return m_connectionTimeout; }
67  const std::string & dbType() const { return m_dbtype; }
68  const std::string & dbServer() const { return m_dbserver; }
69  const std::string & dbName() const { return m_dbname; }
70  const std::string & dbUser() const { return m_user; }
71  const std::string & dbPassword() const { return m_password; }
72 
73  private:
74 
75  void buildConnectionString();
76 
78  void setCppTypeForSqlType(const std::string& cpp_type,
79  const std::string& sql_type);
80 
81  coral::ISessionProxy * m_sessionproxy { nullptr };
82 
83  std::string m_connectionString { "" };
84  std::string m_dbtype { "" };
85  std::string m_dbserver { "" };
86  std::string m_dbname { "" };
87  std::string m_user { "" };
88  std::string m_password { "" };
89  bool m_useFrontier { false };
90  int m_retrialPeriod {0};
93 
94  ReplicaSorter * m_replicaSorter { nullptr }; // private replica sorter in case of standalone usage of SessionMgr
95 
96  };
97 }
98 
99 #endif
TrigConf::SessionMgr::m_connectionString
std::string m_connectionString
connection string
Definition: SessionMgr.h:83
TrigConf::SessionMgr::m_connectionTimeout
int m_connectionTimeout
Definition: SessionMgr.h:92
TrigConf::SessionMgr::retrialTimeout
int retrialTimeout() const
Definition: SessionMgr.h:65
TrigConf::SessionMgr::m_password
std::string m_password
password
Definition: SessionMgr.h:88
TrigConf::SessionMgr::useFrontier
bool useFrontier() const
Definition: SessionMgr.h:63
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
TrigConf::SessionMgr::setDbServer
void setDbServer(const std::string &s)
Definition: SessionMgr.cxx:117
TrigConf::SessionMgr::m_retrialTimeout
int m_retrialTimeout
Definition: SessionMgr.h:91
TrigConf::SessionMgr::setTypeConversionRules
void setTypeConversionRules()
SQL -> C++ type conversion mapping for Oracle database to match MySQL.
TrigConf::SessionMgr::m_dbname
std::string m_dbname
db name
Definition: SessionMgr.h:86
TrigConf::SessionMgr::m_dbserver
std::string m_dbserver
db server
Definition: SessionMgr.h:85
TrigConf::ReplicaSorter
Definition: Trigger/TrigConfiguration/TrigConfStorage/src/ReplicaSorter.h:14
TrigConf::SessionMgr::m_sessionproxy
coral::ISessionProxy * m_sessionproxy
the coral database session
Definition: SessionMgr.h:81
TrigConf::SessionMgr::connection
const std::string & connection() const
Definition: SessionMgr.h:62
TrigConf::SessionMgr::dbUser
const std::string & dbUser() const
Definition: SessionMgr.h:70
TrigConf::SessionMgr::setDbName
void setDbName(const std::string &s)
Definition: SessionMgr.cxx:123
TrigConf::SessionMgr::setUseFrontier
void setUseFrontier(bool useFrontier)
Definition: SessionMgr.h:50
TrigConf::SessionMgr::setRetrialPeriod
void setRetrialPeriod(int retrialPeriod)
Definition: SessionMgr.h:51
CheckTagAssociation.connStr
connStr
Definition: CheckTagAssociation.py:85
TrigConf::SessionMgr::m_replicaSorter
ReplicaSorter * m_replicaSorter
Definition: SessionMgr.h:94
TrigConf::SessionMgr
Manager of the database session.
Definition: SessionMgr.h:30
TrigConf::SessionMgr::SessionMgr
SessionMgr()
constructor
Definition: SessionMgr.cxx:37
TrigConf::SessionMgr::dbPassword
const std::string & dbPassword() const
Definition: SessionMgr.h:71
TrigConf::SessionMgr::m_useFrontier
bool m_useFrontier
uses frontier instead of oracle
Definition: SessionMgr.h:89
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
coral
Definition: ISecondaryEventSelector.h:19
TrigConf::SessionMgr::dbName
const std::string & dbName() const
Definition: SessionMgr.h:69
TrigConf::SessionMgr::m_retrialPeriod
int m_retrialPeriod
Definition: SessionMgr.h:90
TrigConf::SessionMgr::m_user
std::string m_user
user name
Definition: SessionMgr.h:87
TrigConf::SessionMgr::retrialPeriod
int retrialPeriod() const
Definition: SessionMgr.h:64
TrigConf::SessionMgr::~SessionMgr
virtual ~SessionMgr() override
destructor
Definition: SessionMgr.cxx:41
TrigConf::TrigConfMessaging
Class to provide easy access to TrigConf::MsgStream for TrigConf classes.
Definition: TrigConfMessaging.h:28
TrigConf::SessionMgr::createSession
coral::ISessionProxy & createSession()
instantiates the session
Definition: SessionMgr.cxx:84
TrigConf::SessionMgr::setCppTypeForSqlType
void setCppTypeForSqlType(const std::string &cpp_type, const std::string &sql_type)
SQL -> C++ type conversion interface to CORAL.
TrigConf::SessionMgr::m_dbtype
std::string m_dbtype
db type
Definition: SessionMgr.h:84
TrigConf::SessionMgr::setDbPassword
void setDbPassword(const std::string &s)
Definition: SessionMgr.cxx:135
TrigConf::SessionMgr::dbType
const std::string & dbType() const
Definition: SessionMgr.h:67
TrigConf::SessionMgr::setRetrialTimeout
void setRetrialTimeout(int retrialTimeout)
Definition: SessionMgr.h:52
TrigConf::SessionMgr::closeSession
void closeSession()
close open sessions
Definition: SessionMgr.cxx:51
TrigConfMessaging.h
Messaging base class for TrigConf code shared with Lvl1 ( AthMessaging)
TrigConf::SessionMgr::setDbUser
void setDbUser(const std::string &s)
Definition: SessionMgr.cxx:129
TrigConf::SessionMgr::buildConnectionString
void buildConnectionString()
Definition: SessionMgr.cxx:68
TrigConf::SessionMgr::setConnectionTimeout
void setConnectionTimeout(int connectionTimeout)
Definition: SessionMgr.h:53
TrigConf::SessionMgr::connectionTimeout
int connectionTimeout() const
Definition: SessionMgr.h:66
ReplicaSorter
Definition: Database/CoolConvUtilities/src/ReplicaSorter.h:12
TrigConf::SessionMgr::setConnectionString
void setConnectionString(const std::string &connStr)
Definition: SessionMgr.h:49
TrigConf::SessionMgr::setDbType
void setDbType(const std::string &s)
Definition: SessionMgr.cxx:111
TrigConf::SessionMgr::dbServer
const std::string & dbServer() const
Definition: SessionMgr.h:68