|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "CoralBase/Attribute.h"
8 #include "CoralBase/AttributeList.h"
9 #include "CoralBase/AttributeSpecification.h"
10 #include "CoralKernel/Context.h"
11 #include "GaudiKernel/MsgStream.h"
13 #include "RelationalAccess/IAuthenticationCredentials.h"
14 #include "RelationalAccess/IAuthenticationService.h"
15 #include "RelationalAccess/ICursor.h"
16 #include "RelationalAccess/IQuery.h"
17 #include "RelationalAccess/IRelationalDomain.h"
18 #include "RelationalAccess/IRelationalService.h"
19 #include "RelationalAccess/ISchema.h"
20 #include "RelationalAccess/ITable.h"
21 #include "RelationalAccess/ITransaction.h"
22 #include "RelationalAccess/SchemaException.h"
33 query->setRowCacheSize(1);
34 query->addToTableList(
"MDT_HEAD");
35 query->addToOutputList(
"max(HEAD_ID)",
"max_head_id");
39 log << MSG::WARNING <<
"Query for head_id failed!" <<
endmsg;
43 return static_cast<int>(al[
"max_head_id"].data<
double>());
44 }
catch (coral::SchemaException&
e) {
46 log << MSG::WARNING <<
"Schema exception : " <<
e.what() <<
endmsg;
55 log << MSG::WARNING <<
"CalibHeadOperations::GetHeadInfo: Cannot get latest head id" <<
endmsg;
61 query->addToTableList(
"MDT_HEAD");
62 query->addToOutputList(
"LOWRUN");
63 query->addToOutputList(
"UPRUN");
64 query->addToOutputList(
"LOWTIME");
65 query->addToOutputList(
"UPTIME");
68 conditionData.extend<
int>(
"hid");
69 conditionData[
"hid"].data<
int>() =
head_id;
74 log << MSG::WARNING <<
"No information about head_id=" <<
head_id <<
" found!" <<
endmsg;
78 lowrun = al[
"LOWRUN"].data<
int>();
79 uprun = al[
"UPRUN"].data<
int>();
80 lowtime = al[
"LOWTIME"].data<
int>();
81 uptime = al[
"UPTIME"].data<
int>();
83 }
catch (coral::SchemaException&
e) {
85 log << MSG::WARNING <<
"Schema exception : " <<
e.what() <<
endmsg;
91 const std::string& writer_user,
const std::string& writer_password) {
93 if (
head_id < 0)
return nullptr;
97 query->setRowCacheSize(1);
98 query->addToTableList(
"MDT_HEAD");
99 query->addToTableList(
"MDT_DATA_SCHEMA");
100 query->addToOutputList(
"MDT_DATA_SCHEMA.SCHEMA_NAME",
"SCHEMA");
101 query->addToOutputList(
"MDT_DATA_SCHEMA.WRITER_ACCOUNT",
"WRITER_ACCOUNT");
102 query->addToOutputList(
"MDT_DATA_SCHEMA.ACTIVE",
"ACTIVE");
103 query->addToOutputList(
"MDT_DATA_SCHEMA.ARCHIVED",
"ARCHIVED");
104 query->addToOutputList(
"MDT_DATA_SCHEMA.ARCHIVE_CONNECTION_STRING",
"ARCHIVE_CONNECTION_STRING");
105 std::string
condition =
"MDT_HEAD.DATA_SCHEMA=MDT_DATA_SCHEMA.SCHEMA_NAME and MDT_HEAD.HEAD_ID=:hid";
107 conditionData.extend<
int>(
"hid");
108 conditionData[
"hid"].data<
int>() =
head_id;
113 log << MSG::WARNING <<
"No information about head_id=" <<
head_id <<
" found!" <<
endmsg;
117 if (
write && !al[
"ACTIVE"].data<bool>()) {
119 log << MSG::WARNING <<
"Can only write to the active schema" <<
endmsg;
122 if (al[
"ARCHIVED"].data<bool>()) {
123 return new CalibDbConnection(al[
"ARCHIVE_CONNECTION_STRING"].data<std::string>(), al[
"SCHEMA"].data<std::string>());
133 ret->
SetTargetUser(al[
"WRITER_ACCOUNT"].data<std::string>());
134 ret->
SetLogin(writer_user, writer_password);
136 }
catch (coral::SchemaException&
e) {
138 log << MSG::WARNING <<
"Schema exception : " <<
e.what() <<
endmsg;
singleton-like access to IMessageSvc via open function and helper
bool GetHeadInfo(int &head_id, int &lowrun, int &uprun, int &lowtime, int &uptime)
IMessageSvc * getMessageSvc(bool quiet=false)
void SetTargetUser(const std::string &target_user)
void SetLogin(const std::string &username, const std::string &password)
CalibDbConnection * GetDataConnection(int head_id=-1, bool write=false, const std::string &writer_connection="", const std::string &writer_user="", const std::string &writer_password="")
coral::IQuery * GetQuery()
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
CalibDbConnection * m_meta_connection
const std::string & GetConnectionString() const
CalibHeadOperations(CalibDbConnection &db_conn)
void GetLogin(std::string &username, std::string &password) const
virtual ~CalibHeadOperations()