1#include <vanetza/security/secured_message.hpp>
2#include <boost/variant/apply_visitor.hpp>
3#include <boost/variant/static_visitor.hpp>
15struct ItsAidVisitor : boost::static_visitor<ItsAid>
19 return get_its_aid(msg);
28ItsAid get_its_aid(
const SecuredMessage& msg)
30 return boost::apply_visitor(ItsAidVisitor(), msg);
35 return boost::apply_visitor(ItsAidVisitor(), msg);
38std::size_t get_size(
const SecuredMessage& msg)
40 struct Visitor : boost::static_visitor<std::size_t>
53 return boost::apply_visitor(Visitor(), msg);
56struct SerializeVisitor : boost::static_visitor<
void>
63 serialize(m_archive, msg);
68 serialize(m_archive, msg);
74 SerializeVisitor visitor { ar };
75 boost::apply_visitor(visitor, msg);
80 SerializeVisitor visitor { ar };
81 boost::apply_visitor(visitor, msg);
84std::size_t deserialize(
InputArchive& ar, SecuredMessage& msg)
86 struct Visitor : boost::static_visitor<std::size_t>
93 return deserialize(m_archive, msg);
98 return deserialize(m_archive, msg);
103 return boost::apply_visitor(visitor, msg);
106struct PayloadCopyVisitor : boost::static_visitor<PacketVariant>
110 return msg.payload.data;
115 return msg.payload();
119PacketVariant get_payload_copy(
const SecuredMessage& msg)
121 return boost::apply_visitor(PayloadCopyVisitor {}, msg);
126 return boost::apply_visitor(PayloadCopyVisitor {}, msg);
SecuredMessage as specified in TS 103 097 v1.2.1, section 5.1.