Vanetza
Loading...
Searching...
No Matches
payload.hpp
1
#ifndef PAYLOAD_HPP_R8IXQBSL
2
#define PAYLOAD_HPP_R8IXQBSL
3
4
#include <vanetza/common/byte_buffer.hpp>
5
#include <vanetza/net/packet.hpp>
6
#include <vanetza/security/v2/serialization.hpp>
7
#include <cstdint>
8
9
namespace
vanetza
10
{
11
namespace
security
12
{
13
namespace
v2
14
{
15
16
/// PayloadType specified in TS 103 097 v1.2.1, section 5.3
17
enum class
PayloadType : uint8_t
18
{
19
Unsecured = 0,
20
Signed = 1,
21
Encrypted = 2,
22
Signed_External = 3,
23
Signed_And_Encrypted = 4,
24
};
25
26
/// Payload specified in TS 103 097 v1.2.1, section 5.2
27
struct
Payload
28
{
29
PayloadType type;
30
PacketVariant data;
31
};
32
33
/**
34
* \brief Determines PayloadType to a given Payload
35
* \param payload
36
* \return type
37
*/
38
PayloadType get_type(
const
Payload
&);
39
40
/**
41
* \brief Calculates size of Payload
42
* \param payload
43
* \return number of octets needed to serialize the Payload
44
*/
45
size_t
get_size(
const
Payload
&);
46
47
/**
48
* \brief Serializes Payload into a binary archive
49
* \param ar to serialize in
50
* \param payload to serialize
51
*/
52
void
serialize(
OutputArchive
& ar,
const
Payload
&);
53
54
/**
55
* \brief Deserializes Payload from a binary archive
56
* \param ar with serialized Payload at the beginning
57
* \param payload to deserialize
58
* \return size of the deserialized payload
59
*/
60
size_t
deserialize(
InputArchive
& ar,
Payload
&);
61
62
}
// namespace v2
63
}
// namespace security
64
}
// namespace vanetza
65
66
#endif
/* PAYLOAD_HPP_R8IXQBSL */
vanetza::InputArchive
Definition:
archives.hpp:17
vanetza::OutputArchive
Definition:
archives.hpp:50
vanetza::security::v2::Payload
Payload specified in TS 103 097 v1.2.1, section 5.2.
Definition:
payload.hpp:28
vanetza
security
v2
payload.hpp
Generated on Thu Nov 30 2023 12:03:35 for Vanetza by
1.9.6