Vanetza
 
Loading...
Searching...
No Matches
header_conversion.hpp
1#ifndef HEADER_CONVERSION_HPP_SQVEUMFE
2#define HEADER_CONVERSION_HPP_SQVEUMFE
3
4#include <vanetza/btp/header.hpp>
5#include <vanetza/common/byte_buffer_convertible.hpp>
6#include <vanetza/common/serialization_buffer.hpp>
7
8namespace vanetza
9{
10namespace convertible
11{
12
13template<>
14struct byte_buffer_impl<btp::HeaderA> : public byte_buffer
15{
16 byte_buffer_impl(const btp::HeaderA& header) : m_header(header) {}
17 void convert(ByteBuffer& buffer) const override
18 {
19 buffer.clear();
20 serialize_into_buffer(m_header, buffer);
21 }
22 std::size_t size() const override { return btp::HeaderA::length_bytes; }
23
24 const btp::HeaderA m_header;
25};
26
27template<>
28struct byte_buffer_impl<btp::HeaderB> : public byte_buffer
29{
30 byte_buffer_impl(const btp::HeaderB& header) : m_header(header) {}
31 void convert(ByteBuffer& buffer) const override
32 {
33 buffer.clear();
34 serialize_into_buffer(m_header, buffer);
35 }
36 std::size_t size() const override { return btp::HeaderB::length_bytes; }
37
38 const btp::HeaderB m_header;
39};
40
41} // namespace convertible
42} // namespace vanetza
43
44#endif /* HEADER_CONVERSION_HPP_SQVEUMFE */