1#ifndef PROXY_HEADER_HPP_JWTV3BDT
2#define PROXY_HEADER_HPP_JWTV3BDT
4#include <boost/range/iterator_range.hpp>
13#define PACKED_STRUCT(name, block) struct name { block } __attribute__((__packed__));
16#define PACKED_STRUCT(name, block) \
17__pragma(pack(push, 1)) \
18struct name { block }; \
22PACKED_STRUCT(ProxyHeader,
24 uint16_t payload_offset;
27 uint32_t payload_size;
33 uint8_t access_category;
36static_assert(
sizeof(ProxyHeader) == 9,
"ProxyHeader has invalid size");
38double get_signal_power(
const ProxyHeader&);
39void set_signal_power(ProxyHeader&,
double dbm);
40access::AccessCategory get_access_category(
const ProxyHeader&);
41void set_access_category(ProxyHeader&, access::AccessCategory);
42boost::iterator_range<const uint8_t*> get_payload(
const ProxyHeader&, std::size_t);
43void set_payload(ProxyHeader&, std::size_t);