ATLAS Offline Software
Loading...
Searching...
No Matches
pool::UserDatabase Class Reference

UserDatabase is an implementation of the IDatabase interface. More...

#include <UserDatabase.h>

Inheritance diagram for pool::UserDatabase:
Collaboration diagram for pool::UserDatabase:

Public Member Functions

 UserDatabase (UserSession &session, const std::string &name, const DatabaseSpecification::NameType nameType)
 Constructor.
virtual ~UserDatabase ()
 Destructor.
DatabaseHandlerdatabaseHandler ()
 Returns the database handler.
virtual void connectForRead () override
 Connects explicitly to the database for read operations.
virtual void connectForWrite () override
 Connects explicitly to the database for write/update operations.
virtual void disconnect () override
 Disconnects from the database.
virtual Io::IoFlag openMode () const override
 Returns the opening mode. It can be used to check whether the database is connected.
virtual const std::string & fid () override
 Returns the file identifier of this database.
virtual const std::string & pfn () override
 Returns the physical file name of this database.
virtual bool setTechnology (long technology) override
 Sets the technology identifier for this database.
virtual long technology () const override
 Returns the technology identifier for this database.
virtual std::vector< std::string > containers () override
 Returns the names of the containers in this database.
virtual IContainercontainerHandle (const std::string &name) override
 Returns a pointer to a container object. The user acquires ownership of that object.
virtual ITechnologySpecificAttributestechnologySpecificAttributes () override
 Returns the object holding the technology specific attributes.
template<class T>
attribute (const std::string &attributeName, const std::string &option="")
 Templated method to retrieve an attribute.
template<class T>
bool setAttribute (const std::string &attributeName, const T &atttibuteValue, const std::string &option="")
 Templated method to set an attribute.
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.

Protected Member Functions

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.
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.

Private Member Functions

bool checkInRegistry ()
 Checks in the registry if the database handler already exists.
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

UserSessionm_session
 Reference to the session.
IFileCatalogm_catalog
 Reference to the file catalog.
Io::IoFlag m_transactionType
 Transaction type (read/update).
DatabaseRegistrym_registry
 Reference to the database registry.
std::string m_name
 The database name.
DatabaseSpecification::NameType m_nameType
 The database name spacification.
long m_technology
 The technology identifier of the database.
bool m_technologySet
 Checks if the technology identifier has been set.
DatabaseHandlerm_databaseHandler
 The underlying database handler.
Io::IoFlag m_openMode
 Current open mode.
bool m_alreadyConnected
 Flag indicating whether a connection has been already made once.
std::string m_the_fid
 Other names used.
std::string m_the_pfn
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels).
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging).

Detailed Description

UserDatabase is an implementation of the IDatabase interface.

Definition at line 29 of file UserDatabase.h.

Constructor & Destructor Documentation

◆ UserDatabase()

pool::UserDatabase::UserDatabase ( pool::UserSession & session,
const std::string & name,
const DatabaseSpecification::NameType nameType )

Constructor.

Definition at line 20 of file UserDatabase.cxx.

22 :
23 APRMessaging("PersistencySvc::UserDB"),
24 m_session( session ),
25 m_catalog( session.fileCatalog() ),
27 m_registry( session.registry() ),
28 m_name( name ),
29 m_nameType( nameType ),
30 m_technology( 0 ),
31 m_technologySet( false ),
33 m_openMode( Io::INVALID ),
34 m_alreadyConnected( false ),
35 m_the_fid( "" ),
36 m_the_pfn( "" )
37{
38 this->checkInRegistry();
39}
APRMessaging(const std::string &name)
std::string m_the_fid
Other names used.
Io::IoFlag m_transactionType
Transaction type (read/update).
std::string m_the_pfn
std::string m_name
The database name.
DatabaseRegistry & m_registry
Reference to the database registry.
bool m_alreadyConnected
Flag indicating whether a connection has been already made once.
bool checkInRegistry()
Checks in the registry if the database handler already exists.
IFileCatalog & m_catalog
Reference to the file catalog.
UserSession & m_session
Reference to the session.
DatabaseSpecification::NameType m_nameType
The database name spacification.
long m_technology
The technology identifier of the database.
Io::IoFlag m_openMode
Current open mode.
bool m_technologySet
Checks if the technology identifier has been set.
DatabaseHandler * m_databaseHandler
The underlying database handler.
DatabaseRegistry & registry()
virtual IFileCatalog & fileCatalog() override final
Returns the file catalog in use.
Io::IoFlag transactionType() const
Returns the transaction type.
Definition UserSession.h:93

◆ ~UserDatabase()

pool::UserDatabase::~UserDatabase ( )
virtual

Destructor.

Definition at line 42 of file UserDatabase.cxx.

43{}

Member Function Documentation

◆ attribute()

template<class T>
T pool::ITechnologySpecificAttributes::attribute ( const std::string & attributeName,
const std::string & option = "" )
inlineinherited

Templated method to retrieve an attribute.

Definition at line 25 of file ITechnologySpecificAttributes.h.

26 {
27 T data;
28 const std::type_info& typeInfo = typeid(T);
29 if ( ! this->attributeOfType( attributeName,
30 static_cast< void* >( &data ),
31 typeInfo,
32 option ) ) {
33 std::ostringstream error;
34 error << "Failed to retrieve attribute " << attributeName << " of type " << typeInfo.name();
35 throw std::runtime_error( error.str() + " (APR: \" ITechnologySpecificAttributes \" from \" PersistencySvc \")");
36 }
37 return data;
38 }
virtual bool attributeOfType(const std::string &attributeName, void *data, const std::type_info &typeInfo, const std::string &option)=0
The actual method returning the attribute data given a name.
unsigned long long T

◆ attributeOfType()

bool pool::UserDatabase::attributeOfType ( const std::string & attributeName,
void * data,
const std::type_info & typeInfo,
const std::string & option )
overrideprotectedvirtual

The actual method returning the attribute data given a name.

Implements pool::ITechnologySpecificAttributes.

Definition at line 363 of file UserDatabase.cxx.

367{
368 if ( ! m_databaseHandler ) return false;
369 else return m_databaseHandler->attribute( attributeName, data, typeInfo, option );
370}

◆ checkInRegistry()

bool pool::UserDatabase::checkInRegistry ( )
private

Checks in the registry if the database handler already exists.

Definition at line 318 of file UserDatabase.cxx.

319{
320 // Check first if the database is already connected.
321 switch( m_nameType ) {
323 m_databaseHandler = m_registry.lookupByPFN( m_name );
324 break;
326 m_databaseHandler = m_registry.lookupByFID( m_name );
327 break;
329 m_databaseHandler = m_registry.lookupByLFN( m_name );
330 break;
331 default:
332 throw std::runtime_error( "Only PFN, LFN and FID database types are currently supported (APR: \" UserDatabase::checkInRegistry \" from \" PersistencySvc \")" );
333 };
334 if ( m_databaseHandler ) {
335 m_alreadyConnected = true;
336 m_technology = m_databaseHandler->technology();
337 if ( m_databaseHandler->accessMode() == Io::APPEND ) {
338 m_openMode = Io::APPEND;
339 }
340 else if ( m_databaseHandler->accessMode() == Io::WRITE ) {
341 m_openMode = Io::WRITE;
342 }
343 else {
344 m_openMode = Io::READ;
345 }
349 return true;
350 }
351 else return false;
352}
@ FID
Physical File Name.
Definition IDatabase.h:26
@ LFN
File IDentifier.
Definition IDatabase.h:27

◆ connectForRead()

void pool::UserDatabase::connectForRead ( )
overridevirtual

Connects explicitly to the database for read operations.

Implements pool::IDatabase.

Definition at line 53 of file UserDatabase.cxx.

54{
55 if( !m_databaseHandler && m_transactionType != Io::INVALID ) {
56 // Check if the database is already connected
57 if( !checkInRegistry() ) {
58 // It is not. Connect !
59 switch( m_nameType ) {
61 if ( this->fid().empty() ) {
62 throw std::runtime_error( "PFN \"" + m_name + "\" is not existing (APR: \" UserDatabase::connectForRead \" from \" PersistencySvc \")" );
63 }
64 break;
65
67 if ( this->pfn().empty() ) {
68 throw std::runtime_error( "FID \"" + m_name + "\" is not existing in the catalog (APR: \" UserDatabase::connectForRead \" from \" PersistencySvc \")" );
69 }
70 break;
72 {
73 std::string lfn = m_name;
74 if ( this->fid().empty() ) {
75 throw std::runtime_error( "LFN \"" + m_name + "\" is not existing in the catalog (APR: \" UserDatabase::connectForRead \" from \" PersistencySvc \")" );
76 }
77 this->connectForRead();
78 m_registry.registerDatabaseHandler( m_databaseHandler, lfn );
79 }
80 return;
81 break;
82 default:
83 throw std::runtime_error( "Unknown database name type (APR: \" UserDatabase::connectForRead \" from \" PersistencySvc \")" );
84 };
85
86 // Now we have all the usefull information to open the file.
87 // Check the registry now that we have the FID (in case of ambiguous PFNs)
88 m_databaseHandler = m_registry.lookupByFID( m_the_fid );
89 if( !m_databaseHandler ) {
90 // still no luck - make a new connection
92 }
93 if( m_databaseHandler ) {
94 m_openMode = Io::READ;
95 }
96 else {
97 throw std::runtime_error( "Could not connect to the file (APR: \" UserDatabase::connectForRead \" from \" PersistencySvc \")" );
98 }
99 }
100 }
101}
static const Attributes_t empty
virtual const std::string & pfn() override
Returns the physical file name of this database.
virtual const std::string & fid() override
Returns the file identifier of this database.
virtual void connectForRead() override
Connects explicitly to the database for read operations.

◆ connectForWrite()

void pool::UserDatabase::connectForWrite ( )
overridevirtual

Connects explicitly to the database for write/update operations.

Implements pool::IDatabase.

Definition at line 105 of file UserDatabase.cxx.

106{
107 if( !m_databaseHandler && m_transactionType != Io::INVALID ) {
108 if ( m_transactionType != Io::WRITE && m_transactionType != Io::APPEND ) {
109 throw std::runtime_error( "Could not open a database for write outside an update transaction. (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
110 }
111
112 if ( this->checkInRegistry() ) {
113 if ( m_openMode == Io::READ ) {
114 throw std::runtime_error( "Could not open a database for write that is already connected for read. (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
115 }
116 }
117 else { // The database is not yet connected.
118 bool dbRegistered = false;
119 switch( m_nameType ) {
122 if ( this->fid().empty() ) {
123 // Check if the technology is already set
124 if( ! m_technologySet ) {
125 throw std::runtime_error( "The back end technology has not been specified (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
126 }
127 // register in the catalog
128 pool::DbType dbType( m_technology );
129 pool::DbType dbTypeMajor( dbType.majorType() );
130 m_catalog.registerPFN( m_the_pfn.substr(0, m_the_pfn.find('?')), dbTypeMajor.storageName(), m_the_fid );
131 ATH_MSG_DEBUG("registered PFN: " << m_the_pfn << " with FID:" << m_the_fid);
132 dbRegistered = true;
133 }
134 break;
137 if ( this->pfn().empty() ) {
138 throw std::runtime_error( "Could not find the FID \"" + m_name + "\" in the file catalog (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
139 }
140 break;
142 {
143 std::string lfn = m_name;
144 if ( this->fid().empty() ) {
145 throw std::runtime_error( "Could not find the LFN \"" + m_name + "\" in the file catalog (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
146 }
147 this->connectForWrite();
148 m_registry.registerDatabaseHandler( m_databaseHandler, lfn );
149 }
150 return;
151 break;
152 default:
153 throw std::runtime_error( "Unknown database name type (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
154 };
155
156 m_databaseHandler = m_session.microSessionManager( m_technology ).connect( m_transactionType, m_the_fid, m_the_pfn );
157 if( !m_databaseHandler ) {
158 if( dbRegistered ) {
159 // creation failed, remove entry from the in-memory catalog
160 m_catalog.deleteFID( m_the_fid );
161 }
162 throw std::runtime_error( "Could not connect to the file (APR: \" UserDatabase::connectForWrite \" from \" PersistencySvc \")" );
163 }
164 m_openMode = m_transactionType == Io::WRITE ? Io::WRITE : Io::APPEND;
165 } // Connection established
166
167 } // Database handler retrieved
168}
#define ATH_MSG_DEBUG(x,...)
virtual void connectForWrite() override
Connects explicitly to the database for write/update operations.

◆ containerHandle()

pool::IContainer * pool::UserDatabase::containerHandle ( const std::string & name)
overridevirtual

Returns a pointer to a container object. The user acquires ownership of that object.

Implements pool::IDatabase.

Definition at line 307 of file UserDatabase.cxx.

308{
309 pool::IContainer* container = 0;
310 if ( m_databaseHandler ) {
311 container = m_databaseHandler->container( name );
312 }
313 return container;
314}
const SG::AuxVectorData * container() const
Return the container holding this element.

◆ containers()

std::vector< std::string > pool::UserDatabase::containers ( )
overridevirtual

Returns the names of the containers in this database.

Implements pool::IDatabase.

Definition at line 296 of file UserDatabase.cxx.

297{
298 std::vector< std::string > containers;
299 if ( m_databaseHandler ) {
300 containers = m_databaseHandler->containers();
301 }
302 return containers;
303}
virtual std::vector< std::string > containers() override
Returns the names of the containers in this database.

◆ databaseHandler()

pool::DatabaseHandler & pool::UserDatabase::databaseHandler ( )

Returns the database handler.

Definition at line 47 of file UserDatabase.cxx.

48{
49 return *m_databaseHandler;
50}

◆ disconnect()

void pool::UserDatabase::disconnect ( )
overridevirtual

Disconnects from the database.

Implements pool::IDatabase.

Definition at line 172 of file UserDatabase.cxx.

173{
174 if ( m_databaseHandler ) {
175 m_session.microSessionManager( m_technology ).disconnect( m_databaseHandler );
176 m_openMode = Io::INVALID;
177 }
178}

◆ fid()

const std::string & pool::UserDatabase::fid ( )
overridevirtual

Returns the file identifier of this database.

Implements pool::IDatabase.

Definition at line 189 of file UserDatabase.cxx.

190{
191 if ( m_databaseHandler ) return m_databaseHandler->fid();
192 else {
194 else if ( ! m_the_fid.empty() ) return m_the_fid;
195 else {
197 std::string technology;
198 m_catalog.lookupFileByPFN( m_name.substr(0, m_name.find('?')), m_the_fid, technology );
199 ATH_MSG_DEBUG("lookupPFN: " << m_name << " returned FID: '" << m_the_fid << "' tech=" << technology);
200 if ( ! m_the_fid.empty() ) {
201 if( technology.empty() ) {
203 ATH_MSG_DEBUG("Retrying 'connect' using assumed PFN " << m_name << " as LFN (no tech found in PFC)" );
204 return m_the_fid;
205 }
208 m_alreadyConnected = true;
209 }
210 else {
211 if( m_transactionType != Io::WRITE ) { // Fetch the FID from the db itself !
212 if( !m_technologySet ) {
213 ATH_MSG_DEBUG("Opening database '" << m_name << "' with no technology set");
215 m_technologySet = true;
216 }
217 m_the_fid = m_session.microSessionManager( m_technology ).fidForPfn( m_name );
218 if( ! m_the_fid.empty() ) {
219 // sanity check - verify that the FID is not registered in PFC under a different name
220 std::string pfn, tech;
221 m_catalog.getFirstPFN( m_the_fid, pfn, tech );
222 if( !pfn.empty() ) {
223 ATH_MSG_WARNING("Opening file '" << m_name << "' which is already registered in the Catalog as '" << pfn
224 <<"' (GUID " << m_the_fid << ") - this is not supported and may even lead to a crash!" );
225 }
227 m_alreadyConnected = true;
228 }
229 }
230 }
231 } /* not PFN */
233 m_the_fid = m_catalog.lookupLFN( m_name );
234 }
235 if ( ! m_the_fid.empty() ) {
238 }
239 return m_the_fid;
240 }
241 return emptyString;
242 }
243}
#define ATH_MSG_WARNING(x,...)
static const std::string & emptyString
int majorType() const
Access to major type.
Definition DbType.h:67
int type() const
Access to full type.
Definition DbType.h:65
static DbType getType(const std::string &name)
Access known storage type object by name.
virtual long technology() const override
Returns the technology identifier for this database.
static const DbType ROOT_StorageType
Definition DbType.h:85

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)
int outputLevel(const IMessageSvc *ims, const std::string &source)

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 167 of file AthMessaging.h.

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels).
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 182 of file AthMessaging.h.

183{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 // If user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ openMode()

Io::IoFlag pool::UserDatabase::openMode ( ) const
overridevirtual

Returns the opening mode. It can be used to check whether the database is connected.

Implements pool::IDatabase.

Definition at line 182 of file UserDatabase.cxx.

183{
184 return m_openMode;
185}

◆ pfn()

const std::string & pool::UserDatabase::pfn ( )
overridevirtual

Returns the physical file name of this database.

Implements pool::IDatabase.

Definition at line 247 of file UserDatabase.cxx.

248{
249 if( m_databaseHandler ) return m_databaseHandler->pfn();
251 if( ! m_the_pfn.empty() ) return m_the_pfn;
252
254 m_the_fid = m_catalog.lookupLFN( m_name );
255 if ( ! m_the_fid.empty() ) {
258 // go from FID=>PFN in the next step
259 }
260 }
262 std::string technology;
263 m_catalog.getFirstPFN( m_name, m_the_pfn, technology );
264 if( !m_the_pfn.empty() ) {
267 m_alreadyConnected = true;
268 }
269 return m_the_pfn;
270 }
271 return emptyString;
272}

◆ setAttribute()

template<class T>
bool pool::ITechnologySpecificAttributes::setAttribute ( const std::string & attributeName,
const T & atttibuteValue,
const std::string & option = "" )
inlineinherited

Templated method to set an attribute.

Definition at line 41 of file ITechnologySpecificAttributes.h.

43 {
44 return this->setAttributeOfType( attributeName,
45 static_cast< const void* >( &atttibuteValue ),
46 typeid(T),
47 option );
48 }
virtual bool setAttributeOfType(const std::string &attributeName, const void *data, const std::type_info &typeInfo, const std::string &option)=0
The actual method setting the attribute data given a name.

◆ setAttributeOfType()

bool pool::UserDatabase::setAttributeOfType ( const std::string & attributeName,
const void * data,
const std::type_info & typeInfo,
const std::string & option )
overrideprotectedvirtual

The actual method setting the attribute data given a name.

Implements pool::ITechnologySpecificAttributes.

Definition at line 374 of file UserDatabase.cxx.

378{
379 if ( ! m_databaseHandler ) return false;
380 else return m_databaseHandler->setAttribute( attributeName, data, typeInfo, option );
381}

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

◆ setTechnology()

bool pool::UserDatabase::setTechnology ( long technology)
overridevirtual

Sets the technology identifier for this database.

This can only be called for newly created databases before the connect method is called. Otherwise false is returned.

Implements pool::IDatabase.

Definition at line 276 of file UserDatabase.cxx.

277{
278 if ( m_alreadyConnected ) return false;
279 else {
280 pool::DbType dbType( technology );
281 m_technology = dbType.majorType();
282 m_technologySet = true;
283 return true;
284 }
285}

◆ technology()

long pool::UserDatabase::technology ( ) const
overridevirtual

Returns the technology identifier for this database.

Implements pool::IDatabase.

Definition at line 289 of file UserDatabase.cxx.

290{
291 return m_technology;
292}

◆ technologySpecificAttributes()

pool::ITechnologySpecificAttributes & pool::UserDatabase::technologySpecificAttributes ( )
overridevirtual

Returns the object holding the technology specific attributes.

Implements pool::IDatabase.

Definition at line 356 of file UserDatabase.cxx.

357{
358 return static_cast< pool::ITechnologySpecificAttributes& >( *this );
359}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging).

Definition at line 141 of file AthMessaging.h.

◆ m_alreadyConnected

bool pool::UserDatabase::m_alreadyConnected
private

Flag indicating whether a connection has been already made once.

Definition at line 115 of file UserDatabase.h.

◆ m_catalog

IFileCatalog& pool::UserDatabase::m_catalog
private

Reference to the file catalog.

Definition at line 97 of file UserDatabase.h.

◆ m_databaseHandler

DatabaseHandler* pool::UserDatabase::m_databaseHandler
private

The underlying database handler.

Definition at line 111 of file UserDatabase.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels).

Definition at line 132 of file AthMessaging.h.

◆ m_name

std::string pool::UserDatabase::m_name
private

The database name.

Definition at line 103 of file UserDatabase.h.

◆ m_nameType

DatabaseSpecification::NameType pool::UserDatabase::m_nameType
private

The database name spacification.

Definition at line 105 of file UserDatabase.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_openMode

Io::IoFlag pool::UserDatabase::m_openMode
private

Current open mode.

Definition at line 113 of file UserDatabase.h.

◆ m_registry

DatabaseRegistry& pool::UserDatabase::m_registry
private

Reference to the database registry.

Definition at line 101 of file UserDatabase.h.

◆ m_session

UserSession& pool::UserDatabase::m_session
private

Reference to the session.

Definition at line 95 of file UserDatabase.h.

◆ m_technology

long pool::UserDatabase::m_technology
private

The technology identifier of the database.

Definition at line 107 of file UserDatabase.h.

◆ m_technologySet

bool pool::UserDatabase::m_technologySet
private

Checks if the technology identifier has been set.

Definition at line 109 of file UserDatabase.h.

◆ m_the_fid

std::string pool::UserDatabase::m_the_fid
private

Other names used.

Definition at line 117 of file UserDatabase.h.

◆ m_the_pfn

std::string pool::UserDatabase::m_the_pfn
private

Definition at line 118 of file UserDatabase.h.

◆ m_transactionType

Io::IoFlag pool::UserDatabase::m_transactionType
private

Transaction type (read/update).

Definition at line 99 of file UserDatabase.h.


The documentation for this class was generated from the following files: