![]() |
PIDUINO
|
STL-style circular buffer. More...
#include <ringbuffer.h>
Classes | |
class | iterator_ |
RingBuffer iterator class template. More... | |
Public Types | |
typedef RingBuffer< T, A > | self_type |
typedef A | allocator_type |
typedef allocator_type::value_type | value_type |
typedef allocator_type::pointer | pointer |
typedef allocator_type::const_pointer | const_pointer |
typedef allocator_type::reference | reference |
typedef allocator_type::const_reference | const_reference |
typedef allocator_type::size_type | size_type |
typedef allocator_type::difference_type | difference_type |
typedef iterator_< value_type, value_type > | iterator |
typedef iterator_< const value_type, value_type > | const_iterator |
typedef std::reverse_iterator< iterator > | reverse_iterator |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Public Member Functions | |
RingBuffer (size_type const capacity=1, allocator_type const &allocator=allocator_type()) | |
Default constructor. | |
RingBuffer (self_type const &other) | |
Copy constructor. | |
template<typename II > | |
RingBuffer (II const from, II const to) | |
?? | |
~RingBuffer () | |
Destructor. | |
RingBuffer & | operator= (self_type other) |
copy-swap idiom using value parameter | |
void | swap (self_type &other) |
allocator_type | get_allocator () const |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
bool | empty () const |
size_type | capacity () const |
size_type | size () const |
size_type | max_size () const |
void | reserve (size_type const new_size) |
reserve shrinks or expands the internal buffer to the size given | |
reference | front () |
access the first element | |
reference | back () |
access the last element | |
const_reference | front () const |
access the first element | |
const_reference | back () const |
access the last element | |
const_reference | operator[] (size_type const n) const |
const_reference | at (size_type const n) const |
void | clear () |
void | push_back (value_type const &item) |
Appends the given item to the end of the container. | |
void | push_front (value_type const &item) |
Insert a new element at the beginning of the container. | |
void | pop_front () |
Removes the first element of the container. | |
void | pop_back () |
Remove the last element from the container. | |
void | skip (size_type len) |
void | chop (size_type len) |
reference | operator[] (size_type const n) |
reference | at (size_type const n) |
pointer | getimpl () |
Private Member Functions | |
reference | at_unchecked (size_type const index) const |
reference | at_checked (size_type const index) const |
size_type | normalise (size_type const n) const |
size_type | index_to_subscript (size_type const index) const |
void | increment_tail () |
void | decrement_tail () |
size_type | next_tail () |
size_type | previous_tail () |
size_type | previous_head () |
void | increment_head () |
void | decrement_head () |
template<typename I > | |
void | assign_into (I from, I const to) |
Private Attributes | |
size_type | m_capacity |
allocator_type | m_allocator |
pointer | m_array |
size_type | m_head |
size_type | m_tail |
size_type | m_contents_size |
STL-style circular buffer.
Definition at line 67 of file ringbuffer.h.
typedef A Piduino::RingBuffer< T, A >::allocator_type |
Definition at line 71 of file ringbuffer.h.
typedef iterator_<const value_type, value_type> Piduino::RingBuffer< T, A >::const_iterator |
Definition at line 350 of file ringbuffer.h.
typedef allocator_type::const_pointer Piduino::RingBuffer< T, A >::const_pointer |
Definition at line 74 of file ringbuffer.h.
typedef allocator_type::const_reference Piduino::RingBuffer< T, A >::const_reference |
Definition at line 76 of file ringbuffer.h.
typedef std::reverse_iterator<const_iterator> Piduino::RingBuffer< T, A >::const_reverse_iterator |
Definition at line 353 of file ringbuffer.h.
typedef allocator_type::difference_type Piduino::RingBuffer< T, A >::difference_type |
Definition at line 78 of file ringbuffer.h.
typedef iterator_<value_type, value_type> Piduino::RingBuffer< T, A >::iterator |
Definition at line 349 of file ringbuffer.h.
typedef allocator_type::pointer Piduino::RingBuffer< T, A >::pointer |
Definition at line 73 of file ringbuffer.h.
typedef allocator_type::reference Piduino::RingBuffer< T, A >::reference |
Definition at line 75 of file ringbuffer.h.
typedef std::reverse_iterator<iterator> Piduino::RingBuffer< T, A >::reverse_iterator |
Definition at line 352 of file ringbuffer.h.
typedef RingBuffer<T, A> Piduino::RingBuffer< T, A >::self_type |
Definition at line 70 of file ringbuffer.h.
typedef allocator_type::size_type Piduino::RingBuffer< T, A >::size_type |
Definition at line 77 of file ringbuffer.h.
typedef allocator_type::value_type Piduino::RingBuffer< T, A >::value_type |
Definition at line 72 of file ringbuffer.h.
|
inlineexplicit |
|
inline |
Copy constructor.
copy-initialiser constructor must be non-explicit for operator=()
other |
Definition at line 104 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::assign_into(), Piduino::RingBuffer< T, A >::begin(), Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::end(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_capacity.
|
inline |
??
from | |
to |
Definition at line 129 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::assign_into(), and Piduino::RingBuffer< T, A >::swap().
|
inline |
Destructor.
Definition at line 145 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_capacity.
|
inlineprivate |
Definition at line 753 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::push_back().
Referenced by Piduino::RingBuffer< T, A >::reserve(), Piduino::RingBuffer< T, A >::RingBuffer(), and Piduino::RingBuffer< T, A >::RingBuffer().
|
inline |
n |
Definition at line 675 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::at_checked().
|
inline |
n |
Definition at line 544 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::at_checked().
|
inlineprivate |
Definition at line 694 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::at_unchecked(), and Piduino::RingBuffer< T, A >::m_contents_size.
Referenced by Piduino::RingBuffer< T, A >::at(), and Piduino::RingBuffer< T, A >::at().
|
inlineprivate |
Definition at line 690 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::index_to_subscript(), and Piduino::RingBuffer< T, A >::m_array.
Referenced by Piduino::RingBuffer< T, A >::at_checked(), Piduino::RingBuffer< T, A >::operator[](), and Piduino::RingBuffer< T, A >::operator[]().
|
inline |
access the last element
Definition at line 506 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_tail.
|
inline |
access the last element
Definition at line 524 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_tail.
|
inline |
Definition at line 359 of file ringbuffer.h.
Referenced by Piduino::begin(), Piduino::begin(), Piduino::operator<(), Piduino::operator==(), Piduino::RingBuffer< T, A >::rend(), Piduino::RingBuffer< T, A >::rend(), Piduino::RingBuffer< T, A >::reserve(), and Piduino::RingBuffer< T, A >::RingBuffer().
|
inline |
Definition at line 377 of file ringbuffer.h.
|
inline |
Definition at line 443 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity.
Referenced by Piduino::RingBuffer< T, A >::reserve().
|
inline |
len |
Definition at line 647 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::pop_back().
|
inline |
Definition at line 555 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::index_to_subscript(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_contents_size, Piduino::RingBuffer< T, A >::m_head, and Piduino::RingBuffer< T, A >::m_tail.
Referenced by Piduino::RingBuffer< T, A >::assign_into(), Piduino::RingBuffer< T, A >::chop(), Piduino::RingBuffer< T, A >::RingBuffer(), Piduino::RingBuffer< T, A >::skip(), and Piduino::RingBuffer< T, A >::~RingBuffer().
|
inlineprivate |
Definition at line 743 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::m_head.
Referenced by Piduino::RingBuffer< T, A >::push_front().
|
inlineprivate |
Definition at line 716 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_contents_size, Piduino::RingBuffer< T, A >::m_tail, and Piduino::RingBuffer< T, A >::previous_tail().
Referenced by Piduino::RingBuffer< T, A >::pop_back().
|
inline |
Definition at line 434 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_contents_size.
|
inline |
Definition at line 368 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::size().
Referenced by Piduino::end(), Piduino::end(), Piduino::operator<(), Piduino::operator==(), Piduino::RingBuffer< T, A >::rbegin(), Piduino::RingBuffer< T, A >::rbegin(), Piduino::RingBuffer< T, A >::reserve(), and Piduino::RingBuffer< T, A >::RingBuffer().
|
inline |
Definition at line 386 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::size().
|
inline |
access the first element
Definition at line 497 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_head.
|
inline |
access the first element
Definition at line 515 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array, and Piduino::RingBuffer< T, A >::m_head.
|
inline |
Definition at line 182 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_allocator.
|
inline |
Definition at line 684 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array.
|
inlineprivate |
Definition at line 733 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::m_head.
Referenced by Piduino::RingBuffer< T, A >::pop_front(), and Piduino::RingBuffer< T, A >::push_back().
|
inlineprivate |
Definition at line 711 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_contents_size, Piduino::RingBuffer< T, A >::m_tail, and Piduino::RingBuffer< T, A >::next_tail().
Referenced by Piduino::RingBuffer< T, A >::push_back().
|
inlineprivate |
Definition at line 707 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_head, and Piduino::RingBuffer< T, A >::normalise().
Referenced by Piduino::RingBuffer< T, A >::at_unchecked(), and Piduino::RingBuffer< T, A >::clear().
|
inline |
Definition at line 461 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_allocator.
|
inlineprivate |
Definition at line 721 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity, and Piduino::RingBuffer< T, A >::m_tail.
Referenced by Piduino::RingBuffer< T, A >::increment_tail(), and Piduino::RingBuffer< T, A >::push_back().
|
inlineprivate |
Definition at line 702 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity.
Referenced by Piduino::RingBuffer< T, A >::index_to_subscript().
|
inline |
copy-swap idiom using value parameter
other |
Definition at line 154 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::swap().
|
inline |
n |
Definition at line 665 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::at_unchecked().
|
inline |
n |
Definition at line 534 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::at_unchecked().
|
inline |
Remove the last element from the container.
Definition at line 616 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::decrement_tail(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::previous_tail().
Referenced by Piduino::RingBuffer< T, A >::chop().
|
inline |
Removes the first element of the container.
Definition at line 603 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::increment_head(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::m_head.
Referenced by Piduino::RingBuffer< T, A >::skip().
|
inlineprivate |
Definition at line 729 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity, and Piduino::RingBuffer< T, A >::m_head.
Referenced by Piduino::RingBuffer< T, A >::push_front().
|
inlineprivate |
Definition at line 725 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_capacity, and Piduino::RingBuffer< T, A >::m_tail.
Referenced by Piduino::RingBuffer< T, A >::decrement_tail(), and Piduino::RingBuffer< T, A >::pop_back().
|
inline |
Appends the given item to the end of the container.
Definition at line 569 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::increment_head(), Piduino::RingBuffer< T, A >::increment_tail(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_capacity, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::next_tail().
Referenced by Piduino::RingBuffer< T, A >::assign_into().
|
inline |
Insert a new element at the beginning of the container.
Definition at line 586 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::decrement_head(), Piduino::RingBuffer< T, A >::m_allocator, Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_capacity, Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::previous_head().
|
inline |
Definition at line 395 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::end().
|
inline |
Definition at line 413 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::end().
|
inline |
Definition at line 404 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::begin().
|
inline |
Definition at line 422 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::begin().
|
inline |
reserve shrinks or expands the internal buffer to the size given
if the buffer shrinks, keep at most the last new_size items.
new_size |
Definition at line 475 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::assign_into(), Piduino::RingBuffer< T, A >::begin(), Piduino::RingBuffer< T, A >::capacity(), Piduino::RingBuffer< T, A >::end(), Piduino::RingBuffer< T, A >::size(), and Piduino::RingBuffer< T, A >::swap().
|
inline |
Definition at line 452 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_contents_size.
Referenced by Piduino::RingBuffer< T, A >::end(), Piduino::RingBuffer< T, A >::end(), Piduino::operator==(), and Piduino::RingBuffer< T, A >::reserve().
|
inline |
n |
Definition at line 630 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::m_contents_size, and Piduino::RingBuffer< T, A >::pop_front().
|
inline |
other |
Definition at line 163 of file ringbuffer.h.
References Piduino::RingBuffer< T, A >::m_array, Piduino::RingBuffer< T, A >::m_capacity, Piduino::RingBuffer< T, A >::m_contents_size, Piduino::RingBuffer< T, A >::m_head, Piduino::RingBuffer< T, A >::m_tail, and Piduino::RingBuffer< T, A >::swap().
Referenced by Piduino::RingBuffer< T, A >::operator=(), Piduino::RingBuffer< T, A >::reserve(), Piduino::RingBuffer< T, A >::RingBuffer(), and Piduino::RingBuffer< T, A >::swap().
|
private |
Definition at line 766 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::get_allocator(), Piduino::RingBuffer< T, A >::max_size(), Piduino::RingBuffer< T, A >::pop_back(), Piduino::RingBuffer< T, A >::pop_front(), Piduino::RingBuffer< T, A >::push_back(), Piduino::RingBuffer< T, A >::push_front(), Piduino::RingBuffer< T, A >::RingBuffer(), and Piduino::RingBuffer< T, A >::~RingBuffer().
|
private |
Definition at line 767 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::at_unchecked(), Piduino::RingBuffer< T, A >::back(), Piduino::RingBuffer< T, A >::back(), Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::front(), Piduino::RingBuffer< T, A >::front(), Piduino::RingBuffer< T, A >::getimpl(), Piduino::RingBuffer< T, A >::pop_back(), Piduino::RingBuffer< T, A >::pop_front(), Piduino::RingBuffer< T, A >::push_back(), Piduino::RingBuffer< T, A >::push_front(), Piduino::RingBuffer< T, A >::RingBuffer(), Piduino::RingBuffer< T, A >::swap(), and Piduino::RingBuffer< T, A >::~RingBuffer().
|
private |
Definition at line 765 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::capacity(), Piduino::RingBuffer< T, A >::decrement_head(), Piduino::RingBuffer< T, A >::increment_head(), Piduino::RingBuffer< T, A >::next_tail(), Piduino::RingBuffer< T, A >::normalise(), Piduino::RingBuffer< T, A >::previous_head(), Piduino::RingBuffer< T, A >::previous_tail(), Piduino::RingBuffer< T, A >::push_back(), Piduino::RingBuffer< T, A >::push_front(), Piduino::RingBuffer< T, A >::RingBuffer(), Piduino::RingBuffer< T, A >::swap(), and Piduino::RingBuffer< T, A >::~RingBuffer().
|
private |
Definition at line 770 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::assign_into(), Piduino::RingBuffer< T, A >::at_checked(), Piduino::RingBuffer< T, A >::chop(), Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::decrement_head(), Piduino::RingBuffer< T, A >::decrement_tail(), Piduino::RingBuffer< T, A >::empty(), Piduino::RingBuffer< T, A >::increment_head(), Piduino::RingBuffer< T, A >::increment_tail(), Piduino::RingBuffer< T, A >::pop_back(), Piduino::RingBuffer< T, A >::pop_front(), Piduino::RingBuffer< T, A >::push_back(), Piduino::RingBuffer< T, A >::push_front(), Piduino::RingBuffer< T, A >::size(), Piduino::RingBuffer< T, A >::skip(), and Piduino::RingBuffer< T, A >::swap().
|
private |
Definition at line 768 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::decrement_head(), Piduino::RingBuffer< T, A >::front(), Piduino::RingBuffer< T, A >::front(), Piduino::RingBuffer< T, A >::increment_head(), Piduino::RingBuffer< T, A >::index_to_subscript(), Piduino::RingBuffer< T, A >::pop_front(), Piduino::RingBuffer< T, A >::previous_head(), and Piduino::RingBuffer< T, A >::swap().
|
private |
Definition at line 769 of file ringbuffer.h.
Referenced by Piduino::RingBuffer< T, A >::back(), Piduino::RingBuffer< T, A >::back(), Piduino::RingBuffer< T, A >::clear(), Piduino::RingBuffer< T, A >::decrement_tail(), Piduino::RingBuffer< T, A >::increment_tail(), Piduino::RingBuffer< T, A >::next_tail(), Piduino::RingBuffer< T, A >::previous_tail(), and Piduino::RingBuffer< T, A >::swap().