![]() |
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().