1#include <vanetza/security/v2/payload.hpp>
2#include <vanetza/security/v2/length_coding.hpp>
11PayloadType get_type(
const Payload& payload)
16size_t get_size(
const Payload& payload)
18 size_t length =
sizeof(PayloadType);
19 const size_t data = size(payload.data, OsiLayer::Network, max_osi_layer());
21 length += length_coding_size(data);
25size_t get_size(
const ByteBuffer& buf)
27 size_t size = buf.size();
28 size += length_coding_size(size);
32void serialize(OutputArchive& ar,
const Payload& payload)
34 serialize(ar, payload.type);
35 serialize_length(ar, size(payload.data, OsiLayer::Network, max_osi_layer()));
36 serialize(ar, payload.data);
39size_t deserialize(InputArchive& ar, Payload& payload)
41 size_t size =
sizeof(PayloadType);
43 deserialize(ar, type);
46 const auto data_length = deserialize_length(ar);
47 size += length_coding_size(data_length);
49 ByteBuffer buf(data_length);
50 ar.load_binary(buf.data(), buf.size());
51 payload.data = CohesivePacket(std::move(buf), OsiLayer::Network);