commonlib
FifoBuffer< T > Class Template Reference

The class FifoBuffer implements a first-in-first-out (FIFO) data structure. More...

#include <fifobuffer.h>

Inheritance diagram for FifoBuffer< T >:
FifoBufferBase< T > IDirectArraySourceBuffer< T > IDirectArrayTargetBuffer< T > ISourceBuffer< T > ITargetBuffer< T >

Public Member Functions

 FifoBuffer (size_t aCapacity=0)
 The constructor allocates memory at the heap and creates an instance. More...
 
void setCapacity (size_t aCapacity) override
 Function allocates memory at the heap. More...
 
FifoBufferStatus< T > getStatus ()
 Function returns FifoBuffer status which can be used for optimization. More...
 
T * getData () const override
 Function returns pointer to the internal buffer. More...
 
std::size_t getSize () const
 Function returns current buffer size in values. More...
 
- Public Member Functions inherited from FifoBufferBase< T >
 FifoBufferBase (size_t aCapacity=0)
 The constructor creates an instance. More...
 
size_t getReadPos () override
 Function returns current read position. More...
 
size_t getWritePos () override
 Function returns current write position. More...
 
size_t getSize () override
 Function returns current buffer size in values. More...
 
size_t getRemainingSize () override
 Function returns remaining size in values. More...
 
size_t getCapacity () const override
 Function returns buffer capacity in values. More...
 
virtual bool isFull ()
 Function returns true if buffer is full. More...
 
virtual void reset ()
 Function resets all positions to default value. More...
 
std::recursive_mutex & getLock () override
 Function return locking object. More...
 
void incrementReadPosition (size_t pos) override
 Function increments read position for N values. More...
 
void incrementWritePosition (size_t pos) override
 Function increments write position for N values. More...
 
- Public Member Functions inherited from IDirectArraySourceBuffer< T >
size_t readSamples (T *samples, size_t samplesCount, bool incrementPosition=true) override
 Function reads the samples from buffer. More...
 
virtual size_t readSamplesAt (T *samples, size_t samplesCount, bool incrementPosition=true, size_t readOffset=0)
 Function reads the samples from buffer. More...
 
- Public Member Functions inherited from IDirectArrayTargetBuffer< T >
size_t writeSamples (const T *samples, size_t samplesCount, bool incrementPosition=true) override
 Function pushes the samples into buffer. More...
 

Protected Attributes

std::unique_ptr< T[]> buffer
 
- Protected Attributes inherited from FifoBufferBase< T >
std::recursive_mutex lock
 
size_t size {0}
 
size_t capacity {0}
 

Additional Inherited Members

- Protected Member Functions inherited from IDirectArraySourceBuffer< T >
virtual size_t read (T *samples, size_t samplesCount, size_t pos)
 Implements read from buffer. More...
 
virtual size_t read (T *samples, size_t samplesCount)
 Function read from buffer from current location. More...
 
- Protected Member Functions inherited from IDirectArrayTargetBuffer< T >
virtual size_t write (const T *samples, size_t samplesCount, size_t pos)
 Implements write into buffer. More...
 
virtual size_t write (const T *samples, size_t samplesCount)
 Implements write into buffer to current location. More...
 

Detailed Description

template<typename T>
class FifoBuffer< T >

The class FifoBuffer implements a first-in-first-out (FIFO) data structure.

Constructor & Destructor Documentation

◆ FifoBuffer()

template<typename T >
FifoBuffer< T >::FifoBuffer ( size_t  aCapacity = 0)
explicit

The constructor allocates memory at the heap and creates an instance.

Parameters
aCapacitya memory allocation for N samples

Member Function Documentation

◆ getData()

template<typename T >
T * FifoBuffer< T >::getData ( ) const
overridevirtual

Function returns pointer to the internal buffer.

Returns
Pointer to the first sample in the buffer.

Implements IDirectArrayTargetBuffer< T >.

◆ getSize()

template<typename T >
std::size_t FifoBuffer< T >::getSize ( ) const

Function returns current buffer size in values.

Returns
Size in values.

◆ getStatus()

template<typename T >
FifoBufferStatus< T > FifoBuffer< T >::getStatus ( )

Function returns FifoBuffer status which can be used for optimization.

Returns
FifoBuffer status.

◆ setCapacity()

template<typename T >
void FifoBuffer< T >::setCapacity ( size_t  aCapacity)
overridevirtual

Function allocates memory at the heap.

Parameters
aCapacitya buffer capacity in samples
Returns
void

Reimplemented from FifoBufferBase< T >.


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