ATLAS Offline Software
Loading...
Searching...
No Matches
DbContainerObj.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5//====================================================================
6// DbContainerObj class definitions
7//--------------------------------------------------------------------
8//
9// Package : StorageSvc (The POOL project)
10// @author M.Frank
11//====================================================================
12#ifndef POOL_DBCONTAINEROBJ_H
13#define POOL_DBCONTAINEROBJ_H 1
14
15// Framework include files
19#include "StorageSvc/DbPrint.h"
20#include "DbAccessObj.h"
21
22/*
23 * POOL namespace declaration
24 */
25namespace pool {
26
27 typedef const class Shape *ShapeH;
28
46 private:
50 const Token* m_tokH;
55
57 bool hasAccess();
58 public:
60
68 const std::string& nam,
69 const DbType& dbtyp,
70 Io::IoFlag mod);
72 virtual ~DbContainerObj();
74 const IDbContainer* info() const { return m_info; }
75 IDbContainer* info() { return m_info; }
77 const DbTypeInfo* objectShape(const Guid& nam);
79 DbDatabase& database() { return m_dbH; }
81 const Token* token() const { return m_tokH; }
83 bool isOpen() const { return m_isOpen; }
85 bool isReadOnly() const
86 { return !(mode() == Io::WRITE || mode() == Io::APPEND); }
87
90 uint64_t size();
92 StatusCode open(const DbTypeInfo* typ);
94 StatusCode checkAccess();
96 StatusCode close();
98 StatusCode retire();
102 StatusCode setOption(const DbOption& opt);
104 StatusCode getOption(DbOption& refOpt);
105
107
109 StatusCode store(const void* object, DbContainer& cntH, ShapeH shape);
110
112 StatusCode allocate(DbContainer& cntH, const void* object, ShapeH shape, Token::OID_t& oid);
113
115 StatusCode load( void** ptr, ShapeH shape,
116 const Token::OID_t& linkH,
117 Token::OID_t& oid,
118 bool any_next);
120
122 StatusCode next(Token::OID_t& linkH);
123 };
124} // End namespace pool
125#endif // POOL_DBCONTAINEROBJ_H
This file contains the class definition for the Token class (migrated from POOL).
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:22
APRMessaging(const std::string &name)
Io::IoFlag mode() const
Access mode.
Definition DbAccessObj.h:74
DbAccessObjBase(const std::string &n, Io::IoFlag m, const DbType &t, IOODatabase *s=0)
Constructor with initializing arguments.
Definition DbAccessObj.h:64
StatusCode checkAccess()
Check if we can access the container.
StatusCode store(const void *object, DbContainer &cntH, ShapeH shape)
Store object in location.
bool hasAccess()
Check database access.
StatusCode getOption(DbOption &refOpt)
Access options.
StatusCode transAct(Transaction::Action)
Execute Database Transaction Action.
StatusCode load(void **ptr, ShapeH shape, const Token::OID_t &linkH, Token::OID_t &oid, bool any_next)
Select object in the container identified by its handle.
StatusCode retire()
Retire the container.
bool m_isOpen
Flag indication StatusCode of technology dependent container.
const IDbContainer * info() const
Access to internals.
const DbTypeInfo * objectShape(const Guid &nam)
Retrieve persistent type information by name.
const Token * m_tokH
Container token.
StatusCode setOption(const DbOption &opt)
Pass options to the implementation.
bool isOpen() const
Flag if container was opened.
const Token * token() const
Access the token of the container object.
StatusCode close()
Close the container.
virtual ~DbContainerObj()
Standard destructor.
DbDatabase m_dbH
Handle to hosting Database.
DbDatabase & database()
Handle to Database (CONST).
void cancelTransaction()
Cancel transaction flag.
bool isReadOnly() const
Check if database is in read-only mode.
uint64_t size()
Size of the Database container (=# of objects).
IDbContainer * info()
StatusCode next(Token::OID_t &linkH)
Fetch next object address to set token.
IDbContainer * m_info
Pointer to interface of the technology dependent part.
StatusCode open(const DbTypeInfo *typ)
Open the container.
DbContainerObj(DbDatabase &dbH, const std::string &nam, const DbType &dbtyp, Io::IoFlag mod)
Standard constructor of a container object using the Database handle as a clustering hint.
StatusCode allocate(DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &oid)
In place allocation of object location.
Description: Definition of the object describing a database container Handle managing a DbContainerOb...
Definition DbContainer.h:48
Description: Handle managing a DbDatabaseObj, a generic Database object.
Definition DbDatabase.h:54
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:36
Definition of class DbTypeInfo.
Definition DbTypeInfo.h:49
Description:
Definition Shape.h:35
Framework include files.
Definition libname.h:15
const class Shape * ShapeH