1#include <vanetza/security/exception.hpp>
2#include <vanetza/security/v2/trailer_field.hpp>
3#include <boost/variant/get.hpp>
13TrailerFieldType get_type(
const TrailerField& field)
15 struct trailerFieldVisitor :
public boost::static_visitor<TrailerFieldType>
17 TrailerFieldType operator()(
const Signature&)
19 return TrailerFieldType::Signature;
22 trailerFieldVisitor visit;
23 return boost::apply_visitor(visit, field);
26size_t get_size(
const TrailerField& field)
28 size_t size =
sizeof(TrailerFieldType);
29 struct trailerFieldVisitor :
public boost::static_visitor<size_t>
36 trailerFieldVisitor visit;
37 size += boost::apply_visitor(visit, field);
43 struct trailer_visitor :
public boost::static_visitor<>
51 serialize(m_archive, sig);
55 TrailerFieldType type = get_type(field);
57 trailer_visitor visitor(ar);
58 boost::apply_visitor(visitor, field);
64 TrailerFieldType type;
65 deserialize(ar, type);
66 size +=
sizeof(TrailerFieldType);
68 case TrailerFieldType::Signature: {
70 size += deserialize(ar, sig);
thrown when a deserialization error occurred