ATLAS Offline Software
DbDatabase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //====================================================================
6 // DbDatabase and related class definitions
7 //--------------------------------------------------------------------
8 //
9 // Package : StorageSvc (The POOL project)
10 // @author M.Frank
11 //====================================================================
12 #ifndef POOL_DBDATABASE_H
13 #define POOL_DBDATABASE_H
14 
15 // Framework include files
17 #include "DataModelRoot/RootType.h"
18 #include "StorageSvc/pool.h"
20 #include "StorageSvc/Transaction.h"
21 
22 // STL include files
23 #include <vector>
24 #include <string>
25 #include <map>
26 
27 /*
28  * POOL namespace declaration
29  */
30 namespace pool {
31 
32  // Forward declarations
33  class IOODatabase;
34  class IDbDatabase;
35  class IDbContainer;
36  class DbDomain;
37  class DbDatabase;
38  class DbDatabaseObj;
39  class DbContainer;
40  class DbContainerObj;
41  class DbOption;
42  class DbTypeInfo;
43  typedef const class Shape *ShapeH;
44 
53  class DbDatabase : public DbHandleBase<DbDatabaseObj> {
54  protected:
56  typedef std::pair<std::string, std::string> Parameter;
58  typedef std::vector< Parameter > Parameters;
59 
62  public:
64  DbDatabase(const DbType& typ=POOL_StorageType) { m_type = typ; }
66  DbDatabase(const DbDatabase& cp) : Base() { switchPtr(cp.m_ptr); }
70  virtual ~DbDatabase() { switchPtr(0); }
73  if ( &copy != this ) {
74  m_type = copy.m_type;
75  switchPtr( copy.m_ptr );
76  }
77  return *this;
78  }
80  DbDatabase& operator=(const int /* nuller */ ) {
81  switchPtr(0);
82  return *this;
83  }
85  int refCount() const;
89  const std::string& name() const;
91  void setName(const std::string& nam);
93  const std::string& logon() const;
95  long long int size();
98  const IOODatabase* db() const;
100  DbStatus add(const std::string& name, DbContainerObj* cnt);
104  const DbContainerObj* find(const std::string& nam) const;
106  DbContainerObj* find(const std::string& nam);
108  const Token* token() const;
110  const DbDomain& containedIn() const;
113  bool exist(DbDomain& domH, const std::string& nam) const;
115 
122  const std::string& pfn,
123  const std::string& fid,
126 
135  bool isOpen() const;
137 
142 
145  DbStatus setOption(const DbOption& refOpt);
147 
152  DbStatus addParam(const std::string& nam, const std::string& val);
154  int nParam();
156  DbStatus param(const std::string& nam, std::string& val);
159 
161  DbStatus read(const Token& token, ShapeH shape, void** object);
163  DbStatus getLink(const Token::OID_t& oid, Token* pTok);
165  std::string cntName(Token& token);
169  DbStatus addShape (const DbTypeInfo* pShape);
171  const DbTypeInfo* objectShape(const RootType& typeH);
173  const DbTypeInfo* objectShape(const Guid& nam);
175  const DbTypeInfo* contShape(const std::string& nam);
177  const Token* cntToken(const std::string& cntName);
179  DbStatus containers(std::vector<const Token*>& conts, bool intern=false);
180  DbStatus containers(std::vector<IDbContainer*>& conts, bool intern=false);
182  DbStatus associations(std::vector<const Token*>& assocs);
184  DbStatus shapes(std::vector<const DbTypeInfo*>& shaps);
187  const IDbDatabase* info() const;
189  void setAge(int value);
191  int age() const;
192  };
193 } // End namespace pool
194 #endif // POOL_DBDatabase_H
pool::DbDatabase::param
DbStatus param(const std::string &nam, std::string &val)
Retrieve existing parameter by name.
pool::DbDatabase::params
DbStatus params(Parameters &vals)
Retrieve all parameters.
pool::DbDatabase::cntName
std::string cntName(Token &token)
Retrieve container name from link container (using token oid, rather than contID)
pool::DbAccessMode
int DbAccessMode
Definition: Database/APR/StorageSvc/StorageSvc/pool.h:47
pool::DbDatabase::addParam
DbStatus addParam(const std::string &nam, const std::string &val)
Add a persistent parameter to the file.
pool::DbStatus
Definition: DbStatus.h:67
pool::DbDatabase::info
const IDbDatabase * info() const
Transaction.h
pool::DbDatabase::exist
bool exist(DbDomain &domH, const std::string &nam) const
Check for existence of Database within domain.
pool::DbDatabase::name
const std::string & name() const
Access to db name (FID)
pool::DbDatabase::shapes
DbStatus shapes(std::vector< const DbTypeInfo * > &shaps)
Allow access to all known shapes used by the database.
pool::DbDatabase::getLink
DbStatus getLink(const Token::OID_t &oid, Token *pTok)
Expand OID into a full Token, based on the Links table.
pool::DbDatabase::remove
DbStatus remove(const DbContainerObj *cnt)
Find domain in session.
pool::DbDatabase::transAct
DbStatus transAct(Transaction::Action action)
Commit/Rollback Database Transaction.
pool
pool namespace
Definition: libname.h:15
pool::DbDatabase::DbDatabase
DbDatabase(const DbDatabase &cp)
Copy constructor.
Definition: DbDatabase.h:66
pool::DbDatabase::info
IDbDatabase * info()
Let the implementation access the internals.
pool::DbDatabase::objectShape
const DbTypeInfo * objectShape(const Guid &nam)
Retrieve persistent type information by name.
athena.value
value
Definition: athena.py:122
pool::DbDatabase::setOption
DbStatus setOption(const DbOption &refOpt)
Set options.
pool::DbDatabase::size
long long int size()
Access the size of the database: May be undefined for some technologies.
pool::DbDatabase::open
DbStatus open(DbDomain &domH, const std::string &pfn, const std::string &fid, DbAccessMode mode=pool::READ)
Open Database using given domain.
pool::DbDatabase::DbDatabase
DbDatabase(const DbType &typ=POOL_StorageType)
Constructor with initializing arguments.
Definition: DbDatabase.h:64
pool::DbDatabase::~DbDatabase
virtual ~DbDatabase()
Standard destructor.
Definition: DbDatabase.h:70
pool::DbDatabase::cntToken
const Token * cntToken(const std::string &cntName)
Access local container token (if container exists)
pool::DbDatabase::operator=
DbDatabase & operator=(const DbDatabase &copy)
Assignment (copy) operator.
Definition: DbDatabase.h:72
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
pool::DbContainerObj
Definition: DbContainerObj.h:50
pool::DbDatabase::switchPtr
void switchPtr(DbDatabaseObj *obj)
Assign transient object properly (including reference counting)
pool::DbDatabase::objectShape
const DbTypeInfo * objectShape(const RootType &typeH)
Retrieve persistent type information by class handle.
pool::DbDatabase::associations
DbStatus associations(std::vector< const Token * > &assocs)
Allow access to all known associations between containers.
pool::DbDatabase::contShape
const DbTypeInfo * contShape(const std::string &nam)
Retrieve persistent type information by container.
Token::OID_t
Definition: Token.h:24
pool::DbDatabase::retire
DbStatus retire()
End database access, but still leave database accessible.
pool::ShapeH
const class Shape * ShapeH
Definition: DbContainerObj.h:27
pool::DbDatabase::add
DbStatus add(const std::string &name, DbContainerObj *cnt)
Add domain to session.
pool::IDbDatabase
Definition: IDbDatabase.h:41
pool::DbDatabase::isOpen
bool isOpen() const
Check if the database was opened.
pool::DbType
Definition: DbType.h:31
pool::DbDatabaseObj
Definition: DbDatabaseObj.h:49
pool::DbDatabase::reopen
DbStatus reopen(DbAccessMode mode=pool::READ)
Re-open database with changing access permissions.
pool::DbDatabase::age
int age() const
Access age value.
pool::DbDatabase::setName
void setName(const std::string &nam)
Set db name (FID) after opening in case opening happened by PFN.
pool::DbOption
Definition: DbOption.h:36
pool::DbDatabase::containedIn
const DbDomain & containedIn() const
Access to domain object.
pool::DbHandleBase< DbDatabaseObj >::m_type
DbType m_type
Data member: Technology type. Sub-classes need access on re-assignment.
Definition: DbHandleBase.h:43
pool::DbDatabase::token
const Token * token() const
Access the token of the database object.
Preparation.mode
mode
Definition: Preparation.py:95
pool::DbDatabase::Parameter
std::pair< std::string, std::string > Parameter
Parameter definition.
Definition: DbDatabase.h:56
pool::DbDatabase::find
DbContainerObj * find(const std::string &nam)
Select container object in Database.
pool::DbDatabase::containers
DbStatus containers(std::vector< IDbContainer * > &conts, bool intern=false)
pool::DbDatabase::find
const DbContainerObj * find(const std::string &nam) const
Select container object in Database.
pool::DbDatabase::openMode
DbAccessMode openMode() const
Access to access mode member.
pool::DbDatabase::db
const IOODatabase * db() const
pool.h
pool::DbDatabase::refCount
int refCount() const
Access reference counter.
pool::DbDatabase::close
DbStatus close()
Close Database.
pool::DbDatabase::makeLink
DbStatus makeLink(Token *pToken, Token::OID_t &linkH)
Add association link to link container.
pool::READ
@ READ
Definition: Database/APR/StorageSvc/StorageSvc/pool.h:68
pool::DbDatabase::DbDatabase
DbDatabase(DbDatabaseObj *obj)
Constructor.
Definition: DbDatabase.h:68
pool::Transaction::Action
Action
Definition: Transaction.h:34
pool::DbDatabase::getOption
DbStatus getOption(DbOption &refOpt)
Access options.
pool::DbDatabase::setAge
void setAge(int value)
Update database age.
pool::DbDatabase::containers
DbStatus containers(std::vector< const Token * > &conts, bool intern=false)
Allow access to all known containers.
LArNewCalib_PedestalAutoCorr.cp
cp
Definition: LArNewCalib_PedestalAutoCorr.py:175
pool::DbDatabase::Parameters
std::vector< Parameter > Parameters
Parameter container definition.
Definition: DbDatabase.h:58
pool::DbDomain
Definition: DbDomain.h:47
pool::DbDatabase::nParam
int nParam()
Retrieve the number of user parameters.
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition: Guid.h:20
pool::DbDatabase::read
DbStatus read(const Token &token, ShapeH shape, void **object)
read an object referenced by the token
pool::DbDatabase::addShape
DbStatus addShape(const DbTypeInfo *pShape)
Add persistent shape to the Database.
trigbs_pickEvents.cnt
cnt
Definition: trigbs_pickEvents.py:71
pool::DbDatabase::operator=
DbDatabase & operator=(const int)
Assignment operator to reset handle using 0.
Definition: DbDatabase.h:80
python.CaloScaleNoiseConfig.action
action
Definition: CaloScaleNoiseConfig.py:77
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
pool::DbDatabase::db
IOODatabase * db()
Allow access to the Database implementation.
DbHandleBase.h
pool::DbHandleBase
Definition: DbHandleBase.h:24
pool::DbDatabase::logon
const std::string & logon() const
Access to db logon string.
RootType.h
calibdata.copy
bool copy
Definition: calibdata.py:27
python.PyAthena.obj
obj
Definition: PyAthena.py:135
pool::DbDatabase
Definition: DbDatabase.h:53
Token.h
This file contains the class definition for the Token class (migrated from POOL).
pool::DbTypeInfo
Definition: DbTypeInfo.h:47
pool::IOODatabase
Definition: IOODatabase.h:50
pool::DbDatabase::containedIn
DbDomain & containedIn()
PlotCalibFromCool.vals
vals
Definition: PlotCalibFromCool.py:474
TScopeAdapter
Definition: RootType.h:119