ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PgPostBankWrapperManager.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PgPostBankWrapperManager.cc
1
#include "
PgPostBankWrapperManager.h
"
2
#include "
PgPostBankWrapper.h
"
3
4
#include <pdbcalbase/PdbBankID.h>
5
6
#include <
phool/phool.h
>
7
8
#include <algorithm>
9
#include <cstdlib>
10
#include <iomanip>
11
#include <iostream>
12
#include <string>
13
14
//_____________________________________________________________________________
15
PgPostBankWrapperManager
&
16
PgPostBankWrapperManager::instance
()
17
{
18
static
PgPostBankWrapperManager
instance__;
19
return
instance__;
20
}
21
22
//_____________________________________________________________________________
23
void
PgPostBankWrapperManager::clear
()
24
{
25
// We simply clear the vector. Does not care about the pointers,
26
// as we are *not* owners.
27
fWrappers
.clear();
28
}
29
30
//_____________________________________________________________________________
31
bool
PgPostBankWrapperManager::commit
()
32
{
33
WVECTOR::const_iterator
it
;
34
35
for
(it =
fWrappers
.begin(); it !=
fWrappers
.end(); ++
it
)
36
{
37
(*it)->commit();
38
}
39
// Once committed, forget about the registered wrappers.
40
clear
();
41
return
true
;
42
}
43
44
//_____________________________________________________________________________
45
void
PgPostBankWrapperManager::print
()
const
46
{
47
WVECTOR::const_iterator
it
;
48
size_t
i = 0;
49
50
for
(it =
fWrappers
.begin(); it !=
fWrappers
.end(); ++
it
)
51
{
52
PgPostBankWrapper
* wrapper = *
it
;
53
if
(!wrapper)
54
{
55
std::cout <<
PHWHERE
<<
" invalid wrapper pointer in list, exiting"
<< std::endl;
56
exit
(1);
57
}
58
std::cout <<
"Wrapper "
<< std::setw(4) << i
59
<<
" "
60
<<
" is "
<< std::hex << wrapper
61
<<
" BankID="
<< std::dec
62
<< wrapper->
getBankID
().
getInternalValue
()
63
<<
" Table="
<< wrapper->
getTableName
()
64
<< std::endl;
65
++i;
66
}
67
}
68
69
//_____________________________________________________________________________
70
bool
PgPostBankWrapperManager::registerWrapper
(
PgPostBankWrapper
* wrapper)
71
{
72
if
(!wrapper)
73
{
74
std::cerr <<
PHWHERE
<<
"Cannot register a null wrapper!!!"
75
<< std::endl;
76
return
false
;
77
}
78
79
WVECTOR::const_iterator
it
=
80
std::find(
fWrappers
.begin(),
fWrappers
.end(), wrapper);
81
82
if
(it !=
fWrappers
.end())
83
{
84
std::cerr <<
PHWHERE
<<
"This wrapper is already registered!!!"
85
<< std::endl;
86
return
false
;
87
}
88
fWrappers
.push_back(wrapper);
89
return
true
;
90
}
91
92
//_____________________________________________________________________________
93
bool
PgPostBankWrapperManager::unregisterWrapper
(
PgPostBankWrapper
* wrapper)
94
{
95
if
(!wrapper)
96
{
97
std::cerr <<
PHWHERE
<<
"Cannot unregister a null wrapper!!!"
98
<< std::endl;
99
return
false
;
100
}
101
102
WVECTOR::iterator
it
=
103
std::find(
fWrappers
.begin(),
fWrappers
.end(), wrapper);
104
105
if
(it !=
fWrappers
.end())
106
{
107
fWrappers
.erase(it);
108
return
true
;
109
}
110
else
111
{
112
// std::cerr << PHWHERE << "This wrapper cannot be unregistered, as it's "
113
// << " not there !!!!"
114
// << std::endl;
115
return
false
;
116
}
117
}
coresoftware
blob
master
offline
database
pdbcal
pg
PgPostBankWrapperManager.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:33
using
1.8.2 with
ECCE GitHub integration