ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
PersistentDataModelTPCnv
PersistentDataModelTPCnv
DataHeader_p6.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef PERSISTENTDATAMODELTPCNV_DATAHEADER_P6_H
6
#define PERSISTENTDATAMODELTPCNV_DATAHEADER_P6_H
7
13
14
#include "
PersistentDataModel/Guid.h
"
15
#include "
SGCore/sgkey_t.h
"
16
17
#include <vector>
18
#include <string>
19
20
class
Token
;
21
22
26
class
DataHeaderForm_p6
{
27
friend
class
DataHeaderCnv_p6
;
28
29
public
:
30
using
sgkey_t
=
SG::sgkey_t
;
31
32
struct
DbRecord
{
33
Guid
fid
{};
unsigned
tech
{};
34
DbRecord
() {}
35
DbRecord
(
const
Guid
& f,
unsigned
t) :
fid
(f),
tech
(t) {}
36
bool
operator==
(
const
DbRecord
& rhs)
const
{
return
fid
==rhs.
fid
&&
tech
==rhs.
tech
; }
37
};
38
struct
ObjRecord
{
39
Guid
guid
{};
40
std::string
cont
,
key
;
41
unsigned
clid
{};
long
long
oid1
{};
42
ObjRecord
() {}
43
ObjRecord
(
const
Guid
& g,
const
std::string& c,
const
std::string& k,
unsigned
id
,
long
long
o)
44
:
guid
(g),
cont
(c),
key
(k),
clid
(id),
oid1
(o) {}
45
bool
operator==
(
const
ObjRecord
& rhs)
const
46
{
return
clid
== rhs.
clid
&&
cont
== rhs.
cont
&&
key
== rhs.
key
&&
oid1
== rhs.
oid1
; }
47
};
48
49
enum
DHVersions
{
DHverFormRef
= 600 };
50
/* DHverFormRef - has the self reference stored at the end of the provenance list
51
*/
52
53
public
:
// Constructor and Destructor
54
DataHeaderForm_p6
() {}
55
56
unsigned
int
insertDb
(
const
DbRecord& rec);
57
std::size_t
sizeDb
()
const
;
58
Guid
getDbGuid
(
unsigned
int
index
)
const
;
59
unsigned
int
getDbTech
(
unsigned
int
index
)
const
;
60
61
unsigned
int
insertObj
(
const
ObjRecord& rec,
62
const
std::vector<std::string>& alias = std::vector<std::string>(),
bool
doAliasFiletering =
true
,
63
const
std::vector<unsigned int>& symLinks = std::vector<unsigned int>(),
64
const
std::vector<sgkey_t>& hashes = std::vector<sgkey_t>());
65
std::size_t
sizeObj
()
const
;
66
const
std::string&
getObjContainer
(
unsigned
int
index
)
const
;
67
const
std::string&
getObjKey
(
unsigned
int
index
)
const
;
68
unsigned
int
getObjType
(
unsigned
int
index
)
const
;
69
const
Guid
&
getObjClassId
(
unsigned
int
index
)
const
;
70
long
long
getObjOid1
(
unsigned
int
index
)
const
{
return
m_objRecords
[
index
].oid1; }
71
const
std::vector<std::string>&
getObjAlias
(
unsigned
int
index
)
const
;
72
const
std::vector<unsigned int>&
getObjSymLinks
(
unsigned
int
index
)
const
;
73
const
std::vector<sgkey_t>&
getObjHashes
(
unsigned
int
index
)
const
;
74
bool
isModified
()
const
;
75
void
clearModified
();
76
void
setToken
(
const
std::string& tok);
77
const
std::string&
getToken
()
const
;
78
void
resize
(
unsigned
int
size
);
79
const
std::string&
getProcessTag
()
const
{
return
m_processTag
; }
80
void
setProcessTag
(
const
std::string& tag) {
m_processTag
= tag; }
81
unsigned
version
()
const
{
return
m_version
; }
83
void
setVersion
(
const
DHVersions
ver) {
m_version
= ver; }
84
85
private
:
86
std::vector<DbRecord>
m_dbRecords
;
87
std::vector<ObjRecord>
m_objRecords
;
88
std::vector<std::vector<std::string> >
m_objAlias
;
89
std::vector<std::vector<unsigned int> >
m_objSymLinks
;
90
std::vector<std::vector<sgkey_t> >
m_objHashes
;
91
93
unsigned
m_version
{
DHverFormRef
};
95
std::string
m_processTag
;
96
97
// transient members:
99
bool
m_modified
{
true
};
101
std::string
m_token
;
102
};
103
104
110
class
DataHeader_p6
111
{
112
friend
class
DataHeaderCnv_p6
;
113
114
public
:
115
struct
FullElement
{
116
FullElement
() :
oid2
(0),
dbIdx
(0),
objIdx
(0) {}
117
FullElement
(
unsigned
long
long
o2,
unsigned
db,
unsigned
obj) :
oid2
(o2),
dbIdx
(db),
objIdx
(obj) {}
118
unsigned
long
long
oid2
;
119
unsigned
int
dbIdx
;
// index to DHForm entry with DB GUID & technology
120
unsigned
int
objIdx
;
// index to DHForm entry with object data
121
};
122
123
DataHeader_p6
() {};
124
const
std::string&
dhFormToken
()
const
;
125
void
setDhFormToken
(
const
std::string& formToken);
126
127
private
:
129
unsigned
m_commonDbIndex
{};
130
unsigned
long
long
m_commonOID2
{};
131
132
std::vector<int>
m_shortElements
;
133
std::vector<FullElement>
m_fullElements
;
134
unsigned
int
m_provenanceSize
{};
135
136
std::string
m_dhFormToken
;
137
};
138
139
#endif
Guid.h
This file contains the class definition for the Guid class (migrated from POOL).
size
size_t size() const
Number of registered mappings.
DataHeaderForm_p6::DataHeaderForm_p6
DataHeaderForm_p6()
Definition
DataHeader_p6.h:54
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::DataHeaderCnv_p6
friend class DataHeaderCnv_p6
Definition
DataHeader_p6.h:27
DataHeaderForm_p6::getProcessTag
const std::string & getProcessTag() const
Definition
DataHeader_p6.h:79
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::DHVersions
DHVersions
Definition
DataHeader_p6.h:49
DataHeaderForm_p6::DHverFormRef
@ DHverFormRef
Definition
DataHeader_p6.h:49
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::setVersion
void setVersion(const DHVersions ver)
change version if writing backward compatible format
Definition
DataHeader_p6.h:83
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::getObjOid1
long long getObjOid1(unsigned int index) const
Definition
DataHeader_p6.h:70
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::m_version
unsigned m_version
Subversion of DHForm_p6 for small changes of data encoding.
Definition
DataHeader_p6.h:93
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::sgkey_t
SG::sgkey_t sgkey_t
Definition
DataHeader_p6.h:30
DataHeaderForm_p6::isModified
bool isModified() const
Definition
DataHeader_p6.cxx:109
DataHeaderForm_p6::version
unsigned version() const
Definition
DataHeader_p6.h:81
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::m_processTag
std::string m_processTag
DataHeader SG Key.
Definition
DataHeader_p6.h:95
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::setProcessTag
void setProcessTag(const std::string &tag)
Definition
DataHeader_p6.h:80
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::DataHeader_p6
DataHeader_p6()
Definition
DataHeader_p6.h:123
DataHeader_p6::setDhFormToken
void setDhFormToken(const std::string &formToken)
Definition
DataHeader_p6.cxx:141
DataHeader_p6::DataHeaderCnv_p6
friend class DataHeaderCnv_p6
Definition
DataHeader_p6.h:112
DataHeader_p6::m_commonDbIndex
unsigned m_commonDbIndex
common DB entry index used by all short DH elements
Definition
DataHeader_p6.h:129
DataHeader_p6::dhFormToken
const std::string & dhFormToken() const
Definition
DataHeader_p6.cxx:137
DataHeader_p6::m_shortElements
std::vector< int > m_shortElements
Definition
DataHeader_p6.h:132
DataHeader_p6::m_fullElements
std::vector< FullElement > m_fullElements
Definition
DataHeader_p6.h:133
DataHeader_p6::m_dhFormToken
std::string m_dhFormToken
Definition
DataHeader_p6.h:136
DataHeader_p6::m_commonOID2
unsigned long long m_commonOID2
Definition
DataHeader_p6.h:130
DataHeader_p6::m_provenanceSize
unsigned int m_provenanceSize
Definition
DataHeader_p6.h:134
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition
sgkey_t.h:32
index
Definition
index.py:1
sgkey_t.h
DataHeaderForm_p6::DbRecord::operator==
bool operator==(const DbRecord &rhs) const
Definition
DataHeader_p6.h:36
DataHeaderForm_p6::DbRecord::DbRecord
DbRecord(const Guid &f, unsigned t)
Definition
DataHeader_p6.h:35
DataHeaderForm_p6::DbRecord::tech
unsigned tech
Definition
DataHeader_p6.h:33
DataHeaderForm_p6::DbRecord::fid
Guid fid
Definition
DataHeader_p6.h:33
DataHeaderForm_p6::DbRecord::DbRecord
DbRecord()
Definition
DataHeader_p6.h:34
DataHeaderForm_p6::ObjRecord::oid1
long long oid1
Definition
DataHeader_p6.h:41
DataHeaderForm_p6::ObjRecord::guid
Guid guid
Definition
DataHeader_p6.h:39
DataHeaderForm_p6::ObjRecord::ObjRecord
ObjRecord()
Definition
DataHeader_p6.h:42
DataHeaderForm_p6::ObjRecord::cont
std::string cont
Definition
DataHeader_p6.h:40
DataHeaderForm_p6::ObjRecord::operator==
bool operator==(const ObjRecord &rhs) const
Definition
DataHeader_p6.h:45
DataHeaderForm_p6::ObjRecord::ObjRecord
ObjRecord(const Guid &g, const std::string &c, const std::string &k, unsigned id, long long o)
Definition
DataHeader_p6.h:43
DataHeaderForm_p6::ObjRecord::key
std::string key
Definition
DataHeader_p6.h:40
DataHeaderForm_p6::ObjRecord::clid
unsigned clid
Definition
DataHeader_p6.h:41
DataHeader_p6::FullElement::objIdx
unsigned int objIdx
Definition
DataHeader_p6.h:120
DataHeader_p6::FullElement::oid2
unsigned long long oid2
Definition
DataHeader_p6.h:118
DataHeader_p6::FullElement::FullElement
FullElement()
Definition
DataHeader_p6.h:116
DataHeader_p6::FullElement::FullElement
FullElement(unsigned long long o2, unsigned db, unsigned obj)
Definition
DataHeader_p6.h:117
DataHeader_p6::FullElement::dbIdx
unsigned int dbIdx
Definition
DataHeader_p6.h:119
Generated on
for ATLAS Offline Software by
1.17.0