1#ifndef LIFETIME_HPP_XYTSNW3J
2#define LIFETIME_HPP_XYTSNW3J
4#include <vanetza/common/bit_number.hpp>
5#include <vanetza/geonet/serialization.hpp>
6#include <vanetza/units/time.hpp>
7#include <boost/operators.hpp>
18 static constexpr uint8_t multiplier_mask = 0xFC;
19 static constexpr uint8_t base_mask = 0x03;
22 Fifty_Milliseconds = 0,
31 Lifetime(Base base,
BitNumber<uint8_t, 6> multiplier);
32 void set(Base base,
BitNumber<uint8_t, 6> multiplier);
33 uint8_t raw()
const {
return m_lifetime; }
34 void raw(uint8_t raw) { m_lifetime = raw; }
36 bool operator<(
const Lifetime&)
const;
37 bool operator==(
const Lifetime&)
const;
40
41
42
43 units::Duration
decode()
const;
46
47
48
49
50 void encode(units::Duration);
ChunckPacket is a packet consisting of several memory chunks.
ByteBufferConvertible & operator[](OsiLayer ol)
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
const ByteBufferConvertible & layer(OsiLayer ol) const
const ByteBufferConvertible & operator[](OsiLayer ol) const
ByteBufferConvertible & layer(OsiLayer ol)
std::size_t size(OsiLayer from, OsiLayer to) const
ChunkPacket extract(OsiLayer from, OsiLayer to)
std::size_t size(OsiLayer from, OsiLayer to) const
buffer_const_range operator[](OsiLayer layer) const
void set_boundary(OsiLayer, unsigned bytes)
const ByteBuffer & buffer() const
CohesivePacket(const ByteBuffer &buffer, OsiLayer layer)
void trim(OsiLayer from, unsigned bytes)
std::size_t size(OsiLayer single_layer) const
value_type operator[](size_type) const
byte_view_range(ByteBuffer &&)
byte_view_range(const ByteBuffer::const_iterator &, const ByteBuffer::const_iterator &)
ByteBuffer::const_pointer data() const
void encode(units::Duration)
units::Duration decode() const