ATLAS Offline Software
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
10 #include "StorageSvc/DbSession.h"
11 #include "StorageSvc/DbDomain.h"
12 #include "StorageSvc/IStorageSvc.h"
13 
14 /*
15  * POOL namespace declaration
16  */
17 namespace pool {
18 
19  // Forward declarations
20  class DbStorageExplorer;
21  class DbOption;
22 
38  class DbStorageSvc : virtual public IStorageSvc
39  {
40  typedef std::vector<const Token*> TokenVec;
41  private:
43  std::string m_name;
45  unsigned int m_refCount;
56  public:
57 
60 
62  explicit DbStorageSvc(const std::string& name);
63 
65  virtual ~DbStorageSvc();
66 
67  DbStorageSvc (const DbStorageSvc&) = delete;
69 
71  static const char* catalogLabel() { return "pool_DbStorageSvc"; }
72 
74  DbSession& sessionHdl() { return m_sesH; }
76  DbDomain& domainHdl() { return m_domH; }
77 
79  virtual DbStatus queryInterface(const Guid& riid, void** ppvUnknown);
80 
82  virtual unsigned int addRef();
83 
85  virtual unsigned int release();
86 
89  virtual DbStatus initialize();
91 
93  virtual DbStatus finalize();
94 
96  virtual const std::string& name() const { return m_name; }
97 
100 
113  const std::string& refCont,
114  int technology,
115  const void* object,
116  ShapeH shapeH,
117  Token*& refpTok);
118 
120 
129  virtual DbStatus update( FileDescriptor& refDB,
130  const void* object,
131  ShapeH shapeH,
132  Token& refToken);
133 
135 
142  virtual DbStatus destroy( FileDescriptor& refDB,
143  Token& refToken);
144 
145 
147 
155  virtual DbStatus read( const FileDescriptor& refDB,
156  const Token& persToken,
157  ShapeH shapeH,
158  void** object);
159 
161 
166  virtual std::string getContName(FileDescriptor& refDB,
167  Token& persToken);
168 
170 
183  const Guid& objType,
184  ShapeH& shapeH);
185 
187 
198  virtual DbStatus createShape( const FileDescriptor& refDB,
199  const std::string& cntName,
200  const Guid& shapeID,
201  ShapeH& shapeH);
202 
204 
222  int tech,
223  SessionH& session);
224 
226 
238  virtual DbStatus endSession( const SessionH session);
239 
241 
252  virtual DbStatus existsConnection(const SessionH sessionH,
253  int mode,
254  const FileDescriptor& refDB);
255 
257 
272  virtual DbStatus connect( const SessionH sessionH,
273  int mode,
274  FileDescriptor& refDB);
275 
277 
288  int mode );
289 
291 
305 
307 
315  int& mode );
316 
317 
319 
335  Transaction::Action typ);
336 
338 
349  virtual DbStatus getDomainOption(const SessionH sessionH,
350  DbOption& opt);
351 
353 
364  virtual DbStatus setDomainOption(const SessionH sessionH,
365  const DbOption& opt);
366  };
367 } // End namespace pool
368 #endif // POOL_DBSTORAGESVC_H
pool::ConnectionH
class DatabaseConnection * ConnectionH
Definition: FileDescriptor.h:28
checkCorrelInHIST.conn
conn
Definition: checkCorrelInHIST.py:25
pool::DbStorageSvc::allocate
virtual DbStatus allocate(FileDescriptor &refDB, const std::string &refCont, int technology, const void *object, ShapeH shapeH, Token *&refpTok)
Register object for write.
pool::DbStatus
Definition: DbStatus.h:67
make_coralServer_rep.opt
opt
Definition: make_coralServer_rep.py:19
pool::DbStorageSvc::TokenVec
std::vector< const Token * > TokenVec
Definition: DbStorageSvc.h:40
pool::DbStorageSvc::~DbStorageSvc
virtual ~DbStorageSvc()
Standard destructor.
pool::DbStorageSvc::operator=
DbStorageSvc & operator=(const DbStorageSvc &)=delete
pool::DbStorageSvc::name
virtual const std::string & name() const
IService implementation: Retrieve name of the service
Definition: DbStorageSvc.h:96
pool::DbStorageSvc::connect
virtual DbStatus connect(const SessionH sessionH, int mode, FileDescriptor &refDB)
Connect to a logical Database unit.
pool::DbStorageSvc::m_refCount
unsigned int m_refCount
Reference counter
Definition: DbStorageSvc.h:45
pool::DbStorageSvc::existsConnection
virtual DbStatus existsConnection(const SessionH sessionH, int mode, const FileDescriptor &refDB)
Check the existence of a logical Database unit.
pool::DbStorageSvc::destroy
virtual DbStatus destroy(FileDescriptor &refDB, Token &refToken)
Destroy an existing persistent object.
pool
pool namespace
Definition: libname.h:15
pool::DbStorageSvc::finalize
virtual DbStatus finalize()
IService implementation override: Finalize Service
pool::DbStorageSvc::disconnect
virtual DbStatus disconnect(FileDescriptor &refDB)
Disconnect from a logical Database unit.
pool::DbSession
Db objects: class DbSession.
Definition: DbSession.h:43
pool::DbStorageSvc::read
virtual DbStatus read(const FileDescriptor &refDB, const Token &persToken, ShapeH shapeH, void **object)
Read a persistent object from the medium.
pool::SessionH
class Session * SessionH
Definition: IStorageExplorer.h:35
pool::FileDescriptor
Definition: FileDescriptor.h:41
pool::DbStorageSvc::m_domH
DbDomain m_domH
Database domain handle.
Definition: DbStorageSvc.h:49
DbSession.h
pool::DbStorageSvc::getContName
virtual std::string getContName(FileDescriptor &refDB, Token &persToken)
Get container name for object.
DbDomain.h
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
pool::ShapeH
const class Shape * ShapeH
Definition: DbContainerObj.h:26
pool::DbStorageSvc::domainHdl
DbDomain & domainHdl()
Database domain handle.
Definition: DbStorageSvc.h:76
pool::DbType
Definition: DbType.h:31
pool::DbStorageSvc::openMode
virtual DbStatus openMode(FileDescriptor &refDB, int &mode)
Query the access mode of a Database unit.
pool::DbOption
Definition: DbOption.h:36
pool::DbStorageSvc::DbStorageSvc
DbStorageSvc(const DbStorageSvc &)=delete
pool::DbStorageSvc::m_ageLimit
int m_ageLimit
Property: AgeLimit indicating the maximal allowed age of files.
Definition: DbStorageSvc.h:51
pool::DbStorageSvc::getShape
virtual DbStatus getShape(FileDescriptor &refDB, const Guid &objType, ShapeH &shapeH)
Retrieve persistent shape from Storage manager.
pool::DbStorageSvc::update
virtual DbStatus update(FileDescriptor &refDB, const void *object, ShapeH shapeH, Token &refToken)
In place update of an existing object.
pool::DbStorageSvc::createShape
virtual DbStatus createShape(const FileDescriptor &refDB, const std::string &cntName, const Guid &shapeID, ShapeH &shapeH)
Create a persistent shape a given Database container location.
Preparation.mode
mode
Definition: Preparation.py:107
pool::DbStorageSvc::sessionHdl
DbSession & sessionHdl()
Database session handle.
Definition: DbStorageSvc.h:74
pool::DbStorageSvc::getDomainOption
virtual DbStatus getDomainOption(const SessionH sessionH, DbOption &opt)
Access options for a given database domain.
pool::DbStorageSvc::addRef
virtual unsigned int addRef()
IInterface implementation: Reference Interface instance
pool::IStorageSvc
Definition: IStorageSvc.h:56
pool::DbStorageSvc::reconnect
virtual DbStatus reconnect(FileDescriptor &refDB, int mode)
Reconnect to a logical Database unit with different access mode.
pool::DbStorageSvc::m_explorer
DbStorageExplorer * m_explorer
Reference to storage explorer object.
Definition: DbStorageSvc.h:55
pool::Transaction::Action
Action
Definition: Transaction.h:34
IStorageSvc.h
pool::DbStorageSvc::endSession
virtual DbStatus endSession(const SessionH session)
End the Database session.
pool::DbStorageSvc::startSession
virtual DbStatus startSession(int mode, int tech, SessionH &session)
Start a new Database Session.
pool::DbDomain
Definition: DbDomain.h:47
pool::DbStorageSvc::setDomainOption
virtual DbStatus setDomainOption(const SessionH sessionH, const DbOption &opt)
Set options for a given database domain.
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition: Guid.h:20
pool::DbStorageExplorer
Definition: DbStorageExplorer.h:36
pool::DbStorageSvc::DbStorageSvc
DbStorageSvc(const std::string &name)
Initializing Constructor: Constructs an object of type DbStorageSvc.
pool::DbStorageSvc::queryInterface
virtual DbStatus queryInterface(const Guid &riid, void **ppvUnknown)
IInterface implementation: Query interfaces of Interface.
pool::DbStorageSvc::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: DbStorageSvc.h:71
pool::DbStorageSvc::m_name
std::string m_name
Service Name
Definition: DbStorageSvc.h:43
pool::DbStorageSvc::endTransaction
virtual DbStatus endTransaction(ConnectionH conn, Transaction::Action typ)
End/Finish an existing Transaction sequence.
pool::DbStorageSvc::release
virtual unsigned int release()
IInterface implementation: Release Interface instance
pool::DbStorageSvc::m_type
DbType m_type
Technology type.
Definition: DbStorageSvc.h:53
pool::DbStorageSvc::m_sesH
DbSession m_sesH
Database session handle.
Definition: DbStorageSvc.h:47
pool::DbStorageSvc
Definition: DbStorageSvc.h:39
pool::DbStorageSvc::initialize
virtual DbStatus initialize()
IService implementation override: Initilize Service.
pool::DbStorageSvc::DbStorageSvc
DbStorageSvc()
Standard Constructor: Constructs an object of type DbStorageSvc.