ATLAS Offline Software
Loading...
Searching...
No Matches
CoraCoolDatabaseSvc.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 CORACOOL_CORACOOLDATABASESVC_H
6#define CORACOOL_CORACOOLDATABASESVC_H
7// CoraCoolDatabaseSvc.h
8// a service to create CoraCoolDatabase objects given a SEAL context (where
9// CORAL libraries are already loaded) the corresponding COOL IDatabaseSvc
10// (plays an analogous role to COOL IDatabaseSvc)
11// This can be created directly, or via CoraCoolDatabaseSvcFactory singleton
12// which sets up CoraCool and COOL standalone in one call
13//
14// Richard Hawkings, started 27/10/06
15
16#include<string>
17#include "CoolKernel/IDatabase.h"
18#include "RelationalAccess/IConnectionService.h"
20
21namespace cool {
22 class IDatabaseSvc;
23}
24
26 public:
27 // create a CoraCoolDatabaseSvc given CORAL connection svc and COOL service
28 CoraCoolDatabaseSvc(coral::IConnectionService& coralsvc,
29 cool::IDatabaseSvc& cooldb);
30
31 // return a reference to the associated COOL database service
32 cool::IDatabaseSvc& coolIDatabaseSvc();
33
34 // open CoraCool database, given external COOL reference
35 CoraCoolDatabasePtr openDatabase(const std::string& dbconn,
36 cool::IDatabasePtr cooldb, bool readonly=false);
37 // open CoraCool database, without external COOL reference
38 CoraCoolDatabasePtr openDatabase(const std::string& dbconn, bool readonly=false);
39
40 private:
41 coral::IConnectionService& m_coralsvc;
42 cool::IDatabaseSvc& m_cooldb;
43};
44
45#endif // CORACOOL_CORACOOLDATABASESVC_H
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)