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

#include <DatabaseRegistry.h>

Collaboration diagram for pool::DatabaseRegistry:

Public Types

typedef std::set< DatabaseHandler * >::iterator iterator
typedef std::set< DatabaseHandler * >::const_iterator const_iterator

Public Member Functions

 DatabaseRegistry ()
 Constructor.
 ~DatabaseRegistry ()
 Destructor.
void registerDatabaseHandler (DatabaseHandler *dbHandler)
 Registers a database.
void registerDatabaseHandler (DatabaseHandler *dbHandler, const std::string &lfn)
 Registers a database with an LFN.
void deregisterDatabaseHandler (DatabaseHandler *dbHandler)
 Deregisters a database.
DatabaseHandler * lookupByFID (const std::string &fid)
 Looks up a database by its file id.
DatabaseHandler * lookupByPFN (const std::string &pfn)
 Looks up a database by its physical file name.
DatabaseHandler * lookupByLFN (const std::string &lfn)
 Looks up a database by its logical file name.
iterator begin ()
 The begin iterators.
const_iterator begin () const
iterator end ()
 The end iterators.
const_iterator end () const
std::size_t size () const
 The number of elements registered.

Private Member Functions

std::set< DatabaseHandler * >::iterator registerDbHandler (DatabaseHandler *dbHandler)

Private Attributes

std::set< DatabaseHandler * > m_databases
std::map< std::string, DatabaseHandler * > m_fidToDb
std::map< std::string, DatabaseHandler * > m_pfnToDb
std::map< std::string, DatabaseHandler * > m_lfnToDb
std::map< std::string, std::set< std::string > > m_fidToLfns

Detailed Description

Definition at line 17 of file DatabaseRegistry.h.

Member Typedef Documentation

◆ const_iterator

typedef std::set<DatabaseHandler*>::const_iterator pool::DatabaseRegistry::const_iterator

Definition at line 45 of file DatabaseRegistry.h.

◆ iterator

typedef std::set<DatabaseHandler*>::iterator pool::DatabaseRegistry::iterator

Definition at line 44 of file DatabaseRegistry.h.

Constructor & Destructor Documentation

◆ DatabaseRegistry()

pool::DatabaseRegistry::DatabaseRegistry ( )
explicit

Constructor.

Definition at line 9 of file DatabaseRegistry.cxx.

10{}

◆ ~DatabaseRegistry()

pool::DatabaseRegistry::~DatabaseRegistry ( )

Destructor.

Definition at line 13 of file DatabaseRegistry.cxx.

14{}

Member Function Documentation

◆ begin() [1/2]

iterator pool::DatabaseRegistry::begin ( )

The begin iterators.

◆ begin() [2/2]

const_iterator pool::DatabaseRegistry::begin ( ) const

◆ deregisterDatabaseHandler()

void pool::DatabaseRegistry::deregisterDatabaseHandler ( pool::DatabaseHandler * dbHandler)

Deregisters a database.

Definition at line 49 of file DatabaseRegistry.cxx.

50{
51 std::set< pool::DatabaseHandler* >::iterator idb = m_databases.find( dbHandler );
52 if ( idb != m_databases.end() ) {
53 m_fidToDb.erase( (*idb)->fid() );
54 m_pfnToDb.erase( (*idb)->pfn() );
55
56 std::map< std::string, std::set< std::string > >::iterator iLfnSet = m_fidToLfns.find( (*idb)->fid() );
57 if ( iLfnSet != m_fidToLfns.end() ) {
58 for ( std::set< std::string >::iterator iLfn = iLfnSet->second.begin();
59 iLfn != iLfnSet->second.end(); ++iLfn ) {
60 m_lfnToDb.erase( *iLfn );
61 }
62 m_fidToLfns.erase( iLfnSet );
63 }
64
65 m_databases.erase( idb );
66 }
67}
std::map< std::string, std::set< std::string > > m_fidToLfns
std::map< std::string, DatabaseHandler * > m_lfnToDb
std::set< DatabaseHandler * >::iterator iterator
std::map< std::string, DatabaseHandler * > m_fidToDb
std::set< DatabaseHandler * > m_databases
std::map< std::string, DatabaseHandler * > m_pfnToDb

◆ end() [1/2]

iterator pool::DatabaseRegistry::end ( )

The end iterators.

◆ end() [2/2]

const_iterator pool::DatabaseRegistry::end ( ) const

◆ lookupByFID()

DatabaseHandler * pool::DatabaseRegistry::lookupByFID ( const std::string & fid)

Looks up a database by its file id.

◆ lookupByLFN()

DatabaseHandler * pool::DatabaseRegistry::lookupByLFN ( const std::string & lfn)

Looks up a database by its logical file name.

◆ lookupByPFN()

DatabaseHandler * pool::DatabaseRegistry::lookupByPFN ( const std::string & pfn)

Looks up a database by its physical file name.

◆ registerDatabaseHandler() [1/2]

void pool::DatabaseRegistry::registerDatabaseHandler ( pool::DatabaseHandler * dbHandler)

Registers a database.

Definition at line 31 of file DatabaseRegistry.cxx.

32{
33 this->registerDbHandler( dbHandler );
34}
std::set< DatabaseHandler * >::iterator registerDbHandler(DatabaseHandler *dbHandler)

◆ registerDatabaseHandler() [2/2]

void pool::DatabaseRegistry::registerDatabaseHandler ( pool::DatabaseHandler * dbHandler,
const std::string & lfn )

Registers a database with an LFN.

Definition at line 38 of file DatabaseRegistry.cxx.

40{
41 std::set< pool::DatabaseHandler* >::iterator iDatabase = this->registerDbHandler( dbHandler );
42 const std::string& fid = (*iDatabase)->fid();
43 m_fidToLfns.find( fid )->second.insert( lfn );
44 m_lfnToDb.insert ( std::make_pair( lfn, *iDatabase ) );
45}

◆ registerDbHandler()

std::set< pool::DatabaseHandler * >::iterator pool::DatabaseRegistry::registerDbHandler ( pool::DatabaseHandler * dbHandler)
private

Definition at line 17 of file DatabaseRegistry.cxx.

18{
19 std::set< pool::DatabaseHandler* >::iterator iDatabase = m_databases.find( dbHandler );
20 if ( iDatabase == m_databases.end() ) {
21 iDatabase = m_databases.insert( dbHandler ).first;
22 m_fidToDb.insert( std::make_pair( dbHandler->fid(), dbHandler ) );
23 m_pfnToDb.insert( std::make_pair( dbHandler->pfn(), dbHandler ) );
24 m_fidToLfns.insert( std::make_pair( dbHandler->fid(),
25 std::set< std::string >() ) );
26 }
27 return iDatabase;
28}
const std::string & pfn() const
Returns the physical file name.
const std::string & fid() const
Returns the file identifier.

◆ size()

std::size_t pool::DatabaseRegistry::size ( ) const

The number of elements registered.

Member Data Documentation

◆ m_databases

std::set< DatabaseHandler* > pool::DatabaseRegistry::m_databases
private

Definition at line 59 of file DatabaseRegistry.h.

◆ m_fidToDb

std::map< std::string, DatabaseHandler* > pool::DatabaseRegistry::m_fidToDb
private

Definition at line 60 of file DatabaseRegistry.h.

◆ m_fidToLfns

std::map< std::string, std::set< std::string > > pool::DatabaseRegistry::m_fidToLfns
private

Definition at line 63 of file DatabaseRegistry.h.

◆ m_lfnToDb

std::map< std::string, DatabaseHandler* > pool::DatabaseRegistry::m_lfnToDb
private

Definition at line 62 of file DatabaseRegistry.h.

◆ m_pfnToDb

std::map< std::string, DatabaseHandler* > pool::DatabaseRegistry::m_pfnToDb
private

Definition at line 61 of file DatabaseRegistry.h.


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