ATLAS Offline Software
Loading...
Searching...
No Matches
IRDBAccessSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
13
14#ifndef RDBACCESSSVC_IRDBACCESSSVC_H
15#define RDBACCESSSVC_IRDBACCESSSVC_H
16
17#include "GaudiKernel/IInterface.h"
18
19
20#include "CoralBase/AttributeList.h"
21#include "CoralBase/Attribute.h"
22
23#include <string>
24#include <string_view>
25#include <memory>
26
27class IRDBRecordset;
28class IRDBQuery;
29
30typedef std::shared_ptr<IRDBRecordset> IRDBRecordset_ptr;
31
32typedef coral::AttributeList RDBTagDetails;
33
43
44class IRDBAccessSvc : virtual public IInterface
45{
46 // Special friends who need to call connect()/disconnect() methods
47 friend class GeoModelSvc;
48 friend class SourceCompAlg;
49 friend class TrigRDBManager;
50
51 public:
52
55
62 virtual IRDBRecordset_ptr getRecordsetPtr(std::string_view node,
63 std::string_view tag,
64 std::string_view tag2node="",
65 std::string_view connName = "ATLASDD") = 0;
66
73 virtual std::string getChildTag(const std::string& childNode,
74 const std::string& parentTag,
75 const std::string& parentNode,
76 const std::string& connName = "ATLASDD") = 0;
77
78
79 //
80 // ------------------------ WARNING! ----------------------------
81 // --- Following method should be used for special cases only ---
82 // --------------------------------------------------------------
83 //
84 // 1. After calling this function call IRDBQuery::execute() in order
85 // to fetch data from database
86 // 2. Navigate the cursor, get the data and store it into custom
87 // structures.
88 // * The Cursor is NOT BIDIRECTIONAL
89 //
90
91 virtual std::unique_ptr<IRDBQuery> getQuery(const std::string& node,
92 const std::string& tag,
93 const std::string& tag2node="",
94 const std::string& connName = "ATLASDD") = 0;
95
100 virtual void getTagDetails(RDBTagDetails& tagDetails,
101 const std::string& tag,
102 const std::string& connName = "ATLASDD") = 0;
103
104 protected:
109 virtual bool connect(std::string_view connName = "ATLASDD") = 0;
110
114 virtual bool disconnect(std::string_view connName = "ATLASDD") = 0;
115
118 virtual bool shutdown(std::string_view connName = "ATLASDD") = 0;
119
120};
121
122#endif
123
124
125
coral::AttributeList RDBTagDetails
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
virtual bool connect(std::string_view connName="ATLASDD")=0
Connect to the relational DB.
friend class GeoModelSvc
virtual std::string getChildTag(const std::string &childNode, const std::string &parentTag, const std::string &parentNode, const std::string &connName="ATLASDD")=0
Gets the tag name for the node by giving its parent node tag.
virtual bool shutdown(std::string_view connName="ATLASDD")=0
Closes the connection regardless of the counter value.
virtual void getTagDetails(RDBTagDetails &tagDetails, const std::string &tag, const std::string &connName="ATLASDD")=0
Returns AttributeList with tag details Attributes in the list: Locked (bool), Supported (bool).
friend class SourceCompAlg
virtual IRDBRecordset_ptr getRecordsetPtr(std::string_view node, std::string_view tag, std::string_view tag2node="", std::string_view connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
virtual bool disconnect(std::string_view connName="ATLASDD")=0
If the counnection counter==1 closes the connection.
DeclareInterfaceID(IRDBAccessSvc, 1, 0)
Declare interface ID.
virtual std::unique_ptr< IRDBQuery > getQuery(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
friend class TrigRDBManager
IRDBRecordset is an abstract interface to the RDB Recordsets, which represent a snapshot of HVS-tagge...
Definition node.h:24