00001 #pragma once 00002 #if !defined(TRIGSTEERINGEVENT_HLTEXTRADATA_H) && !defined(XAOD_STANDALONE) 00003 #define TRIGSTEERINGEVENT_HLTEXTRADATA_H 00004 00013 #include "TrigSteeringEvent/StringSerializer.h" 00014 #include <string> 00015 #include <vector> 00016 00017 namespace HLT { 00018 00032 class HLTExtraData { 00033 public: 00034 friend void swap(HLTExtraData&, HLTExtraData&); 00038 HLTExtraData(); 00039 00043 HLTExtraData(const std::vector<uint32_t>& storage); 00044 00045 HLTExtraData(const HLTExtraData&); 00046 HLTExtraData(HLTExtraData&&); 00047 HLTExtraData& operator=(HLTExtraData); 00048 00052 void serialize(std::vector<uint32_t>& storage); 00053 00057 void deserialize(const std::vector<uint32_t>& storage); 00058 00059 00060 std::string appName; 00061 uint32_t statusCode; 00062 std::vector<uint32_t> anonymous; 00063 00064 private: 00065 00067 inline bool empty() { 00068 return (appName.empty() && statusCode==0 && anonymous.empty()); 00069 } 00070 00071 TrigSteeringEvent::StringSerializer m_stringSerializer; 00072 }; 00073 00074 void swap(HLTExtraData&, HLTExtraData&); 00075 00076 } // namespace HLT 00077 00078 #endif