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>
15class Lifetime :
public boost::totally_ordered<Lifetime>
18 static constexpr uint8_t multiplier_mask = 0xFC;
19 static constexpr uint8_t base_mask = 0x03;
22 Fifty_Milliseconds = 0,
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;
43 units::Duration
decode()
const;
50 void encode(units::Duration);
void encode(units::Duration)
units::Duration decode() const