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-2017 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
HLTExtraData
&
HLTExtraData::operator=
(
HLTExtraData
rhs)
42
{
43
swap
(*
this
, rhs);
44
return
*
this
;
45
}
46
47
void
HLTExtraData::serialize
(std::vector<uint32_t>& storage)
48
{
49
if
(
empty
())
return
;
50
51
// add the application name and the host name
52
m_stringSerializer
.serialize(
appName
, storage );
53
54
// one word for update status
55
storage.push_back(
statusCode
);
56
57
// Anonymous words
58
storage.insert(storage.end(),
anonymous
.begin(),
anonymous
.end());
59
}
60
61
62
void
HLTExtraData::deserialize
(
const
std::vector<uint32_t>& storage)
63
{
64
if
(storage.empty())
return
;
65
66
// StringSerializer knows how long the string is
67
std::size_t offset =
m_stringSerializer
.deserialize(storage,
appName
);
68
69
if
(offset < storage.size()) {
70
statusCode
= storage[offset++];
71
anonymous
.clear();
72
anonymous
.insert(
anonymous
.begin(), storage.begin()+offset, storage.end());
73
}
74
}
75
76
void
HLT::swap
(
HLTExtraData
& lhs,
HLTExtraData
& rhs)
77
{
78
using
std::swap
;
79
80
swap
(lhs.
appName
, rhs.
appName
);
81
swap
(lhs.
statusCode
, rhs.
statusCode
);
82
swap
(lhs.
anonymous
, rhs.
anonymous
);
83
// default m_stringSerializer is good for every object
84
}
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:36
HLT::HLTExtraData::empty
bool empty()
Return true if all members have default values (no serialization needed)
Definition
HLTExtraData.h:71
HLT::HLTExtraData::anonymous
std::vector< uint32_t > anonymous
For future use-cases (only use as last resort)
Definition
HLTExtraData.h:66
HLT::HLTExtraData::deserialize
void deserialize(const std::vector< uint32_t > &storage)
Deserialize storage into members.
Definition
HLTExtraData.cxx:62
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:47
HLT::HLTExtraData::appName
std::string appName
application name
Definition
HLTExtraData.h:64
HLT::HLTExtraData::operator=
HLTExtraData & operator=(HLTExtraData)
unified assignement op
Definition
HLTExtraData.cxx:41
HLT::HLTExtraData::m_stringSerializer
TrigSteeringEvent::StringSerializer m_stringSerializer
Definition
HLTExtraData.h:75
HLT::HLTExtraData::statusCode
uint32_t statusCode
various status codes (for prescale/COOL updates)
Definition
HLTExtraData.h:65
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:76
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