ATLAS Offline Software
Loading...
Searching...
No Matches
DbStorageSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5// $Header: /cvs/PF/pool/StorageSvc/src/DbStorageSvc.h,v 1.36 2008/03/04 18:34:59 frankb Exp $
6#ifndef POOL_DBSTORAGESVC_H
7#define POOL_DBSTORAGESVC_H
8
9// Framework include files
11#include "StorageSvc/DbDomain.h"
13#include "POOLCore/DbPrint.h"
14
15/*
16 * POOL namespace declaration
17 */
18namespace pool {
19
20 // Forward declarations
21 class DbOption;
22
38 class DbStorageSvc : virtual public IStorageSvc, virtual public APRMessaging
39 {
40 typedef std::vector<const Token*> TokenVec;
41 private:
43 std::string m_name;
45 unsigned int m_refCount;
54 public:
55
58
60 explicit DbStorageSvc(const std::string& name);
61
63 virtual ~DbStorageSvc();
64
65 DbStorageSvc (const DbStorageSvc&) = delete;
67
69 static const char* catalogLabel() { return "pool_DbStorageSvc"; }
70
74 DbDomain& domainHdl() { return m_domH; }
75
77 virtual DbStatus queryInterface(const Guid& riid, void** ppvUnknown);
78
80 virtual unsigned int addRef();
81
83 virtual unsigned int release();
84
86
89
91 virtual DbStatus finalize();
92
94 virtual const std::string& name() const { return m_name; }
95
97
109 const std::string& refCont,
110 int technology,
111 const void* object,
112 ShapeH shapeH,
113 Token*& refpTok);
114
116
124 virtual DbStatus read( const FileDescriptor& refDB,
125 const Token& persToken,
126 ShapeH shapeH,
127 void** object);
128
130
135 virtual std::string getContName(FileDescriptor& refDB,
136 Token& persToken);
137
139
152 const Guid& objType,
153 ShapeH& shapeH);
154
156
167 virtual DbStatus createShape( const FileDescriptor& refDB,
168 const std::string& cntName,
169 const Guid& shapeID,
170 ShapeH& shapeH);
171
173
190 virtual DbStatus startSession(int mode,
191 int tech,
192 SessionH& session);
193
195
207 virtual DbStatus endSession( const SessionH session);
208
210
221 virtual DbStatus existsConnection(const SessionH sessionH,
222 int mode,
223 const FileDescriptor& refDB);
224
226
241 virtual DbStatus connect( const SessionH sessionH,
242 int mode,
243 FileDescriptor& refDB);
244
246
260
262
269 int& mode );
270
271
273
290
292
303 virtual DbStatus getDomainOption(const SessionH sessionH,
304 DbOption& opt);
305
307
318 virtual DbStatus setDomainOption(const SessionH sessionH,
319 const DbOption& opt);
320 };
321} // End namespace pool
322#endif // POOL_DBSTORAGESVC_H
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21
APRMessaging(const std::string &name)
Description:
Definition DbDomain.h:47
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:36
Db objects: class DbSession.
Definition DbSession.h:43
This class is highly inspired by the error code distribution system as it is used in DEC/VMS or MS/WN...
Definition DbStatus.h:64
virtual DbStatus queryInterface(const Guid &riid, void **ppvUnknown)
IInterface implementation: Query interfaces of Interface.
virtual DbStatus getDomainOption(const SessionH sessionH, DbOption &opt)
Access options for a given database domain.
virtual DbStatus existsConnection(const SessionH sessionH, int mode, const FileDescriptor &refDB)
Check the existence of a logical Database unit.
DbSession & sessionHdl()
Database session handle.
virtual DbStatus openMode(FileDescriptor &refDB, int &mode)
Query the access mode of a Database unit.
virtual DbStatus endSession(const SessionH session)
End the Database session.
virtual DbStatus startSession(int mode, int tech, SessionH &session)
Start a new Database Session.
virtual DbStatus getShape(FileDescriptor &refDB, const Guid &objType, ShapeH &shapeH)
Retrieve persistent shape from Storage manager.
int m_ageLimit
Property: AgeLimit indicating the maximal allowed age of files.
virtual DbStatus setDomainOption(const SessionH sessionH, const DbOption &opt)
Set options for a given database domain.
virtual DbStatus disconnect(FileDescriptor &refDB)
Disconnect from a logical Database unit.
virtual unsigned int release()
IInterface implementation: Release Interface instance.
DbDomain m_domH
Database domain handle.
DbSession m_sesH
Database session handle.
DbStorageSvc & operator=(const DbStorageSvc &)=delete
DbStorageSvc()
Standard Constructor: Constructs an object of type DbStorageSvc.
virtual DbStatus allocate(FileDescriptor &refDB, const std::string &refCont, int technology, const void *object, ShapeH shapeH, Token *&refpTok)
Register object for write.
std::string m_name
Service Name.
virtual DbStatus endTransaction(ConnectionH conn, Transaction::Action typ)
End/Finish an existing Transaction sequence.
DbType m_type
Technology type.
DbDomain & domainHdl()
Database domain handle.
virtual DbStatus finalize()
IService implementation override: Finalize Service.
virtual DbStatus initialize()
IService implementation override: Initilize Service.
virtual ~DbStorageSvc()
Standard destructor.
DbStorageSvc(const DbStorageSvc &)=delete
virtual unsigned int addRef()
IInterface implementation: Reference Interface instance.
DbStorageSvc(const std::string &name)
Initializing Constructor: Constructs an object of type DbStorageSvc.
virtual DbStatus createShape(const FileDescriptor &refDB, const std::string &cntName, const Guid &shapeID, ShapeH &shapeH)
Create a persistent shape a given Database container location.
unsigned int m_refCount
Reference counter.
virtual DbStatus connect(const SessionH sessionH, int mode, FileDescriptor &refDB)
Connect to a logical Database unit.
std::vector< const Token * > TokenVec
virtual std::string getContName(FileDescriptor &refDB, Token &persToken)
Get container name for object.
virtual DbStatus read(const FileDescriptor &refDB, const Token &persToken, ShapeH shapeH, void **object)
Read a persistent object from the medium.
static const char * catalogLabel()
Label of the specific class.
virtual const std::string & name() const
IService implementation: Retrieve name of the service.
The IStorageSvc interface is able to handle user request for.
Definition IStorageSvc.h:58
pool namespace
Definition libname.h:15
class Session * SessionH
Definition IStorageSvc.h:30
class DatabaseConnection * ConnectionH
const class Shape * ShapeH