ATLAS Offline Software
SqliteReadSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 #ifndef RDBACCESSSVC_SQLITEREADSVC_H
13 #define RDBACCESSSVC_SQLITEREADSVC_H
14 
16 #include "SqliteRecordset.h"
17 
19 
20 #include <sqlite3.h>
21 #include <string>
22 #include <map>
23 #include <mutex>
24 
25 class ISvcLocator;
26 
27 template <class TYPE> class SvcFactory;
28 
29 // Map of recordset pointers by table name
30 typedef std::map<std::string, IRDBRecordset_ptr> RecordsetPtrMap;
31 
40 class SqliteReadSvc final : public AthService, virtual public IRDBAccessSvc
41 {
42  public:
44  SqliteReadSvc(const std::string& name, ISvcLocator* svc);
45 
46  StatusCode finalize() override;
47  StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface ) override;
48 
49  friend class SvcFactory<SqliteReadSvc>;
50 
52  static const InterfaceID& interfaceID() { return IID_IRDBAccessSvc; }
53 
58  bool connect(const std::string& connName) override;
59 
62  bool disconnect(const std::string&) override;
63 
66  bool shutdown(const std::string&) override;
67 
71  IRDBRecordset_ptr getRecordsetPtr(const std::string& node
72  , const std::string&
73  , const std::string&
74  , const std::string&) override;
75 
79  std::string getChildTag(const std::string& childNode
80  , const std::string&
81  , const std::string&
82  , const std::string& ) override;
83 
85  std::unique_ptr<IRDBQuery> getQuery(const std::string& node
86  , const std::string&
87  , const std::string&
88  , const std::string& ) override;
89 
91  void getTagDetails(RDBTagDetails& tagDetails
92  , const std::string& tag
93  , const std::string& ) override;
94 
95 private:
97  sqlite3* m_db{nullptr};
100 };
101 
102 #endif
SqliteReadSvc::getChildTag
std::string getChildTag(const std::string &childNode, const std::string &, const std::string &, const std::string &) override
Dummy overrider of the virtual function.
Definition: SqliteReadSvc.cxx:112
SqliteRecordset.h
Declaration of the SqliteRecordset class.
SqliteReadSvc::m_db
sqlite3 * m_db
Definition: SqliteReadSvc.h:97
RecordsetPtrMap
std::map< std::string, IRDBRecordset_ptr > RecordsetPtrMap
Definition: RDBAccessSvc.h:34
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
SvcFactory
Definition: AthCnvSvc.h:28
SqliteReadSvc::queryInterface
StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface) override
Definition: SqliteReadSvc.cxx:32
SqliteReadSvc::getTagDetails
void getTagDetails(RDBTagDetails &tagDetails, const std::string &tag, const std::string &) override
Dummy overrider of the virtual function.
Definition: SqliteReadSvc.cxx:122
SqliteReadSvc::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition: SqliteReadSvc.h:52
SqliteReadSvc::getRecordsetPtr
IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &, const std::string &, const std::string &) override
Provides access to the Recordset object containing HVS-tagged data.
Definition: SqliteReadSvc.cxx:75
SqliteReadSvc::SqliteReadSvc
SqliteReadSvc(const std::string &name, ISvcLocator *svc)
Standard Service Constructor.
Definition: SqliteReadSvc.cxx:19
SqliteReadSvc::disconnect
bool disconnect(const std::string &) override
Dummy overrider of the virtual function.
Definition: SqliteReadSvc.cxx:58
SqliteReadSvc
SqliteReadSvc implementats IRDBAccessSvc interface for reading plain tables in the Geometry SQLite da...
Definition: SqliteReadSvc.h:41
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthService
Definition: AthService.h:32
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
RecordsetPtrMap
std::map< std::string, IRDBRecordset_ptr > RecordsetPtrMap
Definition: SqliteReadSvc.h:27
SqliteReadSvc::m_recordsetMutex
std::mutex m_recordsetMutex
Definition: SqliteReadSvc.h:98
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SqliteReadSvc::m_recordsets
RecordsetPtrMap m_recordsets
Definition: SqliteReadSvc.h:96
SqliteReadSvc::connect
bool connect(const std::string &connName) override
Open the SQLite database This method has no effect if the connection has already been opened.
Definition: SqliteReadSvc.cxx:45
RDBTagDetails
coral::AttributeList RDBTagDetails
Definition: IRDBAccessSvc.h:29
AthService.h
SqliteReadSvc::shutdown
bool shutdown(const std::string &) override
Closes the database connection.
Definition: SqliteReadSvc.cxx:64
SqliteReadSvc::getQuery
std::unique_ptr< IRDBQuery > getQuery(const std::string &node, const std::string &, const std::string &, const std::string &) override
Dummy overrider of the virtual function (for now)
Definition: SqliteReadSvc.cxx:101
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
SqliteReadSvc::finalize
StatusCode finalize() override
Definition: SqliteReadSvc.cxx:24
node
Definition: memory_hooks-stdcmalloc.h:74
SqliteReadSvc::m_sessionMutex
std::mutex m_sessionMutex
Definition: SqliteReadSvc.h:99