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
16 // forward declarations
17 class DatabaseRegistry;
19
25
26 class UserSession : public ISession, public APRMessaging
27 {
28 public:
30 explicit UserSession( IFileCatalog& fileCatalog, int ageLimit );
31
33 virtual ~UserSession();
34
35 UserSession (const UserSession&) = delete;
37
38
50 virtual void* readObject( const Token& token, void* object = 0 ) override;
51
52
62 virtual Token* registerForWrite( const Placement& place, const void* object, const RootType& type ) override;
63
64
65 // Signatures needed for the PersistencySvc
67 //TechnologyDispatcher& technologyDispatcher();
68
72 virtual bool disconnectAll() override final;
73
75 virtual ITransaction& transaction() override final { return *this; }
76 virtual const ITransaction& transaction() const override final { return *this; }
77
79 virtual bool start( Io::IoFlag type = Io::READ ) override final;
80
82 virtual bool commit() override final;
83
85 virtual bool commitAndHold() override final;
86
88 virtual bool isActive() const override final { return m_transactionType != Io::INVALID; }
89
91 virtual Io::IoFlag type() const override final { return m_transactionType; }
92
94 Io::IoFlag transactionType() const { return transaction().type(); }
95
97 virtual std::unique_ptr<IDatabase>
98 databaseHandle( const std::string& dbName, DatabaseSpecification::NameType dbNameType ) override final;
99
101 virtual IFileCatalog& fileCatalog() override final;
102
105
108 technologySpecificAttributes( long technology ) const override final;
109
111 technologySpecificAttributes( long technology ) override final;
112
115
116 private:
122
123 };
124}
125
126#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)
ISession is the interface class for user (macroscopic) sessions Every transaction and connection to a...
Definition ISession.h:37
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...
virtual Io::IoFlag type() const =0
Returns the transaction type.
MicroSessionManager is a class taking care of starting sessions for a given major technology and mana...
IFileCatalog * m_catalog
virtual IFileCatalog & fileCatalog() override final
Returns the file catalog in use.
UserSession(const UserSession &)=delete
DatabaseRegistry * m_registry
virtual const ITransaction & transaction() const override final
Definition UserSession.h:76
MicroSessionManager & microSessionManager(long technology)
Returns the technology given a technology type.
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...
virtual bool commit() override final
Commits the transaction.
virtual Io::IoFlag type() const override final
Returns the transaction type.
Definition UserSession.h:91
virtual ~UserSession()
Destructor.
virtual const ITechnologySpecificAttributes & technologySpecificAttributes(long technology) const override final
Returns the object holding the technology specific attributes for a given technology domain.
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.
Io::IoFlag m_transactionType
virtual bool start(Io::IoFlag type=Io::READ) override final
Starts a new transaction. Returns the success of the operation.
void setFileCatalog(IFileCatalog &catalog)
Set the file catalog to be used.
virtual bool commitAndHold() override final
Commits and holds the transaction.
virtual bool isActive() const override final
Checks if the transaction is active.
Definition UserSession.h:88
UserSession(IFileCatalog &fileCatalog, int ageLimit)
Constructor.
virtual ITransaction & transaction() override final
Returns the transaction interface.
Definition UserSession.h:75
Io::IoFlag transactionType() const
Returns the transaction type.
Definition UserSession.h:94
UserSession & operator=(const UserSession &)=delete
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...
DatabaseRegistry & registry()
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:24
#define private