37template <
typename T,
typename C>
38using StampedDeque = std::deque<std::pair<C, T>>;
56template <
typename T,
typename C =
int,
typename D = C>
101 void insert(
typename StampedDeque<T, C>::const_iterator position,
const T& val,
const C& stamp = C());
137 const T&
at(
const int n)
const;
146 std::pair<C, T>&
get(
const int n);
155 const std::pair<C, T>&
get(
const int n)
const;
202#include "event_detector/DifferenceBasedBuffer.tpp"
Ring-buffer-like container for keeping only values within a fixed range of a secondary index paramete...
void push_front(const T &val, const C &stamp=C())
Adds new element to the front.
const T & operator[](const int n) const
Accesses specified element.
void setDifference(const D &diff)
Sets new difference. Will affect subsequent calls to update().
T & back()
Accesses last element.
T & operator[](const int n)
Accesses specified element.
std::pair< C, T > & get(const int n)
Accesses specified element including stamp.
void update(const C &stamp)
Removes all elements with stamps outside of (stamp - diff_, stamp].
const std::pair< C, T > & get(const int n) const
Accesses specified element including stamp.
DifferenceBasedBuffer(const D &diff=D(0, 0))
Constructs a new DifferenceBasedBuffer object.
const T & at(const int n) const
Accesses specified element.
const T & front() const
Accesses first element.
T & at(const int n)
Accesses specified element.
void push_back(const T &val, const C &stamp=C())
Adds new element to the end.
const T & back() const
Accesses last element.
void insert(typename StampedDeque< T, C >::const_iterator position, const T &val, const C &stamp=C())
Adds new element at position.
T & front()
Accesses first element.