commonlib
FifoBufferBase< T > Class Template Reference

The class FifoBufferBase is used to implement first-in-first-out (FIFO) buffers. More...

#include <fifo_buffer_base.h>

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

Public Member Functions

 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...
 
virtual void setCapacity (size_t aCapacity)
 Function allocates memory at the heap. 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 >
virtual T * getData () const=0
 Function returns pointer to the internal buffer. More...
 
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 >
virtual T * getData () const =0
 Function returns pointer to the internal buffer. More...
 
size_t writeSamples (const T *samples, size_t samplesCount, bool incrementPosition=true) override
 Function pushes the samples into buffer. More...
 

Protected Attributes

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 FifoBufferBase< T >

The class FifoBufferBase is used to implement first-in-first-out (FIFO) buffers.

Constructor & Destructor Documentation

◆ FifoBufferBase()

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

The constructor creates an instance.

Parameters
aCapacitydefines initial allocation for N values

Member Function Documentation

◆ getCapacity()

template<typename T >
size_t FifoBufferBase< T >::getCapacity ( ) const
overridevirtual

Function returns buffer capacity in values.

Returns
Capacity in samples.

Implements IDirectArrayTargetBuffer< T >.

◆ getLock()

template<typename T >
std::recursive_mutex & FifoBufferBase< T >::getLock ( )
overridevirtual

Function return locking object.

Returns
Locking object

Implements ISourceBuffer< T >.

◆ getReadPos()

template<typename T >
size_t FifoBufferBase< T >::getReadPos ( )
overridevirtual

Function returns current read position.

Returns
Current read position.

Implements IDirectArraySourceBuffer< T >.

◆ getRemainingSize()

template<typename T >
size_t FifoBufferBase< T >::getRemainingSize ( )
overridevirtual

Function returns remaining size in values.

Returns
Size in values.

Implements ITargetBuffer< T >.

◆ getSize()

template<typename T >
size_t FifoBufferBase< T >::getSize ( )
overridevirtual

Function returns current buffer size in values.

Returns
Size in values.

Implements ISourceBuffer< T >.

◆ getWritePos()

template<typename T >
size_t FifoBufferBase< T >::getWritePos ( )
overridevirtual

Function returns current write position.

Returns
Current write position.

Implements IDirectArrayTargetBuffer< T >.

◆ incrementReadPosition()

template<typename T >
void FifoBufferBase< T >::incrementReadPosition ( size_t  pos)
overridevirtual

Function increments read position for N values.

Parameters
posan increment value
Returns
void

Implements ISourceBuffer< T >.

◆ incrementWritePosition()

template<typename T >
void FifoBufferBase< T >::incrementWritePosition ( size_t  pos)
overridevirtual

Function increments write position for N values.

Parameters
posan increment value
Returns
void

Implements ITargetBuffer< T >.

◆ isFull()

template<typename T >
bool FifoBufferBase< T >::isFull ( )
virtual

Function returns true if buffer is full.

Returns
Buffer full.

◆ reset()

template<typename T >
void FifoBufferBase< T >::reset ( )
virtual

Function resets all positions to default value.

Returns
void

Reimplemented in DiskBuffer< T >.

◆ setCapacity()

template<typename T >
void FifoBufferBase< T >::setCapacity ( size_t  aCapacity)
virtual

Function allocates memory at the heap.

Parameters
aCapacitya buffer capacity in values
Returns
void

Reimplemented in FifoBuffer< T >.


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