ATLAS Offline Software
Loading...
Searching...
No Matches
IStorageSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef POOL_ISTORAGESVC_H
6#define POOL_ISTORAGESVC_H
7
8// Framework include files
10
11// STL include files
12#include <string>
13
14// Forward declarations
15class Guid;
16class Token;
17class StatusCode;
18
19/*
20 * pool namespace declaration
21 */
22namespace pool {
23
24 // Forward declarations
25 class FileDescriptor;
26 class DbOption;
27
28 typedef class Session *SessionH;
29 typedef class DatabaseConnection *ConnectionH;
30 typedef const class Shape *ShapeH;
31
57 protected:
59 virtual ~IStorageSvc() { }
60
61 public:
63 static const Guid& interfaceID();
64
66 static const char* category() { return "pool_IStorageSvc"; }
67
69 virtual StatusCode queryInterface(const Guid& riid, void** ppvUnkn) = 0;
70
72 virtual unsigned int addRef() = 0;
73
75 virtual unsigned int release() = 0;
76
78
83 virtual std::string getContName(FileDescriptor& refDB,
84 Token& pToken) = 0;
85
87
98 virtual StatusCode allocate( FileDescriptor& refDB,
99 const std::string& refCont,
100 int technology,
101 const void* object,
102 ShapeH shapeH,
103 Token*& refpTok) = 0;
104
105
107
115 virtual StatusCode read( const FileDescriptor& refDB,
116 const Token& pToken,
117 ShapeH shapeH,
118 void** object) = 0;
119
121
133 virtual StatusCode getShape( FileDescriptor& refDB,
134 const Guid& objType,
135 ShapeH& shapeH) = 0;
136
138
143 virtual ShapeH createShape( const Guid& shapeID ) = 0;
144
146
163 virtual StatusCode startSession(int mode,
164 int tech,
165 SessionH& session) = 0;
166
168
180 virtual StatusCode endSession( const SessionH session) = 0;
181
183
194 virtual StatusCode existsConnection(const SessionH sessionH,
195 int mode,
196 const FileDescriptor& refDB) = 0;
197
199
214 virtual StatusCode connect( const SessionH sessionH,
215 int mode,
216 FileDescriptor& refDB) = 0;
217
219
232 virtual StatusCode disconnect( FileDescriptor& refDB) = 0;
233
235
241 virtual StatusCode openMode( FileDescriptor& refDB,
242 int& mode ) = 0;
243
245
260 virtual StatusCode endTransaction( ConnectionH conn, Transaction::Action typ) = 0;
261
263
274 virtual StatusCode getDomainOption(const SessionH sessionH, DbOption& opt) = 0;
275
277
288 virtual StatusCode setDomainOption(const SessionH sessionH, const DbOption& opt) = 0;
289
290 };
291
292 // Factory function
293 IStorageSvc* createStorageSvc(const std::string& componentName);
294
295} // End namespace pool
296#endif // POOL_ISTORAGESVC_H
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition Guid.h:25
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21
Definition of the DbConnection class.
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:37
The IStorageSvc interface is able to handle user request for.
Definition IStorageSvc.h:56
virtual StatusCode queryInterface(const Guid &riid, void **ppvUnkn)=0
IInterface implementation: Query interfaces of Interface.
virtual StatusCode read(const FileDescriptor &refDB, const Token &pToken, ShapeH shapeH, void **object)=0
Read a persistent object from the medium.
virtual StatusCode getShape(FileDescriptor &refDB, const Guid &objType, ShapeH &shapeH)=0
Retrieve persistent shape from Storage manager.
virtual std::string getContName(FileDescriptor &refDB, Token &pToken)=0
Get container name for object.
virtual ShapeH createShape(const Guid &shapeID)=0
Create a Shape representation based on a ShapeID.
virtual ~IStorageSvc()
Destructor (called only by sub-classes)
Definition IStorageSvc.h:59
virtual StatusCode endSession(const SessionH session)=0
End the Database session.
virtual StatusCode existsConnection(const SessionH sessionH, int mode, const FileDescriptor &refDB)=0
Check the existence of a logical Database unit.
static const Guid & interfaceID()
Retrieve interface ID.
virtual StatusCode connect(const SessionH sessionH, int mode, FileDescriptor &refDB)=0
Connect to a logical Database unit.
virtual StatusCode disconnect(FileDescriptor &refDB)=0
Disconnect from a logical Database unit.
virtual unsigned int addRef()=0
IInterface implementation: Reference Interface instance.
static const char * category()
Retrieve category name.
Definition IStorageSvc.h:66
virtual StatusCode getDomainOption(const SessionH sessionH, DbOption &opt)=0
Access options for a given database domain.
virtual StatusCode openMode(FileDescriptor &refDB, int &mode)=0
Query the access mode of a Database unit.
virtual StatusCode allocate(FileDescriptor &refDB, const std::string &refCont, int technology, const void *object, ShapeH shapeH, Token *&refpTok)=0
Register object for write.
virtual StatusCode endTransaction(ConnectionH conn, Transaction::Action typ)=0
End/Finish an existing Transaction sequence.
virtual StatusCode setDomainOption(const SessionH sessionH, const DbOption &opt)=0
Set options for a given database domain.
virtual StatusCode startSession(int mode, int tech, SessionH &session)=0
Start a new Database Session.
virtual unsigned int release()=0
IInterface implementation: Release Interface instance.
Description:
Definition Shape.h:35
pool namespace
Definition libname.h:15
class Session * SessionH
Definition IStorageSvc.h:28
IStorageSvc * createStorageSvc(const std::string &componentName)
class DatabaseConnection * ConnectionH
const class Shape * ShapeH