ATLAS Offline Software
Loading...
Searching...
No Matches
IDbContainer.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// Package : pool/StorageSvc (The pool framework)
7//
8// @author M.Frank
9//
10//====================================================================
11#ifndef POOL_IDBCONTAINER_H
12#define POOL_IDBCONTAINER_H
13
14// Framework include files
16#include "StorageSvc/pool.h"
17
18#include <vector>
19#include <cstdint>
20
21/*
22 * POOL namespace declaration
23 */
24namespace pool {
25
26 // Forward declarations
27 class DbTypeInfo;
28 class DbDatabase;
29 class DbContainer;
30 class DbOption;
31
32 typedef const class Shape *ShapeH;
33
45 protected:
47 virtual ~IDbContainer() { }
48
49 public:
51 virtual void release() = 0;
53 virtual uint64_t size() = 0;
55 virtual std::string name() const = 0;
57 virtual StatusCode setOption(const DbOption& refOpt) = 0;
59 virtual StatusCode getOption(DbOption& refOpt) = 0;
61 virtual StatusCode store(const void* object,
62 DbContainer& cntH,
63 ShapeH shape) = 0;
65 virtual StatusCode allocate(DbContainer& cntH,
66 const void* object,
67 ShapeH shape,
68 Token::OID_t& oid) = 0;
69
71 virtual uint64_t nextRecordId() = 0;
73 virtual void useNextRecordId(uint64_t) = 0;
74
76 virtual StatusCode close() = 0;
78 virtual StatusCode open( DbDatabase& dbH,
79 const std::string& nam,
80 const DbTypeInfo* info,
81 DbAccessMode mode) = 0;
83 virtual StatusCode checkAccess(DbDatabase& dbH,
84 const std::string& nam) const = 0;
86 virtual StatusCode next(Token::OID_t& linkH) = 0;
87
89
98 virtual StatusCode load( void** ptr, ShapeH shape,
99 const Token::OID_t& lnkH,
100 Token::OID_t& oid,
101 bool any_next=false) = 0;
102
104 virtual StatusCode transAct(Transaction::Action) = 0;
105 };
106} // End namespace pool
107#endif // POOL_IDBCONTAINER_H
This file contains the class definition for the Token class (migrated from POOL).
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
virtual StatusCode setOption(const DbOption &refOpt)=0
Set options.
virtual uint64_t nextRecordId()=0
Number of next record in the container (=size if no delete is allowed).
virtual void release()=0
Release the technology specific implementation.
virtual StatusCode open(DbDatabase &dbH, const std::string &nam, const DbTypeInfo *info, DbAccessMode mode)=0
Open the container.
virtual StatusCode checkAccess(DbDatabase &dbH, const std::string &nam) const =0
Check if we can access the container for reading with the given type.
virtual StatusCode load(void **ptr, ShapeH shape, const Token::OID_t &lnkH, Token::OID_t &oid, bool any_next=false)=0
Find object within the container and load it into memory.
virtual ~IDbContainer()
Destructor (called only by sub-classes).
virtual StatusCode next(Token::OID_t &linkH)=0
Fetch next object address to set token.
virtual StatusCode allocate(DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &oid)=0
In place allocation of object location.
virtual uint64_t size()=0
Access to container size.
virtual std::string name() const =0
Get container name.
virtual StatusCode store(const void *object, DbContainer &cntH, ShapeH shape)=0
Store object in location.
virtual StatusCode getOption(DbOption &refOpt)=0
Access options.
virtual StatusCode transAct(Transaction::Action)=0
Execute Transaction Action.
virtual StatusCode close()=0
Close the container.
virtual void useNextRecordId(uint64_t)=0
Suggest next Record ID for tbe next object written - used only with synced indexes.
Description:
Definition Shape.h:35
Framework include files.
Definition libname.h:15
const class Shape * ShapeH