ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
PersistentDataModel
PersistentDataModel
DataHeader.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 PERSISTENTDATAMODEL_DATAHEADER_H
6
#define PERSISTENTDATAMODEL_DATAHEADER_H
7
12
13
#include "GaudiKernel/ClassID.h"
14
#include "GaudiKernel/DataObject.h"
15
16
#include "
PersistentDataModel/Token.h
"
17
#include "
SGCore/sgkey_t.h
"
18
19
#include <string>
20
#include <set>
21
#include <vector>
22
23
// Forward declarations
24
class
IOpaqueAddress;
25
namespace
SG
{
26
class
TransientAddress
;
27
class
DataProxy
;
28
}
29
namespace
coral
{
30
class
AttributeList;
31
}
32
class
IStringPool
;
33
37
class
DataHeaderElement
{
38
public
:
// Constructor and Destructor
39
using
sgkey_t
=
SG::sgkey_t
;
40
42
DataHeaderElement
();
44
DataHeaderElement
(
const
DataHeaderElement
& rhs);
45
49
DataHeaderElement
(
const
SG::TransientAddress
* sgAddress, IOpaqueAddress* tokAddress,
const
std::string& pTag);
50
54
DataHeaderElement
(
const
SG::DataProxy
* proxy, IOpaqueAddress* tokAddress,
const
std::string& pTag);
55
60
DataHeaderElement
(
const
CLID
classID
,
const
std::string& key,
Token
&& token);
62
virtual
~DataHeaderElement
();
63
64
public
:
// Non-static members
66
DataHeaderElement
&
operator=
(
const
DataHeaderElement
& rhs);
67
69
CLID
getPrimaryClassID
()
const
;
71
const
std::set<CLID>
getClassIDs
()
const
;
73
const
std::string&
getKey
()
const
;
75
const
std::vector<std::string>&
getAlias
()
const
;
77
const
Token
*
getToken
()
const
;
80
const
std::vector<sgkey_t>&
getHashes
()
const
;
82
SG::TransientAddress
*
getAddress
(
long
storageType )
const
;
84
SG::TransientAddress
*
getAddress
(
long
storageType,
const
std::string& key )
const
;
86
void
addHash
(
IStringPool
*
pool
);
87
88
void
dump
(std::ostream& ostr)
const
;
89
90
private
:
91
friend
class
DataHeaderElementCnv_p3
;
92
friend
class
DataHeaderElementCnv_p4
;
93
friend
class
DataHeaderElementCnv_p5
;
94
friend
class
DataHeaderCnv_p6
;
95
97
DataHeaderElement
(
CLID
clid,
98
const
std::string& name,
99
const
std::vector<CLID>& tClids,
100
std::vector<std::string>&& alias,
101
IOpaqueAddress* tadAddress,
102
IOpaqueAddress* tokAddress,
const
std::string& pTag);
103
105
CLID
m_pClid
;
107
std::vector<CLID>
m_clids
;
109
std::string
m_key
;
111
std::vector<std::string>
m_alias
;
113
Token
m_token
;
115
std::vector<sgkey_t>
m_hashes
;
116
};
117
121
class
DataHeader
122
:
public
DataObject
// Derive from DataObject so that it can be recyclable.
123
{
124
public
:
125
enum
statusFlag
{
Output
,
Input
,
Other
};
126
127
public
:
// Constructor and Destructor
129
DataHeader
();
131
DataHeader
(
const
DataHeader
& rhs);
133
virtual
~DataHeader
();
134
135
public
:
// Non-static members
137
DataHeader
&
operator=
(
const
DataHeader
& rhs);
138
140
void
setStatus
(
statusFlag
status);
142
bool
isInput
()
const
;
143
146
void
setProcessTag
(
const
std::string& processTag);
148
const
std::string&
getProcessTag
()
const
;
149
151
int
size
()
const
;
153
std::vector<DataHeaderElement>::const_iterator
begin
()
const
;
155
std::vector<DataHeaderElement>::const_iterator
end
()
const
;
157
const
std::vector<DataHeaderElement>&
elements
()
const
;
158
162
void
insert
(
const
SG::TransientAddress
* sgAddress, IOpaqueAddress* tokAddress = 0,
const
std::string& pTag =
""
);
166
void
insert
(
const
SG::DataProxy
* proxy, IOpaqueAddress* tokAddress = 0,
const
std::string& pTag =
""
);
169
void
insert
(
const
DataHeaderElement
& dhe);
170
172
int
sizeProvenance
()
const
;
174
std::vector<DataHeaderElement>::const_iterator
beginProvenance
()
const
;
176
std::vector<DataHeaderElement>::const_iterator
endProvenance
()
const
;
177
180
void
insertProvenance
(
const
DataHeaderElement
& dhe);
181
183
void
addHash
(
IStringPool
*
pool
);
184
186
const
std::string&
dhFormToken
()
const
;
187
void
setDhFormToken
(
const
std::string& formToken);
188
189
void
setAttributeList
(
const
coral::AttributeList* attrList);
190
const
coral::AttributeList*
getAttributeList
();
191
void
setEvtRefTokenStr
(
const
std::string& tokenStr);
192
const
std::string&
getEvtRefTokenStr
();
193
194
void
dump
(std::ostream& ostr)
const
;
195
196
protected
:
198
virtual
void
recycle
();
199
200
201
private
:
202
friend
class
DataHeaderCnv_p3
;
203
friend
class
DataHeaderCnv_p4
;
204
friend
class
DataHeaderCnv_p5
;
205
friend
class
DataHeaderCnv_p6
;
206
friend
class
DataHeaderCnv
;
207
209
std::vector<DataHeaderElement>
m_dataHeader
;
211
std::vector<DataHeaderElement>
m_inputDataHeader
;
213
statusFlag
m_status
;
215
std::string
m_processTag
;
217
const
coral::AttributeList*
m_attrList
;
219
std::string
m_evtRefTokenStr
;
221
std::string
m_dhFormToken
;
222
};
223
224
#include "
AthenaKernel/CLASS_DEF.h
"
225
CLASS_DEF
(
DataHeader
, 222376821, 1)
226
#endif
classID
static CLID classID()
CLASS_DEF.h
macros to associate a CLID to a type
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition
Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
Token.h
This file contains the class definition for the Token class (migrated from POOL).
DataHeaderElement
This class provides a persistent form for the TransientAddress.
Definition
DataHeader.h:37
DataHeaderElement::m_pClid
CLID m_pClid
primary ClassID.
Definition
DataHeader.h:105
DataHeaderElement::getAddress
SG::TransientAddress * getAddress(long storageType) const
Definition
DataHeader.cxx:144
DataHeaderElement::getAlias
const std::vector< std::string > & getAlias() const
Definition
DataHeader.cxx:121
DataHeaderElement::DataHeaderCnv_p6
friend class DataHeaderCnv_p6
Definition
DataHeader.h:94
DataHeaderElement::DataHeaderElement
DataHeaderElement()
Default Constructor.
Definition
DataHeader.cxx:19
DataHeaderElement::m_key
std::string m_key
string with StoreGate key.
Definition
DataHeader.h:109
DataHeaderElement::m_alias
std::vector< std::string > m_alias
vector of StoreGate alias string.
Definition
DataHeader.h:111
DataHeaderElement::getToken
const Token * getToken() const
Definition
DataHeader.cxx:125
DataHeaderElement::getPrimaryClassID
CLID getPrimaryClassID() const
Definition
DataHeader.cxx:104
DataHeaderElement::~DataHeaderElement
virtual ~DataHeaderElement()
Destructor.
Definition
DataHeader.cxx:89
DataHeaderElement::sgkey_t
SG::sgkey_t sgkey_t
Definition
DataHeader.h:39
DataHeaderElement::m_clids
std::vector< CLID > m_clids
vector of unsigned long to store ClassID's for symlinked container.
Definition
DataHeader.h:107
DataHeaderElement::getHashes
const std::vector< sgkey_t > & getHashes() const
Definition
DataHeader.cxx:130
DataHeaderElement::DataHeaderElementCnv_p3
friend class DataHeaderElementCnv_p3
Definition
DataHeader.h:91
DataHeaderElement::m_hashes
std::vector< sgkey_t > m_hashes
hash table for ElementLink host container keys.
Definition
DataHeader.h:115
DataHeaderElement::getClassIDs
const std::set< CLID > getClassIDs() const
Definition
DataHeader.cxx:111
DataHeaderElement::m_token
Token m_token
Transient address token.
Definition
DataHeader.h:113
DataHeaderElement::operator=
DataHeaderElement & operator=(const DataHeaderElement &rhs)
Assignment Operator.
Definition
DataHeader.cxx:92
DataHeaderElement::addHash
void addHash(IStringPool *pool)
Add new entry to hash map.
Definition
DataHeader.cxx:134
DataHeaderElement::DataHeaderElementCnv_p5
friend class DataHeaderElementCnv_p5
Definition
DataHeader.h:93
DataHeaderElement::getKey
const std::string & getKey() const
Definition
DataHeader.cxx:117
DataHeaderElement::DataHeaderElementCnv_p4
friend class DataHeaderElementCnv_p4
Definition
DataHeader.h:92
DataHeader
This class provides the layout for summary information stored for data written to POOL.
Definition
DataHeader.h:123
DataHeader::addHash
void addHash(IStringPool *pool)
Add new entry to hash map.
Definition
DataHeader.cxx:291
DataHeader::sizeProvenance
int sizeProvenance() const
Definition
DataHeader.cxx:275
DataHeader::beginProvenance
std::vector< DataHeaderElement >::const_iterator beginProvenance() const
Definition
DataHeader.cxx:279
DataHeader::DataHeaderCnv_p3
friend class DataHeaderCnv_p3
Definition
DataHeader.h:202
DataHeader::m_status
statusFlag m_status
StatusFlag (i.e.: Output, Primary, Input, Manual, Other).
Definition
DataHeader.h:213
DataHeader::endProvenance
std::vector< DataHeaderElement >::const_iterator endProvenance() const
Definition
DataHeader.cxx:283
DataHeader::m_dhFormToken
std::string m_dhFormToken
Token to the DH format object.
Definition
DataHeader.h:221
DataHeader::DataHeaderCnv_p6
friend class DataHeaderCnv_p6
Definition
DataHeader.h:205
DataHeader::DataHeaderCnv_p4
friend class DataHeaderCnv_p4
Definition
DataHeader.h:203
DataHeader::begin
std::vector< DataHeaderElement >::const_iterator begin() const
Definition
DataHeader.cxx:249
DataHeader::DataHeaderCnv
friend class DataHeaderCnv
Definition
DataHeader.h:206
DataHeader::DataHeader
DataHeader()
Default Constructor.
Definition
DataHeader.cxx:197
DataHeader::setDhFormToken
void setDhFormToken(const std::string &formToken)
Definition
DataHeader.cxx:307
DataHeader::setStatus
void setStatus(statusFlag status)
Set StatusFlag enum for DataHeader.
Definition
DataHeader.cxx:229
DataHeader::recycle
virtual void recycle()
Called before this object is recycled.
Definition
DataHeader.cxx:349
DataHeader::insertProvenance
void insertProvenance(const DataHeaderElement &dhe)
Insert a new element into the "Provenance" vector.
Definition
DataHeader.cxx:287
DataHeader::elements
const std::vector< DataHeaderElement > & elements() const
Definition
DataHeader.cxx:257
DataHeader::setEvtRefTokenStr
void setEvtRefTokenStr(const std::string &tokenStr)
Definition
DataHeader.cxx:320
DataHeader::end
std::vector< DataHeaderElement >::const_iterator end() const
Definition
DataHeader.cxx:253
DataHeader::getProcessTag
const std::string & getProcessTag() const
Definition
DataHeader.cxx:241
DataHeader::m_processTag
std::string m_processTag
ProcessTag (e.g.: "StreamESD", "StreamAOD" ...).
Definition
DataHeader.h:215
DataHeader::dhFormToken
const std::string & dhFormToken() const
Form token, to be able to tell when the form changes.
Definition
DataHeader.cxx:302
DataHeader::m_inputDataHeader
std::vector< DataHeaderElement > m_inputDataHeader
vector with DataHeaderElement to upstream DataHeader ("Provenance").
Definition
DataHeader.h:211
DataHeader::m_dataHeader
std::vector< DataHeaderElement > m_dataHeader
vector with DataHeaderElement to "DataObject".
Definition
DataHeader.h:209
DataHeader::setAttributeList
void setAttributeList(const coral::AttributeList *attrList)
Definition
DataHeader.cxx:312
DataHeader::~DataHeader
virtual ~DataHeader()
Destructor.
Definition
DataHeader.cxx:215
DataHeader::operator=
DataHeader & operator=(const DataHeader &rhs)
Assignment Operator.
Definition
DataHeader.cxx:218
DataHeader::m_attrList
const coral::AttributeList * m_attrList
Optional pointer to AttributeList to enable writing of TAG Attributes to Payload files.
Definition
DataHeader.h:217
DataHeader::isInput
bool isInput() const
Check whether StatusFlag is "Input".
Definition
DataHeader.cxx:233
DataHeader::insert
void insert(const SG::TransientAddress *sgAddress, IOpaqueAddress *tokAddress=0, const std::string &pTag="")
Insert a new element into the "DataObject" vector.
Definition
DataHeader.cxx:261
DataHeader::DataHeaderCnv_p5
friend class DataHeaderCnv_p5
Definition
DataHeader.h:204
DataHeader::size
int size() const
Definition
DataHeader.cxx:245
DataHeader::getEvtRefTokenStr
const std::string & getEvtRefTokenStr()
Definition
DataHeader.cxx:324
DataHeader::getAttributeList
const coral::AttributeList * getAttributeList()
Definition
DataHeader.cxx:316
DataHeader::statusFlag
statusFlag
Definition
DataHeader.h:125
DataHeader::Output
@ Output
Definition
DataHeader.h:125
DataHeader::Other
@ Other
Definition
DataHeader.h:125
DataHeader::Input
@ Input
Definition
DataHeader.h:125
DataHeader::setProcessTag
void setProcessTag(const std::string &processTag)
Set ProcessTag for DataHeader.
Definition
DataHeader.cxx:237
DataHeader::m_evtRefTokenStr
std::string m_evtRefTokenStr
Optional Token String for Event Reference to enable writing of TAG to Payload files.
Definition
DataHeader.h:219
IStringPool
Abstract interface for looking up strings/CLIDs in a pool.
Definition
IStringPool.h:28
SG::DataProxy
Definition
DataProxy.h:45
SG::TransientAddress
Definition
TransientAddress.h:34
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition
sgkey_t.h:32
coral
Definition
ISecondaryEventSelector.h:19
dump
-event-from-file
pool
Framework include files.
Definition
libname.h:15
sgkey_t.h
Generated on
for ATLAS Offline Software by
1.17.0