ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
PersistentDataModelTPCnv
src
DataHeader_p6.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
PersistentDataModelTPCnv/DataHeader_p6.h
"
6
#include "
PersistentDataModel/Token.h
"
7
8
#include "
CxxUtils/MD5.h
"
9
10
#include <uuid/uuid.h>
11
12
static_assert
(std::is_nothrow_move_constructible<DataHeaderForm_p6>::value);
13
14
15
unsigned
int
DataHeaderForm_p6::insertDb
(
const
DbRecord
& rec) {
16
unsigned
int
index
= 0U;
17
for
(std::vector<DbRecord>::const_iterator iter =
m_dbRecords
.begin(), last =
m_dbRecords
.end();
18
iter != last; ++iter, ++
index
) {
19
if
(*iter == rec)
break
;
20
}
21
if
(
index
==
m_dbRecords
.size()) {
22
m_dbRecords
.push_back(rec);
23
m_modified
=
true
;
24
}
25
return
(
index
);
26
}
27
28
std::size_t
DataHeaderForm_p6::sizeDb
()
const
{
29
return
(
m_dbRecords
.size());
30
}
31
32
Guid
DataHeaderForm_p6::getDbGuid
(
unsigned
int
index
)
const
{
33
return
m_dbRecords
[
index
].fid;
34
}
35
36
unsigned
int
DataHeaderForm_p6::getDbTech
(
unsigned
int
index
)
const
{
37
return
m_dbRecords
[
index
].tech;
38
}
39
40
unsigned
int
DataHeaderForm_p6::insertObj
(
const
ObjRecord
& rec,
41
const
std::vector<std::string>& aliases,
bool
doAliasFiltering,
42
const
std::vector<unsigned int>& symLinks,
43
const
std::vector<sgkey_t>& hashes)
44
{
45
unsigned
int
index
= 0U;
46
for
(std::vector<ObjRecord>::const_iterator iter =
m_objRecords
.begin(), last =
m_objRecords
.end();
47
iter != last; ++iter, ++
index
) {
48
if
(*iter == rec)
break
;
49
}
50
if
(
index
!=
m_objRecords
.size()) {
51
// found matching object record, check if all the info is the same
52
if
(
m_objSymLinks
[
index
] != symLinks ) {
53
m_objSymLinks
[
index
] = symLinks;
54
m_modified
=
true
;
55
}
56
if
(
m_objHashes
[
index
] != hashes ) {
57
m_objHashes
[
index
] = hashes;
58
m_modified
=
true
;
59
}
60
if
( (!doAliasFiltering or
m_modified
) and
m_objAlias
[
index
] != aliases ) {
61
m_objAlias
[
index
] = aliases;
62
m_modified
=
true
;
63
}
64
return
index
;
65
}
66
// enter a new record
67
m_objRecords
.push_back( rec );
68
m_objAlias
.push_back( aliases );
69
m_objSymLinks
.push_back( symLinks );
70
m_objHashes
.push_back( hashes );
71
m_modified
=
true
;
72
return
m_objRecords
.size() - 1;
73
}
74
75
std::size_t
DataHeaderForm_p6::sizeObj
()
const
{
76
return
(
m_objRecords
.size());
77
}
78
79
const
std::string&
DataHeaderForm_p6::getObjContainer
(
unsigned
int
index
)
const
{
80
return
m_objRecords
[
index
].cont;
81
}
82
83
const
std::string&
DataHeaderForm_p6::getObjKey
(
unsigned
int
index
)
const
{
84
return
m_objRecords
[
index
].key;
85
}
86
87
unsigned
int
DataHeaderForm_p6::getObjType
(
unsigned
int
index
)
const
{
88
return
m_objRecords
[
index
].clid;
89
}
90
91
const
Guid
&
DataHeaderForm_p6::getObjClassId
(
unsigned
int
index
)
const
{
92
return
m_objRecords
[
index
].guid;
93
}
94
95
const
std::vector<std::string>&
DataHeaderForm_p6::getObjAlias
(
unsigned
int
index
)
const
{
96
return
m_objAlias
[
index
];
97
}
98
99
const
std::vector<unsigned int>&
100
DataHeaderForm_p6::getObjSymLinks
(
unsigned
int
index
)
const
{
101
return
m_objSymLinks
[
index
];
102
}
103
104
const
std::vector<DataHeaderForm_p6::sgkey_t>&
105
DataHeaderForm_p6::getObjHashes
(
unsigned
int
index
)
const
{
106
return
(
m_objHashes
[
index
]);
107
}
108
109
bool
DataHeaderForm_p6::isModified
()
const
{
110
return
m_modified
;
111
}
112
113
void
DataHeaderForm_p6::clearModified
() {
114
m_modified
=
false
;
115
}
116
117
void
DataHeaderForm_p6::setToken
(
const
std::string& tok )
118
{
119
m_token
= tok;
120
}
121
122
const
std::string&
DataHeaderForm_p6::getToken
()
const
{
123
return
m_token
;
124
}
125
126
void
DataHeaderForm_p6::resize
(
unsigned
int
size
) {
127
m_objRecords
.reserve(
size
);
128
m_objAlias
.reserve(
size
);
129
m_objSymLinks
.reserve(
size
);
130
m_objHashes
.reserve(
size
);
131
}
132
133
134
135
//---------------------------------------------------------------------
136
137
const
std::string&
DataHeader_p6::dhFormToken
()
const
{
138
return
(
m_dhFormToken
);
139
}
140
141
void
DataHeader_p6::setDhFormToken
(
const
std::string& formToken) {
142
m_dhFormToken
= formToken;
143
}
144
DataHeader_p6.h
This file contains the class definitions for the DataHeader_p6 and DataHeaderForm_p6.
MD5.h
solar's public-domain MD5, wrapped for C++.
size
size_t size() const
Number of registered mappings.
Token.h
This file contains the class definition for the Token class (migrated from POOL).
DataHeaderForm_p6::getToken
const std::string & getToken() const
Definition
DataHeader_p6.cxx:122
DataHeaderForm_p6::m_objAlias
std::vector< std::vector< std::string > > m_objAlias
Definition
DataHeader_p6.h:88
DataHeaderForm_p6::m_token
std::string m_token
Reference to self in the persistent storage.
Definition
DataHeader_p6.h:101
DataHeaderForm_p6::getObjKey
const std::string & getObjKey(unsigned int index) const
Definition
DataHeader_p6.cxx:83
DataHeaderForm_p6::getDbTech
unsigned int getDbTech(unsigned int index) const
Definition
DataHeader_p6.cxx:36
DataHeaderForm_p6::getObjClassId
const Guid & getObjClassId(unsigned int index) const
Definition
DataHeader_p6.cxx:91
DataHeaderForm_p6::m_objSymLinks
std::vector< std::vector< unsigned int > > m_objSymLinks
Definition
DataHeader_p6.h:89
DataHeaderForm_p6::sizeObj
std::size_t sizeObj() const
Definition
DataHeader_p6.cxx:75
DataHeaderForm_p6::m_objRecords
std::vector< ObjRecord > m_objRecords
Definition
DataHeader_p6.h:87
DataHeaderForm_p6::insertDb
unsigned int insertDb(const DbRecord &rec)
Definition
DataHeader_p6.cxx:15
DataHeaderForm_p6::setToken
void setToken(const std::string &tok)
Definition
DataHeader_p6.cxx:117
DataHeaderForm_p6::getDbGuid
Guid getDbGuid(unsigned int index) const
Definition
DataHeader_p6.cxx:32
DataHeaderForm_p6::getObjContainer
const std::string & getObjContainer(unsigned int index) const
Definition
DataHeader_p6.cxx:79
DataHeaderForm_p6::resize
void resize(unsigned int size)
Definition
DataHeader_p6.cxx:126
DataHeaderForm_p6::sizeDb
std::size_t sizeDb() const
Definition
DataHeader_p6.cxx:28
DataHeaderForm_p6::clearModified
void clearModified()
Definition
DataHeader_p6.cxx:113
DataHeaderForm_p6::getObjType
unsigned int getObjType(unsigned int index) const
Definition
DataHeader_p6.cxx:87
DataHeaderForm_p6::isModified
bool isModified() const
Definition
DataHeader_p6.cxx:109
DataHeaderForm_p6::getObjHashes
const std::vector< sgkey_t > & getObjHashes(unsigned int index) const
Definition
DataHeader_p6.cxx:105
DataHeaderForm_p6::m_modified
bool m_modified
indicates that the last event was somehow different and a new DHForm needs to be written
Definition
DataHeader_p6.h:99
DataHeaderForm_p6::m_objHashes
std::vector< std::vector< sgkey_t > > m_objHashes
Definition
DataHeader_p6.h:90
DataHeaderForm_p6::getObjSymLinks
const std::vector< unsigned int > & getObjSymLinks(unsigned int index) const
Definition
DataHeader_p6.cxx:100
DataHeaderForm_p6::insertObj
unsigned int insertObj(const ObjRecord &rec, const std::vector< std::string > &alias=std::vector< std::string >(), bool doAliasFiletering=true, const std::vector< unsigned int > &symLinks=std::vector< unsigned int >(), const std::vector< sgkey_t > &hashes=std::vector< sgkey_t >())
Definition
DataHeader_p6.cxx:40
DataHeaderForm_p6::getObjAlias
const std::vector< std::string > & getObjAlias(unsigned int index) const
Definition
DataHeader_p6.cxx:95
DataHeaderForm_p6::m_dbRecords
std::vector< DbRecord > m_dbRecords
Definition
DataHeader_p6.h:86
DataHeader_p6::setDhFormToken
void setDhFormToken(const std::string &formToken)
Definition
DataHeader_p6.cxx:141
DataHeader_p6::dhFormToken
const std::string & dhFormToken() const
Definition
DataHeader_p6.cxx:137
DataHeader_p6::m_dhFormToken
std::string m_dhFormToken
Definition
DataHeader_p6.h:136
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
index
Definition
index.py:1
DataHeaderForm_p6::DbRecord
Definition
DataHeader_p6.h:32
DataHeaderForm_p6::ObjRecord
Definition
DataHeader_p6.h:38
Generated on
for ATLAS Offline Software by
1.17.0