1#include <vanetza/geonet/gbc_memory.hpp>
10 m_capacity = num < 1 ? 1 : num;
13 auto& by_queue_index = m_identifiers.get<
by_queue>();
14 while (by_queue_index.size() > m_capacity) {
15 by_queue_index.pop_front();
21 return m_identifiers.size();
26 auto& by_packet_index = m_identifiers.get<
by_packet>();
27 auto found_packet = by_packet_index.find(
id);
28 if (found_packet == by_packet_index.end()) {
30 auto& by_queue_index = m_identifiers.get<
by_queue>();
31 while (!by_queue_index.empty() && by_queue_index.size() >= m_capacity) {
32 by_queue_index.pop_front();
35 by_queue_index.push_back(
id);
39 auto found_queue = m_identifiers.project<
by_queue>(found_packet);
40 auto& by_queue_index = m_identifiers.get<
by_queue>();
41 by_queue_index.relocate(by_queue_index.end(), found_queue);
48 return m_identifiers.get<
by_packet>().find(
id) != m_identifiers.get<
by_packet>().end();
bool remember(const PacketIdentifier &id)
bool knows(const PacketIdentifier &id) const
void capacity(std::size_t num)