Vanetza
Loading...
Searching...
No Matches
vanetza::security::PeerRequestTracker Class Reference

Public Member Functions

 PeerRequestTracker (std::size_t limit=16)
void add_request (const HashedId3 &)
void discard_request (const HashedId3 &)
bool is_pending (const HashedId3 &) const
boost::optional< HashedId3 > next_one ()
std::list< HashedId3 > next_n (std::size_t max)
std::list< HashedId3 > all ()

Private Types

using FifoQueue = std::list<HashedId3>
using LookupMap = std::unordered_map<HashedId3, FifoQueue::iterator>

Private Attributes

std::size_t m_limit
FifoQueue m_fifo
LookupMap m_lookup

Detailed Description

Definition at line 14 of file peer_request_tracker.hpp.

Member Typedef Documentation

◆ FifoQueue

using vanetza::security::PeerRequestTracker::FifoQueue = std::list<HashedId3>
private

Definition at line 63 of file peer_request_tracker.hpp.

◆ LookupMap

using vanetza::security::PeerRequestTracker::LookupMap = std::unordered_map<HashedId3, FifoQueue::iterator>
private

Definition at line 64 of file peer_request_tracker.hpp.

Constructor & Destructor Documentation

◆ PeerRequestTracker()

vanetza::security::PeerRequestTracker::PeerRequestTracker ( std::size_t limit = 16)
explicit

Definition at line 9 of file peer_request_tracker.cpp.

Member Function Documentation

◆ add_request()

void vanetza::security::PeerRequestTracker::add_request ( const HashedId3 & id)

Add a certificate request to the tracker.

Parameters
idhash of requested certificate

Definition at line 13 of file peer_request_tracker.cpp.

◆ all()

std::list< HashedId3 > vanetza::security::PeerRequestTracker::all ( )

Retrieve all pending requests from tracker.

Returns
list of all pending certificate hashes

Definition at line 77 of file peer_request_tracker.cpp.

◆ discard_request()

void vanetza::security::PeerRequestTracker::discard_request ( const HashedId3 & id)

Discard a pending certificate request.

Parameters
idhash of certificate

Definition at line 29 of file peer_request_tracker.cpp.

◆ is_pending()

bool vanetza::security::PeerRequestTracker::is_pending ( const HashedId3 & id) const

Check if a certificate request is pending.

Parameters
idhash of certificate
Returns
true if request of this certificate is pending

Definition at line 40 of file peer_request_tracker.cpp.

◆ next_n()

std::list< HashedId3 > vanetza::security::PeerRequestTracker::next_n ( std::size_t max)

Retrieve next n pending requests from tracker.

Returns
list of up to n certificate hashes

Definition at line 58 of file peer_request_tracker.cpp.

◆ next_one()

boost::optional< HashedId3 > vanetza::security::PeerRequestTracker::next_one ( )

Determine which request shall be handled next and remove it from the queue.

Returns
hash of requested certificate if any

Definition at line 45 of file peer_request_tracker.cpp.

Member Data Documentation

◆ m_fifo

FifoQueue vanetza::security::PeerRequestTracker::m_fifo
private

Definition at line 67 of file peer_request_tracker.hpp.

◆ m_limit

std::size_t vanetza::security::PeerRequestTracker::m_limit
private

Definition at line 66 of file peer_request_tracker.hpp.

◆ m_lookup

LookupMap vanetza::security::PeerRequestTracker::m_lookup
private

Definition at line 68 of file peer_request_tracker.hpp.


The documentation for this class was generated from the following files: