A circular buffer of fixed size (defined at construction-time), implemented with a std::vector as the underlying storage.
Definition at line 24 of file circular_buffer.h.
#include <mrpt/utils/circular_buffer.h>
Public Member Functions | |
circular_buffer (const size_t size) | |
void | push (T d) |
Insert a copy of the given element in the buffer. More... | |
void | push_ref (const T &d) |
Insert a reference of the given element in the buffer. More... | |
void | push_many (T *array_elements, size_t count) |
Insert an array of elements in the buffer. More... | |
T | pop () |
Retrieve an element from the buffer. More... | |
void | pop (T &out_val) |
Retrieve an element from the buffer. More... | |
void | pop_many (T *out_array, size_t count) |
Pop a number of elements into a user-provided array. More... | |
size_t | size () const |
Return the number of elements available for read ("pop") in the buffer (this is NOT the maximum size of the internal buffer) More... | |
size_t | capacity () const |
Return the maximum capacity of the buffer. More... | |
size_t | available () const |
The maximum number of elements that can be written ("push") without rising an overflow error. More... | |
void | clear () |
Delete all the stored data, if any. More... | |
Private Attributes | |
std::vector< T > | m_data |
const size_t | m_size |
size_t | m_next_read |
size_t | m_next_write |
|
inline |
Definition at line 32 of file circular_buffer.h.
|
inline |
The maximum number of elements that can be written ("push") without rising an overflow error.
Definition at line 121 of file circular_buffer.h.
|
inline |
Return the maximum capacity of the buffer.
Definition at line 115 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::available().
|
inline |
Delete all the stored data, if any.
Definition at line 126 of file circular_buffer.h.
|
inline |
Retrieve an element from the buffer.
std::out_of_range | If the buffer is empty. |
Definition at line 75 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::pop_many().
|
inline |
Retrieve an element from the buffer.
std::out_of_range | If the buffer is empty. |
Definition at line 87 of file circular_buffer.h.
|
inline |
Pop a number of elements into a user-provided array.
std::out_of_range | If the buffer has less elements than requested. |
Definition at line 98 of file circular_buffer.h.
|
inline |
Insert a copy of the given element in the buffer.
std::out_of_range | If the buffer run out of space. |
Definition at line 45 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::push_many().
|
inline |
Insert an array of elements in the buffer.
std::out_of_range | If the buffer run out of space. |
Definition at line 67 of file circular_buffer.h.
|
inline |
Insert a reference of the given element in the buffer.
std::out_of_range | If the buffer run out of space. |
Definition at line 56 of file circular_buffer.h.
|
inline |
Return the number of elements available for read ("pop") in the buffer (this is NOT the maximum size of the internal buffer)
Definition at line 106 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::available().
|
private |
Definition at line 27 of file circular_buffer.h.
|
private |
Definition at line 29 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::size().
|
private |
Definition at line 29 of file circular_buffer.h.
|
private |
Definition at line 28 of file circular_buffer.h.
Referenced by mrpt::utils::circular_buffer< uint8_t >::capacity().
Page generated by Doxygen 1.8.12 for MRPT 1.3.2 SVN: at Mon Oct 3 19:22:36 UTC 2016 |