LMMS
Loading...
Searching...
No Matches
SafeQueue< T > Class Template Reference

#include <SafeQueue.h>

Public Member Functions

 SafeQueue (size_t maxlen)
 ~SafeQueue ()
unsigned int size () const
int push (const T &in)
int peak (T &out) const
int pop (T &out)
void clear ()

Private Member Functions

unsigned int wSpace () const
unsigned int rSpace () const

Private Attributes

ZynSema w_space
ZynSema r_space
size_t writePtr
size_t readPtr
const size_t bufSize
T * buffer

Detailed Description

template<class T>
class SafeQueue< T >

C++ thread safe lockless queue Based off of jack's ringbuffer

Constructor & Destructor Documentation

◆ SafeQueue()

template<class T>
SafeQueue< T >::SafeQueue ( size_t maxlen)

◆ ~SafeQueue()

template<class T>
SafeQueue< T >::~SafeQueue ( )

Member Function Documentation

◆ clear()

template<class T>
void SafeQueue< T >::clear ( )

◆ peak()

template<class T>
int SafeQueue< T >::peak ( T & out) const

◆ pop()

template<class T>
int SafeQueue< T >::pop ( T & out)

◆ push()

template<class T>
int SafeQueue< T >::push ( const T & in)

Returns 0 for normal Returns -1 on error

◆ rSpace()

template<class T>
unsigned int SafeQueue< T >::rSpace ( ) const
private

◆ size()

template<class T>
unsigned int SafeQueue< T >::size ( ) const

Return read size

◆ wSpace()

template<class T>
unsigned int SafeQueue< T >::wSpace ( ) const
private

Member Data Documentation

◆ buffer

template<class T>
T* SafeQueue< T >::buffer
private

◆ bufSize

template<class T>
const size_t SafeQueue< T >::bufSize
private

◆ r_space

template<class T>
ZynSema SafeQueue< T >::r_space
mutableprivate

◆ readPtr

template<class T>
size_t SafeQueue< T >::readPtr
private

◆ w_space

template<class T>
ZynSema SafeQueue< T >::w_space
mutableprivate

◆ writePtr

template<class T>
size_t SafeQueue< T >::writePtr
private

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