ATLAS Offline Software
Loading...
Searching...
No Matches
Trigger
TrigEvent
TrigSteeringEvent
src
HLTExtraData.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
12
13
#include "
TrigSteeringEvent/HLTExtraData.h
"
14
15
using namespace
HLT
;
16
17
HLTExtraData::HLTExtraData
() :
18
statusCode
(0)
19
{
20
}
21
22
HLTExtraData::HLTExtraData
(
const
std::vector<uint32_t>& storage) :
23
statusCode
(0)
24
{
25
deserialize
(storage);
26
}
27
28
HLTExtraData::HLTExtraData
(
const
HLTExtraData
& rhs)
29
:
appName
{rhs.
appName
}
30
,
statusCode
{rhs.
statusCode
}
31
,
anonymous
{rhs.
anonymous
}
32
,
m_stringSerializer
{}
// not copied (default always good)
33
{}
34
35
HLTExtraData::HLTExtraData
(
HLTExtraData
&& rhs)
36
:
HLTExtraData
{}
37
{
38
swap
(*
this
, rhs);
39
}
40
41
//coverity[PASS_BY_VALUE]
42
HLTExtraData
&
HLTExtraData::operator=
(
HLTExtraData
rhs)
43
{
44
swap
(*
this
, rhs);
45
return
*
this
;
46
}
47
48
void
HLTExtraData::serialize
(std::vector<uint32_t>& storage)
49
{
50
if
(
empty
())
return
;
51
52
// add the application name and the host name
53
m_stringSerializer
.serialize(
appName
, storage );
54
55
// one word for update status
56
storage.push_back(
statusCode
);
57
58
// Anonymous words
59
storage.insert(storage.end(),
anonymous
.begin(),
anonymous
.end());
60
}
61
62
63
void
HLTExtraData::deserialize
(
const
std::vector<uint32_t>& storage)
64
{
65
if
(storage.empty())
return
;
66
67
// StringSerializer knows how long the string is
68
std::size_t offset =
m_stringSerializer
.deserialize(storage,
appName
);
69
70
if
(offset < storage.size()) {
71
statusCode
= storage[offset++];
72
anonymous
.clear();
73
anonymous
.insert(
anonymous
.begin(), storage.begin()+offset, storage.end());
74
}
75
}
76
77
void
HLT::swap
(
HLTExtraData
& lhs,
HLTExtraData
& rhs)
78
{
79
using
std::swap
;
80
81
swap
(lhs.
appName
, rhs.
appName
);
82
swap
(lhs.
statusCode
, rhs.
statusCode
);
83
swap
(lhs.
anonymous
, rhs.
anonymous
);
84
// default m_stringSerializer is good for every object
85
}
HLTExtraData.h
Definition of the HLT extra data in the HLTResult payload.
HLT::HLTExtraData
Class representing the HLT extra payload stored in HLT::HLTResult::getExtras()
Definition
HLTExtraData.h:35
HLT::HLTExtraData::empty
bool empty()
Return true if all members have default values (no serialization needed)
Definition
HLTExtraData.h:70
HLT::HLTExtraData::anonymous
std::vector< uint32_t > anonymous
For future use-cases (only use as last resort)
Definition
HLTExtraData.h:65
HLT::HLTExtraData::deserialize
void deserialize(const std::vector< uint32_t > &storage)
Deserialize storage into members.
Definition
HLTExtraData.cxx:63
HLT::HLTExtraData::swap
friend void swap(HLTExtraData &, HLTExtraData &)
HLT::HLTExtraData::HLTExtraData
HLTExtraData()
Construct empty object.
Definition
HLTExtraData.cxx:17
HLT::HLTExtraData::serialize
void serialize(std::vector< uint32_t > &storage)
Serialize the data and append it to the vector.
Definition
HLTExtraData.cxx:48
HLT::HLTExtraData::appName
std::string appName
application name
Definition
HLTExtraData.h:63
HLT::HLTExtraData::operator=
HLTExtraData & operator=(HLTExtraData)
unified assignement op
Definition
HLTExtraData.cxx:42
HLT::HLTExtraData::m_stringSerializer
TrigSteeringEvent::StringSerializer m_stringSerializer
Definition
HLTExtraData.h:74
HLT::HLTExtraData::statusCode
uint32_t statusCode
various status codes (for prescale/COOL updates)
Definition
HLTExtraData.h:64
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition
HLTResultReader.h:26
HLT::swap
void swap(HLTExtraData &, HLTExtraData &)
Definition
HLTExtraData.cxx:77
std::swap
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)
Definition
AthLinks/ElementLinkVector.h:485
Generated on
for ATLAS Offline Software by
1.14.0