ATLAS Offline Software
Loading...
Searching...
No Matches
dqi::DatabaseConfig Class Reference

#include <DatabaseConfig.h>

Collaboration diagram for dqi::DatabaseConfig:

Public Member Functions

 DatabaseConfig (std::string connectionString, long runNumber)
nlohmann::json GetPayload (const std::string &tag)
bool IsConnected () const
void Disconnect ()

Private Member Functions

long GetRunNumber () const
nlohmann::json LoadPayload (const std::string &tag)
void Connect ()

Private Attributes

const std::string m_connectionString
const long m_runNumber {}
bool m_dbConnected {}
bool m_folderConnected {}
std::unordered_map< std::string, nlohmann::json > m_jsonData
cool::IFolderPtr m_folder
cool::IDatabasePtr m_database

Detailed Description

Definition at line 15 of file DatabaseConfig.h.

Constructor & Destructor Documentation

◆ DatabaseConfig()

dqi::DatabaseConfig::DatabaseConfig ( std::string connectionString,
long runNumber )

Definition at line 20 of file DatabaseConfig.cxx.

22 : m_connectionString(std::move(connectionString))
23 , m_runNumber((runNumber << 32) + 1)
24 , m_dbConnected(false)
25 , m_folderConnected(false)
26{
27}
const std::string m_connectionString

Member Function Documentation

◆ Connect()

void dqi::DatabaseConfig::Connect ( )
private

Definition at line 41 of file DatabaseConfig.cxx.

43{
44 try {
45 cool::IDatabaseSvc& dbSvc = cool::DatabaseSvcFactory::databaseService();
46 m_database = dbSvc.openDatabase(m_connectionString, true);
47
48 } catch (std::exception& e) {
49 std::cerr << "Unable to open database -> " << e.what() << '\n';
50 return;
51 }
52 m_dbConnected = true;
53 try {
54 m_folder= m_database->getFolder("/GLOBAL/DQM/REFERENCES");
55
56 } catch (std::exception& e) {
57 std::cerr << "Unable loading folder for this tag/run-> " << e.what() << '\n';
58 return;
59 }
60 m_folderConnected = true;
61}
cool::IFolderPtr m_folder
cool::IDatabasePtr m_database

◆ Disconnect()

void dqi::DatabaseConfig::Disconnect ( )

Definition at line 30 of file DatabaseConfig.cxx.

32{
33 if(m_dbConnected) {
34 m_database->closeDatabase();
35 m_dbConnected = false;
36 m_folderConnected = false;
37 }
38}

◆ GetPayload()

nlohmann::json dqi::DatabaseConfig::GetPayload ( const std::string & tag)

Definition at line 64 of file DatabaseConfig.cxx.

66{
68 Connect();
69 }
70 if(m_jsonData.find(tag) == m_jsonData.end()) {
71 return LoadPayload(tag);
72 }
73 return m_jsonData.at(tag);
74}
std::unordered_map< std::string, nlohmann::json > m_jsonData
nlohmann::json LoadPayload(const std::string &tag)

◆ GetRunNumber()

long dqi::DatabaseConfig::GetRunNumber ( ) const
private

Definition at line 104 of file DatabaseConfig.cxx.

106{
107 return m_runNumber;
108}

◆ IsConnected()

bool dqi::DatabaseConfig::IsConnected ( ) const

Definition at line 97 of file DatabaseConfig.cxx.

99{
101}

◆ LoadPayload()

nlohmann::json dqi::DatabaseConfig::LoadPayload ( const std::string & tag)
private

Definition at line 77 of file DatabaseConfig.cxx.

79{
80 nlohmann::json jsonData;
82 try {
83 cool::IObjectPtr object = m_folder->findObject(GetRunNumber(), 1, tag);
84
85 std::string data = object->payloadValue("jsonData");
86 jsonData = nlohmann::json::parse(data);
87 m_jsonData[tag] = jsonData;
88
89 } catch (std::exception& e) {
90 std::cerr << "Error: Failed loading payload for this tag/run-> " << e.what() << '\n';
91 }
92 }
93 return jsonData;
94}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11

Member Data Documentation

◆ m_connectionString

const std::string dqi::DatabaseConfig::m_connectionString
private

Definition at line 25 of file DatabaseConfig.h.

◆ m_database

cool::IDatabasePtr dqi::DatabaseConfig::m_database
private

Definition at line 33 of file DatabaseConfig.h.

◆ m_dbConnected

bool dqi::DatabaseConfig::m_dbConnected {}
private

Definition at line 28 of file DatabaseConfig.h.

28{};

◆ m_folder

cool::IFolderPtr dqi::DatabaseConfig::m_folder
private

Definition at line 32 of file DatabaseConfig.h.

◆ m_folderConnected

bool dqi::DatabaseConfig::m_folderConnected {}
private

Definition at line 29 of file DatabaseConfig.h.

29{};

◆ m_jsonData

std::unordered_map<std::string, nlohmann::json> dqi::DatabaseConfig::m_jsonData
private

Definition at line 31 of file DatabaseConfig.h.

◆ m_runNumber

const long dqi::DatabaseConfig::m_runNumber {}
private

Definition at line 26 of file DatabaseConfig.h.

26{};

The documentation for this class was generated from the following files: