ATLAS Offline Software
Loading...
Searching...
No Matches
CoraCoolDatabaseSvc.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// CoraCoolDatabaseSvc.cxx
6// implementation for CoraCoolDatabaseSvc
7// Richard Hawkings, started 27/10/06
8
12#include "CoolKernel/IDatabaseSvc.h"
13#include "RelationalAccess/IConnectionService.h"
14
15CoraCoolDatabaseSvc::CoraCoolDatabaseSvc(coral::IConnectionService& coralsvc,
16 cool::IDatabaseSvc& cooldb)
17 :
18 m_coralsvc(coralsvc), m_cooldb(cooldb) {}
19
21 return m_cooldb; }
22
24 const std::string& dbconn,cool::IDatabasePtr cooldb, bool readonly) {
26 std::move(cooldb),
27 m_coralsvc,readonly));
28 return dbase;
29}
30
32 const std::string& dbconn,bool readonly) {
33 cool::IDatabasePtr cooldb;
34 try {
35 cooldb=m_cooldb.openDatabase(dbconn,readonly);
36 }
37 catch (cool::Exception& e) {
38 // try to create database - assuming it did not exist before
39 try {
40 if (readonly) throw std::exception();
41 cooldb=m_cooldb.createDatabase(dbconn);
42 }
43 catch (std::exception& e) {
44 throw CoraCoolException("Cannot connect to or create COOL database",
45 "CoraCoolDatabaseSvc::openDatabase");
46 }
47 }
48 CoraCoolDatabasePtr dbase(new CoraCoolDatabase(dbconn,std::move(cooldb),
49 m_coralsvc,readonly));
50 return dbase;
51}
boost::shared_ptr< CoraCoolDatabase > CoraCoolDatabasePtr
cool::IDatabaseSvc & coolIDatabaseSvc()
cool::IDatabaseSvc & m_cooldb
coral::IConnectionService & m_coralsvc
CoraCoolDatabasePtr openDatabase(const std::string &dbconn, cool::IDatabasePtr cooldb, bool readonly=false)
CoraCoolDatabaseSvc(coral::IConnectionService &coralsvc, cool::IDatabaseSvc &cooldb)