scc 2025.09
SystemC components library
util::ring_buffer< T > Class Template Reference

Circular buffer. More...

#include <ring_buffer.h>

Classes

class  iterator_type
 Iterator through the circular buffer. More...

Public Types

typedef iterator_type< false > iterator
typedef iterator_type< true > const_iterator

Public Member Functions

 ring_buffer (size_t size)
 Constructor.
 ring_buffer ()
 Default constructor.
 ring_buffer (ring_buffer const &other)=delete
 Copy constructor.
 ring_buffer (ring_buffer &&other)=delete
 Copy constructor.
 ring_buffer (std::initializer_list< T > il)
 Initializer list constructor.
ring_bufferoperator= (ring_buffer const &rhs)=delete
 Assignment operator.
ring_bufferoperator= (ring_buffer &&rhs)=delete
bool operator== (ring_buffer< T > const &other) const noexcept
 Equality operator.
bool operator!= (ring_buffer< T > const &other) const noexcept
 Inequality operator.
 operator std::vector< T > () const
 Vector conversion operator.
void push_back (T const &item)
 Inserts new element in buffer.
void push_back (T &&item)
iterator begin () noexcept
 Return an iterator pointing to first (oldest) element in buffer.
const_iterator begin () const noexcept
 Return a const iterator pointing to first (oldest) element in buffer.
const_iterator cbegin () const noexcept
 Return a const iterator pointing to first (oldest) element in buffer.
iterator end () noexcept
 Return an iterator pointing past the last (newest) element in buffer.
const_iterator end () const noexcept
 Return a const iterator pointing past the last (newest) element in buffer.
const_iterator cend () const noexcept
 Return an iterator pointing past the last (newest) element in buffer.
void pop_front ()
 Remove oldest element from buffer.
T & front ()
 Return a reference to first (oldest) element in buffer.
T const & front () const
 Return a reference to first (oldest) element in buffer.
T & back ()
 Return reference to last (newest) element in buffer.
T const & back () const
 Return reference to last (newest) element in buffer.
void clear (void)
 Remove all elements from buffer.
bool empty (void) const noexcept
 Return true if buffer is empty.
bool full (void) const noexcept
 Return true if buffer is full.
size_t capacity (void) const noexcept
 Return maximum buffer size.
void resize (size_t new_cap)
 (Re)allocate buffer with a different capacity
size_t size () const noexcept
 Return number of elements in buffer.

Detailed Description

template<class T>
class util::ring_buffer< T >

Circular buffer.

Definition at line 41 of file ring_buffer.h.

Member Typedef Documentation

◆ const_iterator

template<class T>
typedef iterator_type<true> util::ring_buffer< T >::const_iterator

Definition at line 175 of file ring_buffer.h.

◆ iterator

template<class T>
typedef iterator_type<false> util::ring_buffer< T >::iterator

Definition at line 174 of file ring_buffer.h.

Constructor & Destructor Documentation

◆ ring_buffer() [1/3]

template<class T>
util::ring_buffer< T >::ring_buffer ( size_t size)
inline

Constructor.

Definition at line 178 of file ring_buffer.h.

◆ ring_buffer() [2/3]

template<class T>
util::ring_buffer< T >::ring_buffer ( )
inline

Default constructor.

Definition at line 186 of file ring_buffer.h.

◆ ring_buffer() [3/3]

template<class T>
util::ring_buffer< T >::ring_buffer ( std::initializer_list< T > il)
inline

Initializer list constructor.

Definition at line 199 of file ring_buffer.h.

Member Function Documentation

◆ back() [1/2]

template<class T>
T & util::ring_buffer< T >::back ( )
inline

Return reference to last (newest) element in buffer.

Definition at line 302 of file ring_buffer.h.

◆ back() [2/2]

template<class T>
T const & util::ring_buffer< T >::back ( ) const
inline

Return reference to last (newest) element in buffer.

Definition at line 309 of file ring_buffer.h.

◆ begin() [1/2]

template<class T>
const_iterator util::ring_buffer< T >::begin ( ) const
inlinenoexcept

Return a const iterator pointing to first (oldest) element in buffer.

Definition at line 265 of file ring_buffer.h.

◆ begin() [2/2]

template<class T>
iterator util::ring_buffer< T >::begin ( )
inlinenoexcept

Return an iterator pointing to first (oldest) element in buffer.

Definition at line 262 of file ring_buffer.h.

◆ capacity()

template<class T>
size_t util::ring_buffer< T >::capacity ( void ) const
inlinenoexcept

Return maximum buffer size.

Definition at line 332 of file ring_buffer.h.

◆ cbegin()

template<class T>
const_iterator util::ring_buffer< T >::cbegin ( ) const
inlinenoexcept

Return a const iterator pointing to first (oldest) element in buffer.

Definition at line 268 of file ring_buffer.h.

◆ cend()

template<class T>
const_iterator util::ring_buffer< T >::cend ( ) const
inlinenoexcept

Return an iterator pointing past the last (newest) element in buffer.

Definition at line 277 of file ring_buffer.h.

◆ clear()

template<class T>
void util::ring_buffer< T >::clear ( void )
inline

Remove all elements from buffer.

Definition at line 316 of file ring_buffer.h.

◆ empty()

template<class T>
bool util::ring_buffer< T >::empty ( void ) const
inlinenoexcept

Return true if buffer is empty.

Definition at line 326 of file ring_buffer.h.

◆ end() [1/2]

template<class T>
const_iterator util::ring_buffer< T >::end ( ) const
inlinenoexcept

Return a const iterator pointing past the last (newest) element in buffer.

Definition at line 274 of file ring_buffer.h.

◆ end() [2/2]

template<class T>
iterator util::ring_buffer< T >::end ( )
inlinenoexcept

Return an iterator pointing past the last (newest) element in buffer.

Definition at line 271 of file ring_buffer.h.

◆ front() [1/2]

template<class T>
T & util::ring_buffer< T >::front ( )
inline

Return a reference to first (oldest) element in buffer.

Definition at line 288 of file ring_buffer.h.

◆ front() [2/2]

template<class T>
T const & util::ring_buffer< T >::front ( ) const
inline

Return a reference to first (oldest) element in buffer.

Definition at line 295 of file ring_buffer.h.

◆ full()

template<class T>
bool util::ring_buffer< T >::full ( void ) const
inlinenoexcept

Return true if buffer is full.

Definition at line 329 of file ring_buffer.h.

◆ operator std::vector< T >()

template<class T>
util::ring_buffer< T >::operator std::vector< T > ( ) const
inline

Vector conversion operator.

Definition at line 233 of file ring_buffer.h.

◆ operator!=()

template<class T>
bool util::ring_buffer< T >::operator!= ( ring_buffer< T > const & other) const
inlinenoexcept

Inequality operator.

Definition at line 230 of file ring_buffer.h.

◆ operator==()

template<class T>
bool util::ring_buffer< T >::operator== ( ring_buffer< T > const & other) const
inlinenoexcept

Equality operator.

Definition at line 216 of file ring_buffer.h.

◆ pop_front()

template<class T>
void util::ring_buffer< T >::pop_front ( )
inline

Remove oldest element from buffer.

Definition at line 280 of file ring_buffer.h.

◆ push_back() [1/2]

template<class T>
void util::ring_buffer< T >::push_back ( T && item)
inline

Definition at line 251 of file ring_buffer.h.

◆ push_back() [2/2]

template<class T>
void util::ring_buffer< T >::push_back ( T const & item)
inline

Inserts new element in buffer.

Definition at line 241 of file ring_buffer.h.

◆ resize()

template<class T>
void util::ring_buffer< T >::resize ( size_t new_cap)
inline

(Re)allocate buffer with a different capacity

Definition at line 335 of file ring_buffer.h.

◆ size()

template<class T>
size_t util::ring_buffer< T >::size ( ) const
inlinenoexcept

Return number of elements in buffer.

Definition at line 352 of file ring_buffer.h.


The documentation for this class was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/common/util/ring_buffer.h