dsplib 1.1.0
C++ DSP library for MATLAB-like coding
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dsplib::FIFOBuffer< T > Class Template Reference

A thread-unsafe FIFO buffer for trivially copyable data types. More...

#include <buffer.h>

Public Member Functions

 FIFOBuffer ()=default
 Default constructor Creates an empty buffer with default capacity.
 
void write (span_t< T > data) noexcept
 Write data to buffer.
 
void write (const T &value) noexcept
 Write single element (copy)
 
int read (mut_span_t< T > out) noexcept
 Read data from buffer.
 
std::vector< T > read (int n) noexcept
 Read data to new vector.
 
int size () const noexcept
 Get current element count.
 
bool empty () const noexcept
 Check if buffer empty.
 
void reset () noexcept
 Clear buffer contents Removes all elements. Preserves allocated capacity.
 
span_t< T > view () const noexcept
 Get read-only view of buffer.
 

Detailed Description

template<typename T>
class dsplib::FIFOBuffer< T >

A thread-unsafe FIFO buffer for trivially copyable data types.

Template Parameters
TElement type (must be trivially copyable and not bool)
Warning
Not thread-safe for concurrent access
T must be trivially copyable (POD-like)

Member Function Documentation

◆ empty()

template<typename T >
bool dsplib::FIFOBuffer< T >::empty ( ) const
inlinenoexcept

Check if buffer empty.

Returns
true if size() == 0

◆ read() [1/2]

template<typename T >
std::vector< T > dsplib::FIFOBuffer< T >::read ( int  n)
inlinenoexcept

Read data to new vector.

Parameters
nNumber of elements to read
Returns
Vector with read elements

◆ read() [2/2]

template<typename T >
int dsplib::FIFOBuffer< T >::read ( mut_span_t< T >  out)
inlinenoexcept

Read data from buffer.

Parameters
outOutput span for data
Returns
Number of elements actually read

◆ size()

template<typename T >
int dsplib::FIFOBuffer< T >::size ( ) const
inlinenoexcept

Get current element count.

Returns
Number of elements in buffer

◆ view()

template<typename T >
span_t< T > dsplib::FIFOBuffer< T >::view ( ) const
inlinenoexcept

Get read-only view of buffer.

Returns
Span covering all elements (in FIFO order)
Warning
Invalidated by write operations

◆ write() [1/2]

template<typename T >
void dsplib::FIFOBuffer< T >::write ( const T &  value)
inlinenoexcept

Write single element (copy)

Parameters
valueElement to append

◆ write() [2/2]

template<typename T >
void dsplib::FIFOBuffer< T >::write ( span_t< T >  data)
inlinenoexcept

Write data to buffer.

Parameters
dataContiguous span of elements to append Appends elements to the end of buffer. No-op for empty spans.

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