1#ifndef LOCATION_TABLE_HPP_EMPVZSHQ
2#define LOCATION_TABLE_HPP_EMPVZSHQ
4#include <vanetza/common/object_container.hpp>
5#include <vanetza/geonet/address.hpp>
6#include <vanetza/geonet/mib.hpp>
7#include <vanetza/geonet/position_vector.hpp>
8#include <vanetza/geonet/soft_state_map.hpp>
9#include <vanetza/geonet/station_type.hpp>
10#include <boost/range/adaptor/filtered.hpp>
11#include <boost/range/adaptor/map.hpp>
23 const Address& geonet_address()
const;
25 StationType station_type()
const;
39 void update_pdr(std::size_t packet_size,
double beta = 0.5);
90 Clock::time_point m_is_neighbour;
91 bool m_has_position_vector;
94 Clock::time_point m_pdr_update;
118 boost::select_second_const_range<
119 boost::filtered_range<
120 std::function<bool(
const typename table_type::value_type&)>,
121 const typename table_type::map_range>>;
122 using neighbour_range = entry_range;
125 bool has_entry(
const Address&)
const;
133 bool has_neighbours()
const;
134 neighbour_range neighbours()
const;
135 entry_range filter(
const entry_predicate&)
const;
136 void visit(
const entry_visitor&)
const;
void update_pdr(std::size_t packet_size, double beta=0.5)
bool update_position_vector(const LongPositionVector &pv)
bool has_position_vector() const
const LongPositionVector & get_position_vector() const
bool is_neighbour() const
bool set_position_vector(const LongPositionVector &pv)
void set_neighbour(bool flag)