Sound Byte Libs 0.5.1-121-g3358a44
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
Loading...
Searching...
No Matches
sbl::primitives::buffers::RingBuffer< T, Size > Class Template Reference

Detailed Description

template<typename T, uint32_t Size>
class sbl::primitives::buffers::RingBuffer< T, Size >

Definition at line 74 of file ring_buffer.hpp.

#include <ring_buffer.hpp>

Public Member Functions

 RingBuffer ()=default
 
bool push (const T &item)
 Push an element (producer side)
 
bool pop (T &item)
 Pop the oldest element (consumer side)
 
bool empty () const
 
bool full () const
 
uint32_t size () const
 Element count — a snapshot, may change immediately after the call.
 
void clear ()
 Empty the buffer. Only while neither producer nor consumer runs.
 

Static Public Member Functions

static constexpr uint32_t capacity ()
 

Constructor & Destructor Documentation

◆ RingBuffer()

template<typename T , uint32_t Size>
sbl::primitives::buffers::RingBuffer< T, Size >::RingBuffer ( )
default

Member Function Documentation

◆ push()

template<typename T , uint32_t Size>
bool sbl::primitives::buffers::RingBuffer< T, Size >::push ( const T &  item)
inline

Push an element (producer side)

Returns
false if the buffer is full; the element is not stored
Note
ISR-safe — bounded, non-blocking

Definition at line 89 of file ring_buffer.hpp.

References sbl::primitives::buffers::detail::ring_acquire_fence(), and sbl::primitives::buffers::detail::ring_release_fence().

◆ pop()

template<typename T , uint32_t Size>
bool sbl::primitives::buffers::RingBuffer< T, Size >::pop ( T &  item)
inline

Pop the oldest element (consumer side)

Returns
false if the buffer is empty; item is unchanged
Note
ISR-safe — bounded, non-blocking

Definition at line 107 of file ring_buffer.hpp.

References sbl::primitives::buffers::detail::ring_acquire_fence(), and sbl::primitives::buffers::detail::ring_release_fence().

◆ empty()

template<typename T , uint32_t Size>
bool sbl::primitives::buffers::RingBuffer< T, Size >::empty ( ) const
inline

Definition at line 119 of file ring_buffer.hpp.

◆ full()

template<typename T , uint32_t Size>
bool sbl::primitives::buffers::RingBuffer< T, Size >::full ( ) const
inline

Definition at line 124 of file ring_buffer.hpp.

◆ size()

template<typename T , uint32_t Size>
uint32_t sbl::primitives::buffers::RingBuffer< T, Size >::size ( ) const
inline

Element count — a snapshot, may change immediately after the call.

Definition at line 130 of file ring_buffer.hpp.

◆ capacity()

template<typename T , uint32_t Size>
static constexpr uint32_t sbl::primitives::buffers::RingBuffer< T, Size >::capacity ( )
inlinestaticconstexpr

Definition at line 135 of file ring_buffer.hpp.

◆ clear()

template<typename T , uint32_t Size>
void sbl::primitives::buffers::RingBuffer< T, Size >::clear ( )
inline

Empty the buffer. Only while neither producer nor consumer runs.

Definition at line 138 of file ring_buffer.hpp.


The documentation for this class was generated from the following file: