XenevaOS
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
libhelix::BaseBuffer< T > Class Template Referenceabstract

Shared functionality of all buffers. More...

#include <Buffers.h>

Inheritance diagram for libhelix::BaseBuffer< T >:
Inheritance graph
[legend]

Public Member Functions

 BaseBuffer ()=default
 
virtual ~BaseBuffer ()=default
 
 BaseBuffer (BaseBuffer const &)=delete
 
BaseBuffer & operator= (BaseBuffer const &)=delete
 
virtual T read ()=0
 reads a single value
 
virtual int readArray (T data[], int len)
 reads multiple values
 
virtual int clearArray (int len)
 Removes the next len entries.
 
virtual int writeArray (const T data[], int len)
 Fills the buffer data.
 
virtual int writeArrayOverwrite (const T data[], int len)
 Fills the buffer data and overwrites the oldest data if the buffer is full.
 
int readFrames (T data[][2], int len)
 reads multiple values for array of 2 dimensional frames
 
template<int rows, int channels>
int readFrames (T(&data)[rows][channels])
 
virtual T peek ()=0
 peeks the actual entry from the buffer
 
virtual bool isFull ()=0
 checks if the buffer is full
 
bool isEmpty ()
 
virtual bool write (T data)=0
 write add an entry to the buffer
 
virtual void reset ()=0
 clears the buffer
 
void clear ()
 same as reset
 
virtual int available ()=0
 provides the number of entries that are available to read
 
virtual int availableForWrite ()=0
 provides the number of entries that are available to write
 
virtual T * address ()=0
 returns the address of the start of the physical read buffer
 
virtual size_t size ()=0
 

Protected Member Functions

void setWritePos (int pos)
 

Detailed Description

template<typename T>
class libhelix::BaseBuffer< T >

Shared functionality of all buffers.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ BaseBuffer() [1/2]

template<typename T >
libhelix::BaseBuffer< T >::BaseBuffer ( )
default

◆ ~BaseBuffer()

template<typename T >
virtual libhelix::BaseBuffer< T >::~BaseBuffer ( )
virtualdefault

◆ BaseBuffer() [2/2]

template<typename T >
libhelix::BaseBuffer< T >::BaseBuffer ( BaseBuffer< T > const &  )
delete

Member Function Documentation

◆ address()

template<typename T >
virtual T * libhelix::BaseBuffer< T >::address ( )
pure virtual

returns the address of the start of the physical read buffer

Implemented in libhelix::SingleBuffer< T >.

◆ available()

template<typename T >
virtual int libhelix::BaseBuffer< T >::available ( )
pure virtual

provides the number of entries that are available to read

Implemented in libhelix::SingleBuffer< T >.

◆ availableForWrite()

template<typename T >
virtual int libhelix::BaseBuffer< T >::availableForWrite ( )
pure virtual

provides the number of entries that are available to write

Implemented in libhelix::SingleBuffer< T >.

◆ clear()

template<typename T >
void libhelix::BaseBuffer< T >::clear ( )
inline

same as reset

◆ clearArray()

template<typename T >
virtual int libhelix::BaseBuffer< T >::clearArray ( int  len)
inlinevirtual

Removes the next len entries.

Reimplemented in libhelix::SingleBuffer< T >.

◆ isEmpty()

template<typename T >
bool libhelix::BaseBuffer< T >::isEmpty ( )
inline

◆ isFull()

template<typename T >
virtual bool libhelix::BaseBuffer< T >::isFull ( )
pure virtual

checks if the buffer is full

Implemented in libhelix::SingleBuffer< T >.

◆ operator=()

template<typename T >
BaseBuffer & libhelix::BaseBuffer< T >::operator= ( BaseBuffer< T > const &  )
delete

◆ peek()

template<typename T >
virtual T libhelix::BaseBuffer< T >::peek ( )
pure virtual

peeks the actual entry from the buffer

Implemented in libhelix::SingleBuffer< T >.

◆ read()

template<typename T >
virtual T libhelix::BaseBuffer< T >::read ( )
pure virtual

reads a single value

Implemented in libhelix::SingleBuffer< T >.

◆ readArray()

template<typename T >
virtual int libhelix::BaseBuffer< T >::readArray ( T  data[],
int  len 
)
inlinevirtual

reads multiple values

◆ readFrames() [1/2]

template<typename T >
int libhelix::BaseBuffer< T >::readFrames ( T  data[][2],
int  len 
)
inline

reads multiple values for array of 2 dimensional frames

◆ readFrames() [2/2]

template<typename T >
template<int rows, int channels>
int libhelix::BaseBuffer< T >::readFrames ( T(&)  data[rows][channels])
inline

◆ reset()

template<typename T >
virtual void libhelix::BaseBuffer< T >::reset ( )
pure virtual

clears the buffer

Implemented in libhelix::SingleBuffer< T >.

◆ setWritePos()

template<typename T >
void libhelix::BaseBuffer< T >::setWritePos ( int  pos)
inlineprotected

◆ size()

template<typename T >
virtual size_t libhelix::BaseBuffer< T >::size ( )
pure virtual

Implemented in libhelix::SingleBuffer< T >.

◆ write()

template<typename T >
virtual bool libhelix::BaseBuffer< T >::write ( T  data)
pure virtual

write add an entry to the buffer

Implemented in libhelix::SingleBuffer< T >.

◆ writeArray()

template<typename T >
virtual int libhelix::BaseBuffer< T >::writeArray ( const T  data[],
int  len 
)
inlinevirtual

Fills the buffer data.

◆ writeArrayOverwrite()

template<typename T >
virtual int libhelix::BaseBuffer< T >::writeArrayOverwrite ( const T  data[],
int  len 
)
inlinevirtual

Fills the buffer data and overwrites the oldest data if the buffer is full.


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