ATLAS Offline Software
UserDatabase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INCLUDE_PERSISTENCYSVC_USERDATABASE_H
6 #define INCLUDE_PERSISTENCYSVC_USERDATABASE_H
7 
12 
13 namespace pool {
14  // forward declarations
15  class DatabaseConnectionPolicy;
16  class IFileCatalog;
17  class ITransaction;
18 
19 
20  namespace PersistencySvc {
21  // forward declarations
22  class TechnologyDispatcher;
23  class DatabaseHandler;
24  class DatabaseRegistry;
25 
31  class UserDatabase : virtual public IDatabase,
32  virtual public ITechnologySpecificAttributes
33  {
34  public:
36  UserDatabase( TechnologyDispatcher& technologyDispatcher,
37  const DatabaseConnectionPolicy& policy,
38  IFileCatalog& fileCatalog,
39  ITransaction& transaction,
41  const std::string& name,
43 
45  virtual ~UserDatabase();
46 
49 
51  virtual void connectForRead() override;
52  virtual void connectForRead( const DatabaseConnectionPolicy& policy ) override;
53 
55  virtual void connectForWrite() override;
56  virtual void connectForWrite( const DatabaseConnectionPolicy& policy ) override;
57 
59  virtual void disconnect() override;
60 
62  virtual IDatabase::OpenMode openMode() const override;
63 
65  virtual const std::string& fid() override;
66 
68  virtual const std::string& pfn() override;
69 
74  virtual bool setTechnology( long technology ) override;
75 
77  virtual long technology() const override;
78 
80  virtual std::vector< std::string > containers() override;
81 
83  virtual IContainer* containerHandle( const std::string& name ) override;
84 
88 
89  protected:
90  virtual
91  bool attributeOfType( const std::string& attributeName,
92  void* data,
93  const std::type_info& typeInfo,
94  const std::string& option ) override;
95 
96  virtual
97  bool setAttributeOfType( const std::string& attributeName,
98  const void* data,
99  const std::type_info& typeInfo,
100  const std::string& option ) override;
101  private:
113  std::string m_name;
127  std::string m_the_fid;
128  std::string m_the_pfn;
129 
132 
134  void setTechnologyIdentifier( const std::string& sTechnology );
135  };
136  }
137 }
138 
139 #endif
pool::IContainer
Definition: IContainer.h:23
python.Dso.registry
registry
Definition: Control/AthenaServices/python/Dso.py:159
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
pool::PersistencySvc::DatabaseHandler
Definition: DatabaseHandler.h:34
checkxAOD.nameType
nameType
Definition: Tools/PyUtils/bin/checkxAOD.py:177
pool::PersistencySvc::UserDatabase::technologySpecificAttributes
virtual ITechnologySpecificAttributes & technologySpecificAttributes() override
pool::PersistencySvc::UserDatabase::disconnect
virtual void disconnect() override
Disconnects from the database.
pool::PersistencySvc::UserDatabase::m_the_fid
std::string m_the_fid
Other names used.
Definition: UserDatabase.h:127
pool::IDatabase::OpenMode
OpenMode
Current open mode enumeration.
Definition: IDatabase.h:28
pool::PersistencySvc::UserDatabase::databaseHandler
DatabaseHandler & databaseHandler()
Returns the database handler.
pool::PersistencySvc::UserDatabase::containers
virtual std::vector< std::string > containers() override
Returns the names of the containers in this database.
pool::PersistencySvc::UserDatabase::setAttributeOfType
virtual bool setAttributeOfType(const std::string &attributeName, const void *data, const std::type_info &typeInfo, const std::string &option) override
The actual method setting the attribute data given a name.
IDatabase.h
pool
pool namespace
Definition: libname.h:15
pool::PersistencySvc::UserDatabase::attributeOfType
virtual bool attributeOfType(const std::string &attributeName, void *data, const std::type_info &typeInfo, const std::string &option) override
The actual method returning the attribute data given a name.
pool::PersistencySvc::UserDatabase::m_technologyDispatcher
TechnologyDispatcher & m_technologyDispatcher
Reference to the technology dispatcher.
Definition: UserDatabase.h:103
pool::PersistencySvc::UserDatabase::technology
virtual long technology() const override
Returns the technology identifier for this database.
pool::DatabaseSpecification::NameType
NameType
Enumeration type specifying the database name field, wherever the latter is used in methods accessing...
Definition: DatabaseSpecification.h:14
pool::PersistencySvc::UserDatabase::UserDatabase
UserDatabase(TechnologyDispatcher &technologyDispatcher, const DatabaseConnectionPolicy &policy, IFileCatalog &fileCatalog, ITransaction &transaction, DatabaseRegistry &registry, const std::string &name, DatabaseSpecification::NameType nameType)
Constructor.
pool::PersistencySvc::UserDatabase::m_registry
DatabaseRegistry & m_registry
Reference to the database registry.
Definition: UserDatabase.h:111
pool::PersistencySvc::UserDatabase::fid
virtual const std::string & fid() override
Returns the file identifier of this database.
pool::PersistencySvc::UserDatabase::~UserDatabase
virtual ~UserDatabase()
Destructor.
pool::PersistencySvc::UserDatabase::connectForWrite
virtual void connectForWrite(const DatabaseConnectionPolicy &policy) override
pool::PersistencySvc::UserDatabase::openMode
virtual IDatabase::OpenMode openMode() const override
Returns the opening mode. It can be used to check whether the database is connected.
pool::IFileCatalog
Definition: IFileCatalog.h:23
pool::PersistencySvc::UserDatabase::m_nameType
DatabaseSpecification::NameType m_nameType
The database name spacification.
Definition: UserDatabase.h:115
pool::PersistencySvc::UserDatabase::m_the_pfn
std::string m_the_pfn
Definition: UserDatabase.h:128
pool::PersistencySvc::UserDatabase::m_transaction
ITransaction & m_transaction
Reference to the global transaction.
Definition: UserDatabase.h:109
pool::PersistencySvc::UserDatabase::pfn
virtual const std::string & pfn() override
Returns the physical file name of this database.
pool::ITransaction
Definition: ITransaction.h:21
pool::PersistencySvc::UserDatabase::setTechnologyIdentifier
void setTechnologyIdentifier(const std::string &sTechnology)
Converts a technology string to the technology (long) identifier.
pool::PersistencySvc::UserDatabase::m_databaseHandler
DatabaseHandler * m_databaseHandler
The underlying database handler.
Definition: UserDatabase.h:121
ISession.h
pool::PersistencySvc::DatabaseRegistry
Definition: DatabaseRegistry.h:19
pool::PersistencySvc::UserDatabase::m_catalog
IFileCatalog & m_catalog
Reference to the file catalog.
Definition: UserDatabase.h:107
pool::PersistencySvc::UserDatabase::connectForRead
virtual void connectForRead() override
Connects explicitly to the database for read operations.
pool::PersistencySvc::UserDatabase::m_technologySet
bool m_technologySet
Checks if the technology identifier has been set.
Definition: UserDatabase.h:119
pool::PersistencySvc::UserDatabase::m_technology
long m_technology
The technology identifier of the database.
Definition: UserDatabase.h:117
pool::ITechnologySpecificAttributes
Definition: ITechnologySpecificAttributes.h:22
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
pool::IDatabase
Definition: IDatabase.h:25
pool::PersistencySvc::UserDatabase::m_name
std::string m_name
The database name.
Definition: UserDatabase.h:113
pool::PersistencySvc::UserDatabase
Definition: UserDatabase.h:33
pool::PersistencySvc::UserDatabase::checkInRegistry
bool checkInRegistry()
Checks in the registry if the database handler already exists.
ITechnologySpecificAttributes.h
pool::PersistencySvc::UserDatabase::m_openMode
IDatabase::OpenMode m_openMode
Current open mode.
Definition: UserDatabase.h:123
pool::PersistencySvc::UserDatabase::m_alreadyConnected
bool m_alreadyConnected
Flag indicating whether a connection has been already made once.
Definition: UserDatabase.h:125
DatabaseSpecification.h
pool::PersistencySvc::UserDatabase::containerHandle
virtual IContainer * containerHandle(const std::string &name) override
Returns a pointer to a container object. The user acquires ownership of that object.
pool::DatabaseConnectionPolicy
Definition: DatabaseConnectionPolicy.h:19
pool::PersistencySvc::UserDatabase::connectForWrite
virtual void connectForWrite() override
Connects explicitly to the database for write/update operations.
pool::PersistencySvc::UserDatabase::m_policy
const DatabaseConnectionPolicy & m_policy
Reference to the policy.
Definition: UserDatabase.h:105
pool::PersistencySvc::UserDatabase::technologySpecificAttributes
virtual const ITechnologySpecificAttributes & technologySpecificAttributes() const override
Returns the object holding the technology specific attributes.
pool::PersistencySvc::UserDatabase::connectForRead
virtual void connectForRead(const DatabaseConnectionPolicy &policy) override
pool::PersistencySvc::UserDatabase::setTechnology
virtual bool setTechnology(long technology) override
Sets the technology identifier for this database.
pool::PersistencySvc::TechnologyDispatcher
Definition: TechnologyDispatcher.h:30