ATLAS Offline Software
Loading...
Searching...
No Matches
DbContainerObj.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//====================================================================
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
20#include "POOLCore/DbPrint.h"
21/*
22 * POOL namespace declaration
23 */
24namespace pool {
25
26 typedef const class Shape *ShapeH;
27
46 explicit DbObjectHolder(DbObject* p) : m_obj(p) {}
47 int release();
48 };
49 class DbContainerObj : public DbAccessObj<DbObject*, DbObjectHolder >, public APRMessaging {
50 private:
54 const Token* m_tokH;
59
61 bool hasAccess();
62 public:
64
72 const std::string& nam,
73 const DbType& dbtyp,
74 DbAccessMode mod);
76 virtual ~DbContainerObj();
78 const IDbContainer* info() const { return m_info; }
79 IDbContainer* info() { return m_info; }
81 const DbTypeInfo* objectShape(const Guid& nam);
83 DbDatabase& database() { return m_dbH; }
85 const Token* token() const { return m_tokH; }
87 bool isOpen() const { return m_isOpen; }
89 bool isReadOnly() const
90 { return !(mode()&pool::UPDATE) && !(mode()&pool::CREATE); }
91
94 uint64_t size();
96 StatusCode open(const DbTypeInfo* typ);
98 StatusCode checkAccess();
100 StatusCode close();
102 StatusCode retire();
106 StatusCode setOption(const DbOption& opt);
108 StatusCode getOption(DbOption& refOpt);
109
111
113 StatusCode store(const void* object, DbContainer& cntH, ShapeH shape);
114
116 StatusCode allocate(DbContainer& cntH, const void* object, ShapeH shape, Token::OID_t& oid);
117
119 StatusCode load( void** ptr, ShapeH shape,
120 const Token::OID_t& linkH,
121 Token::OID_t& oid,
122 bool any_next);
124
126 StatusCode next(Token::OID_t& linkH);
127 };
128} // End namespace pool
129#endif // POOL_DBCONTAINEROBJ_H
This file contains the class definition for the Token class (migrated from POOL).
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)
DbAccessObj(const std::string &n, DbAccessMode m, const DbType &t, IOODatabase *s=0)
Definition DbAccessObj.h:70
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.
DbContainerObj(DbDatabase &dbH, const std::string &nam, const DbType &dbtyp, DbAccessMode mod)
Standard constructor of a container object using the Database handle as a clustering hint.
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.
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:49
Description: Handle managing a DbDatabaseObj, a generic Database object.
Definition DbDatabase.h:55
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:37
Definition of class DbTypeInfo.
Definition DbTypeInfo.h:49
Description:
Definition Shape.h:35
pool namespace
Definition libname.h:15
const class Shape * ShapeH
DbObjectHolder(DbObject *p)