Vanetza
Loading...
Searching...
No Matches
secured_pdu.hpp
1
#ifndef SECURED_PDU_HPP_TVERYI91
2
#define SECURED_PDU_HPP_TVERYI91
3
4
#include <vanetza/common/byte_buffer_convertible.hpp>
5
#include <vanetza/geonet/common_header.hpp>
6
#include <vanetza/geonet/extended_pdu.hpp>
7
#include <vanetza/geonet/header_variant.hpp>
8
#include <vanetza/geonet/serialization.hpp>
9
10
namespace
vanetza
11
{
12
namespace
geonet
13
{
14
15
/**
16
* Secured PDU consists of GeoNetworking headers belonging to a secured message's payload
17
*/
18
class
SecuredPdu
19
{
20
public
:
21
template
<
typename
EXT>
22
SecuredPdu
(
const
ExtendedPdu<EXT>
& pdu) :
23
common(pdu.common()), extended(pdu.extended())
24
{
25
}
26
27
SecuredPdu
(
const
Pdu
&);
28
29
CommonHeader
common;
30
HeaderVariant extended;
31
};
32
33
void
serialize(
const
SecuredPdu
&,
OutputArchive
&);
34
35
/**
36
* Cast secured PDU from byte buffer convertible
37
* \param conv source convertible
38
* \return secured PDU pointer or nullptr if cast failed
39
*/
40
SecuredPdu
* secured_pdu_cast(
ByteBufferConvertible
&);
41
42
}
// namespace geonet
43
44
namespace
convertible
45
{
46
47
template
<>
48
struct
byte_buffer_impl
<geonet::SecuredPdu> :
public
byte_buffer
49
{
50
byte_buffer_impl
(
const
geonet::SecuredPdu
&);
51
void
convert(ByteBuffer&)
const override
;
52
std::size_t size()
const override
;
53
std::unique_ptr<byte_buffer> duplicate()
const override
;
54
55
geonet::SecuredPdu
pdu;
56
};
57
58
}
// namespace convertible
59
60
}
// namespace vanetza
61
62
#endif
/* SECURED_PDU_HPP_TVERYI91 */
63
vanetza::ByteBufferConvertible
Definition:
byte_buffer_convertible.hpp:78
vanetza::OutputArchive
Definition:
archives.hpp:50
vanetza::geonet::ExtendedPdu
Definition:
extended_pdu.hpp:24
vanetza::geonet::Pdu
Definition:
pdu.hpp:34
vanetza::geonet::SecuredPdu
Definition:
secured_pdu.hpp:19
vanetza::convertible::byte_buffer_impl
Definition:
asn1c_conversion.hpp:16
vanetza::convertible::byte_buffer
Definition:
byte_buffer_convertible.hpp:16
vanetza::geonet::CommonHeader
Definition:
common_header.hpp:28
vanetza
geonet
secured_pdu.hpp
Generated on Thu Nov 30 2023 12:03:35 for Vanetza by
1.9.6