1#include "pdu_conversion.hpp"
2#include "serialization_buffer.hpp"
10typedef std::unique_ptr<vanetza::geonet::Pdu> PduPtr;
12void byte_buffer_impl<PduPtr>::convert(ByteBuffer& dest)
const
16 geonet::serialize_into_buffer(*m_pdu, dest);
19std::size_t byte_buffer_impl<PduPtr>::size()
const
22 return get_length(*m_pdu);
25std::unique_ptr<byte_buffer> byte_buffer_impl<PduPtr>::duplicate()
const
28 PduPtr duplicate { m_pdu->clone() };
29 std::unique_ptr<byte_buffer> result {
30 new byte_buffer_impl<PduPtr>(std::move(duplicate))
40Pdu* pdu_cast(ByteBufferConvertible& convertible)
42 using convertible_pdu_t = convertible::byte_buffer_impl<std::unique_ptr<Pdu>>;
43 auto convertible_pdu =
dynamic_cast<convertible_pdu_t*
>(convertible.ptr());
44 return convertible_pdu ? convertible_pdu->m_pdu.get() :
nullptr;