ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
AthenaPOOL
PoolSvc
src
DatabaseRegistry.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include <cstdio>
6
#include "
DatabaseRegistry.h
"
7
#include "
DatabaseHandler.h
"
8
9
pool::DatabaseRegistry::DatabaseRegistry
()
10
{}
11
12
13
pool::DatabaseRegistry::~DatabaseRegistry
()
14
{}
15
16
std::set< pool::DatabaseHandler* >::iterator
17
pool::DatabaseRegistry::registerDbHandler
(
pool::DatabaseHandler
* dbHandler )
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
}
29
30
void
31
pool::DatabaseRegistry::registerDatabaseHandler
(
pool::DatabaseHandler
* dbHandler )
32
{
33
this->
registerDbHandler
( dbHandler );
34
}
35
36
37
void
38
pool::DatabaseRegistry::registerDatabaseHandler
(
pool::DatabaseHandler
* dbHandler,
39
const
std::string& lfn )
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
}
46
47
48
void
49
pool::DatabaseRegistry::deregisterDatabaseHandler
(
pool::DatabaseHandler
* dbHandler )
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
}
DatabaseHandler.h
DatabaseRegistry.h
pool::DatabaseHandler
DatabaseHandler is a class taking care of the micro-connections and the micro transactions for a give...
Definition
DatabaseHandler.h:30
pool::DatabaseHandler::pfn
const std::string & pfn() const
Returns the physical file name.
Definition
DatabaseHandler.cxx:101
pool::DatabaseHandler::fid
const std::string & fid() const
Returns the file identifier.
Definition
DatabaseHandler.cxx:108
pool::DatabaseRegistry::m_fidToLfns
std::map< std::string, std::set< std::string > > m_fidToLfns
Definition
DatabaseRegistry.h:63
pool::DatabaseRegistry::m_lfnToDb
std::map< std::string, DatabaseHandler * > m_lfnToDb
Definition
DatabaseRegistry.h:62
pool::DatabaseRegistry::iterator
std::set< DatabaseHandler * >::iterator iterator
Definition
DatabaseRegistry.h:44
pool::DatabaseRegistry::m_fidToDb
std::map< std::string, DatabaseHandler * > m_fidToDb
Definition
DatabaseRegistry.h:60
pool::DatabaseRegistry::deregisterDatabaseHandler
void deregisterDatabaseHandler(DatabaseHandler *dbHandler)
Deregisters a database.
Definition
DatabaseRegistry.cxx:49
pool::DatabaseRegistry::m_databases
std::set< DatabaseHandler * > m_databases
Definition
DatabaseRegistry.h:59
pool::DatabaseRegistry::registerDatabaseHandler
void registerDatabaseHandler(DatabaseHandler *dbHandler)
Registers a database.
Definition
DatabaseRegistry.cxx:31
pool::DatabaseRegistry::registerDbHandler
std::set< DatabaseHandler * >::iterator registerDbHandler(DatabaseHandler *dbHandler)
Definition
DatabaseRegistry.cxx:17
pool::DatabaseRegistry::m_pfnToDb
std::map< std::string, DatabaseHandler * > m_pfnToDb
Definition
DatabaseRegistry.h:61
pool::DatabaseRegistry::DatabaseRegistry
DatabaseRegistry()
Constructor.
Definition
DatabaseRegistry.cxx:9
pool::DatabaseRegistry::~DatabaseRegistry
~DatabaseRegistry()
Destructor.
Definition
DatabaseRegistry.cxx:13
Generated on
for ATLAS Offline Software by
1.17.0