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 
128  virtual DbStatus read( const FileDescriptor& refDB,
129  const Token& persToken,
130  ShapeH shapeH,
131  void** object);
132 
134 
139  virtual std::string getContName(FileDescriptor& refDB,
140  Token& persToken);
141 
143 
156  const Guid& objType,
157  ShapeH& shapeH);
158 
160 
171  virtual DbStatus createShape( const FileDescriptor& refDB,
172  const std::string& cntName,
173  const Guid& shapeID,
174  ShapeH& shapeH);
175 
177 
195  int tech,
196  SessionH& session);
197 
199 
211  virtual DbStatus endSession( const SessionH session);
212 
214 
225  virtual DbStatus existsConnection(const SessionH sessionH,
226  int mode,
227  const FileDescriptor& refDB);
228 
230 
245  virtual DbStatus connect( const SessionH sessionH,
246  int mode,
247  FileDescriptor& refDB);
248 
250 
264 
266 
273  int& mode );
274 
275 
277 
293  Transaction::Action typ);
294 
296 
307  virtual DbStatus getDomainOption(const SessionH sessionH,
308  DbOption& opt);
309 
311 
322  virtual DbStatus setDomainOption(const SessionH sessionH,
323  const DbOption& opt);
324  };
325 } // End namespace pool
326 #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
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::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::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:25
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.