9 #ifndef  circular_buffer_H    10 #define  circular_buffer_H    38                                 if (
m_size<=2) 
throw std::invalid_argument(
"size must be >2");
    47                                 if (new_idx == 
m_size) new_idx = 0;
    49                                         throw std::out_of_range(
"push: circular_buffer is full");
    62                                         throw std::out_of_range(
"push: circular_buffer is full");
    70                                         push(*array_elements++);
    78                                         throw std::out_of_range(
"pop: circular_buffer is empty");
    88                         void pop(T &out_val) {
    90                                         throw std::out_of_range(
"pop: circular_buffer is empty");
   112                                 if (
index>=this->
size()) 
throw std::out_of_range(
"peek: seek out of range");
   122                                         if (peek_read==
m_next_write) 
throw std::out_of_range(
"peek: circular_buffer is empty");
   124                                         if (peek_read==
m_size) peek_read=0;
 
GLuint GLuint GLsizei count
 
T peek() const
Peek (see without modifying) what is to be read from the buffer if pop() was to be called...
 
size_t available() const
The maximum number of elements that can be written ("push") without rising an overflow error...
 
void clear()
Delete all the stored data, if any. 
 
size_t size() const
Return the number of elements available for read ("pop") in the buffer (this is NOT the maximum size ...
 
circular_buffer(const size_t size)
 
void pop_many(T *out_array, size_t count)
Pop a number of elements into a user-provided array. 
 
void pop(T &out_val)
Retrieve an element from the buffer. 
 
T pop()
Retrieve an element from the buffer. 
 
A circular buffer of fixed size (defined at construction-time), implemented with a std::vector as the...
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
void push(T d)
Insert a copy of the given element in the buffer. 
 
size_t capacity() const
Return the maximum capacity of the buffer. 
 
T peek(size_t index) const
Like peek(), but seeking ahead in the buffer (index=0 means the immediate next element, index=1 the following one, etc.) 
 
void peek_many(T *out_array, size_t count) const
Like peek(), for multiple elements, storing a number of elements into a user-provided array...
 
void push_many(T *array_elements, size_t count)
Insert an array of elements in the buffer. 
 
void push_ref(const T &d)
Insert a reference of the given element in the buffer.