ATLAS Offline Software
Loading...
Searching...
No Matches
UserSession.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#ifndef INCLUDE_PERSISTENCYSVC_USERSESSION_H
6#define INCLUDE_PERSISTENCYSVC_USERSESSION_H
7
10#include "StorageSvc/DbPrint.h"
11
12#include <map>
13
14namespace pool {
15
17
18 namespace PersistencySvc {
19
20 // forward declarations
21 class DatabaseRegistry;
23
29
30 class UserSession : public ISession, public APRMessaging
31 {
32 public:
35
37 virtual ~UserSession();
38
39 UserSession (const UserSession&) = delete;
41
42
54 virtual void* readObject( const Token& token, void* object = 0 ) override;
55
56
66 virtual Token* registerForWrite( const Placement& place, const void* object, const RootType& type ) override;
67
68
69 // Signatures needed for the PersistencySvc
71 //TechnologyDispatcher& technologyDispatcher();
72
74 virtual void setDefaultConnectionPolicy( const DatabaseConnectionPolicy& policy ) override final;
75
78
82 virtual bool disconnectAll() override final;
83
85 virtual ITransaction& transaction() override final { return *this; }
86 virtual const ITransaction& transaction() const override final { return *this; }
87
89 virtual bool start( ITransaction::Type type = READ ) override final;
90
92 virtual bool commit() override final;
93
95 virtual bool commitAndHold() override final;
96
98 virtual bool isActive() const override final { return m_transactionType != ITransaction::INACTIVE; }
99
101 virtual ITransaction::Type type() const override final { return m_transactionType; }
102
105
107 virtual std::unique_ptr<IDatabase>
108 databaseHandle( const std::string& dbName, DatabaseSpecification::NameType dbNameType ) override final;
109
111 virtual IFileCatalog& fileCatalog() override final;
112
115
118 technologySpecificAttributes( long technology ) const override final;
119
121 technologySpecificAttributes( long technology ) override final;
122
125
126 private:
132
133 };
134 }
135}
136
137#endif
TTypeAdapter RootType
Definition RootType.h:211
This class holds all the necessary information to guide the writing of an object in a physical place.
Definition Placement.h:19
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21
STL class.
APRMessaging(const std::string &name)
DatabaseConnectionPolicy is a class holding information on the policy to be followed whenever a datab...
ITechnologySpecificAttributes is the interface for an object holding technology-specific attributes.
ITransaction is the interface class for user (macroscopic transactions) Every operation with the pool...
Type
Transaction type enumeration.
virtual Type type() const =0
Returns the transaction type.
ISession is the interface class for user (macroscopic) sessions Every transaction and connection to a...
Definition ISession.h:40
MicroSessionManager is a class taking care of starting sessions for a given major technology and mana...
DatabaseConnectionPolicy * m_policy
virtual bool start(ITransaction::Type type=READ) override final
Starts a new transaction. Returns the success of the operation.
UserSession(const UserSession &)=delete
UserSession & operator=(const UserSession &)=delete
virtual ITransaction::Type type() const override final
Returns the transaction type.
virtual const ITransaction & transaction() const override final
Definition UserSession.h:86
virtual void * readObject(const Token &token, void *object=0) override
Retrieves an object from persistent store and return with type information The handle to the reflecti...
virtual bool commitAndHold() override final
Commits and holds the transaction.
std::map< long, std::unique_ptr< MicroSessionManager > > m_technologies
virtual std::unique_ptr< IDatabase > databaseHandle(const std::string &dbName, DatabaseSpecification::NameType dbNameType) override final
Creates and returns a new database handle object.
virtual bool disconnectAll() override final
Explicitly disconnects all the databases.
virtual Token * registerForWrite(const Placement &place, const void *object, const RootType &type) override
registerForWrite registers an object for writing to the persistent medium higher level interactions w...
DatabaseRegistry & registry()
virtual const ITechnologySpecificAttributes & technologySpecificAttributes(long technology) const override final
Returns the object holding the technology specific attributes for a given technology domain.
virtual void setDefaultConnectionPolicy(const DatabaseConnectionPolicy &policy) override final
Sets the default policy when databases are opened/connected.
virtual ~UserSession()
Destructor.
virtual const DatabaseConnectionPolicy & defaultConnectionPolicy() const override final
Retrieves the default connection policy.
ITransaction::Type transactionType() const
Returns the transaction type.
MicroSessionManager & microSessionManager(long technology)
Returns the technology given a technology type.
virtual ITransaction & transaction() override final
Returns the transaction interface.
Definition UserSession.h:85
virtual IFileCatalog & fileCatalog() override final
Returns the file catalog in use.
void setFileCatalog(IFileCatalog &catalog)
Set the file catalog to be used.
virtual bool commit() override final
Commits the transaction.
virtual bool isActive() const override final
Checks if the transaction is active.
Definition UserSession.h:98
ITransaction::Type m_transactionType
UserSession(IFileCatalog &fileCatalog)
Constructor.
STL class.
Framework include files.
Definition libname.h:15
STL namespace.
NameType
Enumeration type specifying the database name field, wherever the latter is used in methods accessing...
Definition IDatabase.h:23
#define private