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/*
23 * POOL namespace declaration
24 */
25namespace pool {
26
27 typedef const class Shape *ShapeH;
28
47 explicit DbObjectHolder(DbObject* p) : m_obj(p) {}
48 int release();
49 };
50 class DbContainerObj : public DbAccessObj<DbObject*, DbObjectHolder >, public APRMessaging {
51 private:
55 const Token* m_tokH;
60
62 bool hasAccess();
63 public:
65
73 const std::string& nam,
74 const DbType& dbtyp,
75 DbAccessMode mod);
77 virtual ~DbContainerObj();
79 const IDbContainer* info() const { return m_info; }
80 IDbContainer* info() { return m_info; }
82 const DbTypeInfo* objectShape(const Guid& nam);
84 DbDatabase& database() { return m_dbH; }
86 const Token* token() const { return m_tokH; }
88 bool isOpen() const { return m_isOpen; }
90 bool isReadOnly() const
91 { return !(mode()&pool::UPDATE) && !(mode()&pool::CREATE); }
92
95 uint64_t size();
110
112
114 DbStatus store(const void* object, DbContainer& cntH, ShapeH shape);
115
117 DbStatus allocate(DbContainer& cntH, const void* object, ShapeH shape, Token::OID_t& oid);
118
120 DbStatus load( void** ptr, ShapeH shape,
121 const Token::OID_t& linkH,
122 Token::OID_t& oid,
123 bool any_next);
125
130 };
131} // End namespace pool
132#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
DbStatus open(const DbTypeInfo *typ)
Open the container.
bool hasAccess()
Check database access.
DbStatus setOption(const DbOption &opt)
Pass options to the implementation.
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.
DbStatus 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.
bool m_isOpen
Flag indication DbStatus of technology dependent container.
const IDbContainer * info() const
Access to internals.
DbStatus checkAccess()
Check if we can access the container.
DbStatus transAct(Transaction::Action)
Execute Database Transaction Action.
DbStatus select(DbSelect &sel)
Perform selection. The statement belongs to the container afterwards.
const DbTypeInfo * objectShape(const Guid &nam)
Retrieve persistent type information by name.
const Token * m_tokH
Container token.
bool isOpen() const
Flag if container was opened.
const Token * token() const
Access the token of the container object.
DbStatus retire()
Retire the container.
DbStatus fetch(DbSelect &sel)
Fetch next object address of the selection to set token.
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)
DbStatus close()
Close the container.
IDbContainer * info()
DbStatus allocate(DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &oid)
In place allocation of object location.
IDbContainer * m_info
Pointer to interface of the technology dependent part.
DbStatus getOption(DbOption &refOpt)
Access options.
DbStatus store(const void *object, DbContainer &cntH, ShapeH shape)
Store object in 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:53
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:36
Definition of the DbSelect class.
Definition DbSelect.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
Definition of class DbTypeInfo.
Definition DbTypeInfo.h:47
Description:
Definition Shape.h:35
pool namespace
Definition libname.h:15
const class Shape * ShapeH
DbObjectHolder(DbObject *p)