ATLAS Offline Software
Loading...
Searching...
No Matches
HLT::HLTExtraData Class Reference

Class representing the HLT extra payload stored in HLT::HLTResult::getExtras() More...

#include <HLTExtraData.h>

Collaboration diagram for HLT::HLTExtraData:

Public Member Functions

 HLTExtraData ()
 Construct empty object.
 HLTExtraData (const std::vector< uint32_t > &storage)
 Construct from storage and fill members.
 HLTExtraData (const HLTExtraData &)
 copy ctor
 HLTExtraData (HLTExtraData &&)
 move ctor
HLTExtraDataoperator= (HLTExtraData)
 unified assignement op
void serialize (std::vector< uint32_t > &storage)
 Serialize the data and append it to the vector.
void deserialize (const std::vector< uint32_t > &storage)
 Deserialize storage into members.

Public Attributes

std::string appName
 application name
uint32_t statusCode
 various status codes (for prescale/COOL updates)
std::vector< uint32_t > anonymous
 For future use-cases (only use as last resort)

Private Member Functions

bool empty ()
 Return true if all members have default values (no serialization needed)

Private Attributes

TrigSteeringEvent::StringSerializer m_stringSerializer

Friends

void swap (HLTExtraData &, HLTExtraData &)

Detailed Description

Class representing the HLT extra payload stored in HLT::HLTResult::getExtras()

The members storing the data are public. New members should be added whenever additional storage is needed. The reserved anonymous member should only be used as a last resort.

If all members of this class are set to their default values (see empty()) a call to serialize() will do nothing. A deserialization from empty storage will result in a default constructed object.

Whenever you modify this class run 'make check'.

Definition at line 35 of file HLTExtraData.h.

Constructor & Destructor Documentation

◆ HLTExtraData() [1/4]

HLTExtraData::HLTExtraData ( )

Construct empty object.

Definition at line 17 of file HLTExtraData.cxx.

17 :
18 statusCode(0)
19{
20}
uint32_t statusCode
various status codes (for prescale/COOL updates)

◆ HLTExtraData() [2/4]

HLTExtraData::HLTExtraData ( const std::vector< uint32_t > & storage)

Construct from storage and fill members.

Definition at line 22 of file HLTExtraData.cxx.

22 :
23 statusCode(0)
24{
25 deserialize(storage);
26}
void deserialize(const std::vector< uint32_t > &storage)
Deserialize storage into members.

◆ HLTExtraData() [3/4]

HLTExtraData::HLTExtraData ( const HLTExtraData & rhs)

copy ctor

Definition at line 28 of file HLTExtraData.cxx.

29 : appName{rhs.appName}
31 , anonymous{rhs.anonymous}
32 , m_stringSerializer{} // not copied (default always good)
33{}
std::vector< uint32_t > anonymous
For future use-cases (only use as last resort)
std::string appName
application name
TrigSteeringEvent::StringSerializer m_stringSerializer

◆ HLTExtraData() [4/4]

HLTExtraData::HLTExtraData ( HLTExtraData && rhs)

move ctor

Definition at line 35 of file HLTExtraData.cxx.

36 : HLTExtraData{}
37{
38 swap(*this, rhs);
39}
friend void swap(HLTExtraData &, HLTExtraData &)
HLTExtraData()
Construct empty object.

Member Function Documentation

◆ deserialize()

void HLTExtraData::deserialize ( const std::vector< uint32_t > & storage)

Deserialize storage into members.

Definition at line 63 of file HLTExtraData.cxx.

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}

◆ empty()

bool HLT::HLTExtraData::empty ( )
inlineprivate

Return true if all members have default values (no serialization needed)

Definition at line 70 of file HLTExtraData.h.

70 {
71 return (appName.empty() && statusCode==0 && anonymous.empty());
72 }

◆ operator=()

HLTExtraData & HLTExtraData::operator= ( HLTExtraData rhs)

unified assignement op

Definition at line 42 of file HLTExtraData.cxx.

43{
44 swap(*this, rhs);
45 return *this;
46}

◆ serialize()

void HLTExtraData::serialize ( std::vector< uint32_t > & storage)

Serialize the data and append it to the vector.

Definition at line 48 of file HLTExtraData.cxx.

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}
bool empty()
Return true if all members have default values (no serialization needed)

◆ swap

void swap ( HLTExtraData & ,
HLTExtraData &  )
friend

Member Data Documentation

◆ anonymous

std::vector<uint32_t> HLT::HLTExtraData::anonymous

For future use-cases (only use as last resort)

Definition at line 65 of file HLTExtraData.h.

◆ appName

std::string HLT::HLTExtraData::appName

application name

Definition at line 63 of file HLTExtraData.h.

◆ m_stringSerializer

TrigSteeringEvent::StringSerializer HLT::HLTExtraData::m_stringSerializer
private

Definition at line 74 of file HLTExtraData.h.

◆ statusCode

uint32_t HLT::HLTExtraData::statusCode

various status codes (for prescale/COOL updates)

Definition at line 64 of file HLTExtraData.h.


The documentation for this class was generated from the following files: