A FIFO queue with limited length (cyclic).
The class is based on the STL queue class, but has a limited size. If more items are inserted than would fit, the oldest item is overwritten. The class can only handle pointer types.
Definition at line 33 of file xsens_fifoqueue.h.
#include <xSens_MT3/xsens_fifoqueue.h>
Public Types | |
typedef T | value_type |
The type of the value stored in this queue. More... | |
typedef size_t | size_type |
The type of a 'size' value. More... | |
Public Member Functions | |
FifoQueue (size_type size=16, bool delOnOverwrite=true) | |
Create an empty queue with capacity size. More... | |
template<bool E2> | |
FifoQueue (const FifoQueue< T, E2 > &q) | |
The copy constructor. More... | |
void | eraseAndClear (void) |
~FifoQueue () | |
The destructor. More... | |
template<bool E2> | |
FifoQueue< T, E > & | operator= (const FifoQueue< T, E2 > &q) |
The assignment operator. More... | |
void | resize (const size_t size) |
Resize the queue, note that this function clears the queue. More... | |
bool | empty () const |
Return true if the queue is empty. More... | |
size_type | size () const |
Return the maximum number of elements in the queue. More... | |
size_type | length () const |
Return the number of elements currnetly in the queue. More... | |
value_type & | front () |
Return the oldest element in the queue. More... | |
const value_type & | front () const |
Return the oldest element in the queue. More... | |
value_type & | back () |
Return the newest element in the queue. More... | |
const value_type & | back () const |
Return the newest element in the queue. More... | |
void | push (const value_type &x) |
Insert x at the back of the queue. More... | |
void | pop (void) |
Remove the element at the front of the queue. More... | |
void | popBack (void) |
Remove the element at the back of the queue. More... | |
const value_type & | operator[] (size_t index) const |
Return the index'th oldest item from the queue. More... | |
value_type & | operator[] (size_t index) |
Return the index'th oldest item from the queue. More... | |
void | clear (void) |
void | remove (size_t index) |
Protected Attributes | |
size_t | m_maxCount |
size_t | m_currentCount |
size_t | m_first |
bool | m_deleteOnOverwrite |
T * | m_list |
typedef size_t xsens::FifoQueue< T, E >::size_type |
The type of a 'size' value.
Definition at line 68 of file xsens_fifoqueue.h.
typedef T xsens::FifoQueue< T, E >::value_type |
The type of the value stored in this queue.
Definition at line 66 of file xsens_fifoqueue.h.
|
inline |
Create an empty queue with capacity size.
Definition at line 71 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_deleteOnOverwrite, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, QUEUELOG, and xsens::FifoQueue< T, E >::size().
|
inline |
The copy constructor.
Definition at line 89 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_deleteOnOverwrite, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
The destructor.
Definition at line 116 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
Return the newest element in the queue.
Definition at line 177 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, and xsens::FifoQueue< T, E >::m_maxCount.
|
inline |
Return the newest element in the queue.
Definition at line 183 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, and xsens::FifoQueue< T, E >::m_maxCount.
|
inline |
Definition at line 244 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
Return true if the queue is empty.
Definition at line 167 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount.
|
inline |
Definition at line 104 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
Referenced by xsens::FifoQueue< T, E >::resize(), and xsens::FifoQueue< T, E >::~FifoQueue().
|
inline |
Return the oldest element in the queue.
Definition at line 173 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_first, and xsens::FifoQueue< T, E >::m_list.
|
inline |
Return the oldest element in the queue.
Definition at line 175 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_first, and xsens::FifoQueue< T, E >::m_list.
|
inline |
Return the number of elements currnetly in the queue.
Definition at line 171 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount.
|
inline |
The assignment operator.
Definition at line 128 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
Return the index'th oldest item from the queue.
Definition at line 227 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, and xsens::FifoQueue< T, E >::m_maxCount.
|
inline |
Return the index'th oldest item from the queue.
Definition at line 236 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, and xsens::FifoQueue< T, E >::m_maxCount.
|
inline |
Remove the element at the front of the queue.
Definition at line 208 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
Referenced by xsens::FifoQueue< T, E >::remove().
|
inline |
Remove the element at the back of the queue.
Definition at line 218 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
Insert x at the back of the queue.
Definition at line 189 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_deleteOnOverwrite, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, and QUEUELOG.
|
inline |
Definition at line 253 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, xsens::FifoQueue< T, E >::pop(), and QUEUELOG.
|
inline |
Resize the queue, note that this function clears the queue.
Definition at line 150 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::m_currentCount, xsens::FifoQueue< T, E >::m_first, xsens::FifoQueue< T, E >::m_list, xsens::FifoQueue< T, E >::m_maxCount, QUEUELOG, and xsens::FifoQueue< T, E >::size().
|
inline |
Return the maximum number of elements in the queue.
Definition at line 169 of file xsens_fifoqueue.h.
References xsens::FifoQueue< T, E >::m_maxCount.
Referenced by xsens::FifoQueue< T, E >::FifoQueue(), and xsens::FifoQueue< T, E >::resize().
|
protected |
Definition at line 58 of file xsens_fifoqueue.h.
Referenced by xsens::FifoQueue< T, E >::back(), xsens::FifoQueue< T, E >::clear(), xsens::FifoQueue< T, E >::empty(), xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::FifoQueue(), xsens::FifoQueue< T, E >::length(), xsens::FifoQueue< T, E >::operator=(), xsens::FifoQueue< T, E >::operator[](), xsens::FifoQueue< T, E >::pop(), xsens::FifoQueue< T, E >::popBack(), xsens::FifoQueue< T, E >::push(), xsens::FifoQueue< T, E >::remove(), xsens::FifoQueue< T, E >::resize(), and xsens::FifoQueue< T, E >::~FifoQueue().
|
protected |
Definition at line 60 of file xsens_fifoqueue.h.
Referenced by xsens::FifoQueue< T, E >::FifoQueue(), and xsens::FifoQueue< T, E >::push().
|
protected |
Definition at line 59 of file xsens_fifoqueue.h.
Referenced by xsens::FifoQueue< T, E >::back(), xsens::FifoQueue< T, E >::clear(), xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::FifoQueue(), xsens::FifoQueue< T, E >::front(), xsens::FifoQueue< T, E >::operator=(), xsens::FifoQueue< T, E >::operator[](), xsens::FifoQueue< T, E >::pop(), xsens::FifoQueue< T, E >::push(), xsens::FifoQueue< T, E >::remove(), and xsens::FifoQueue< T, E >::resize().
|
protected |
Definition at line 62 of file xsens_fifoqueue.h.
Referenced by xsens::FifoQueue< T, E >::back(), xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::FifoQueue(), xsens::FifoQueue< T, E >::front(), xsens::FifoQueue< T, E >::operator=(), xsens::FifoQueue< T, E >::operator[](), xsens::FifoQueue< T, E >::push(), xsens::FifoQueue< T, E >::remove(), xsens::FifoQueue< T, E >::resize(), and xsens::FifoQueue< T, E >::~FifoQueue().
|
protected |
Definition at line 57 of file xsens_fifoqueue.h.
Referenced by xsens::FifoQueue< T, E >::back(), xsens::FifoQueue< T, E >::clear(), xsens::FifoQueue< T, E >::eraseAndClear(), xsens::FifoQueue< T, E >::FifoQueue(), xsens::FifoQueue< T, E >::operator=(), xsens::FifoQueue< T, E >::operator[](), xsens::FifoQueue< T, E >::pop(), xsens::FifoQueue< T, E >::popBack(), xsens::FifoQueue< T, E >::push(), xsens::FifoQueue< T, E >::remove(), xsens::FifoQueue< T, E >::resize(), xsens::FifoQueue< T, E >::size(), and xsens::FifoQueue< T, E >::~FifoQueue().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019 |