iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
Public Member Functions | List of all members
IPlugQueue< T > Class Template Referencefinal

A lock-free SPSC queue used to transfer data between threads based on MLQueue.h by Randy Jones based on https://kjellkod.wordpress.com/2012/11/28/c-debt-paid-in-full-wait-free-lock-free-queue/. More...

#include <IPlugQueue.h>

Public Member Functions

 IPlugQueue (int size)
 IPlugQueue constructor. More...
 
 IPlugQueue (const IPlugQueue &)=delete
 
IPlugQueueoperator= (const IPlugQueue &)=delete
 
void Resize (int size)
 
bool Push (const T &item)
 
bool Pop (T &item)
 
size_t ElementsAvailable () const
 
const T & Peek ()
 
bool WasEmpty () const
 
bool WasFull () const
 

Detailed Description

template<typename T>
class IPlugQueue< T >

A lock-free SPSC queue used to transfer data between threads based on MLQueue.h by Randy Jones based on https://kjellkod.wordpress.com/2012/11/28/c-debt-paid-in-full-wait-free-lock-free-queue/.

Definition at line 31 of file IPlugQueue.h.

Constructor & Destructor Documentation

◆ IPlugQueue()

template<typename T >
IPlugQueue< T >::IPlugQueue ( int  size)
inline

IPlugQueue constructor.

Parameters
size
Todo:

Definition at line 36 of file IPlugQueue.h.

References IPlugQueue< T >::Resize().

◆ ~IPlugQueue()

template<typename T >
IPlugQueue< T >::~IPlugQueue ( )
inline

Definition at line 41 of file IPlugQueue.h.

Member Function Documentation

◆ ElementsAvailable()

template<typename T >
size_t IPlugQueue< T >::ElementsAvailable ( ) const
inline
Todo:
Returns
size_t
Todo:

Definition at line 88 of file IPlugQueue.h.

◆ Peek()

template<typename T >
const T & IPlugQueue< T >::Peek ( )
inline
Todo:
useful for reading elements while a criterion is met. Can be used like while IPlugQueue.ElementsAvailable() && q.peek().mTime < 100 { elem = q.pop() ... }
Returns
const T&
Todo:

Definition at line 100 of file IPlugQueue.h.

◆ Pop()

template<typename T >
bool IPlugQueue< T >::Pop ( T &  item)
inline
Todo:
Parameters
item
Todo:
Returns
true
Todo:
Returns
false
Todo:

Definition at line 74 of file IPlugQueue.h.

◆ Push()

template<typename T >
bool IPlugQueue< T >::Push ( const T &  item)
inline
Todo:
Parameters
item
Todo:
Returns
true
Todo:
Returns
false
Todo:

Definition at line 57 of file IPlugQueue.h.

Referenced by IPlugAPIBase::SendParameterValueFromAPI().

◆ Resize()

template<typename T >
void IPlugQueue< T >::Resize ( int  size)
inline
Todo:
Parameters
size
Todo:

Definition at line 48 of file IPlugQueue.h.

Referenced by IPlugQueue< T >::IPlugQueue().

◆ WasEmpty()

template<typename T >
bool IPlugQueue< T >::WasEmpty ( ) const
inline
Todo:
Returns
true
Todo:
Returns
false
Todo:

Definition at line 109 of file IPlugQueue.h.

◆ WasFull()

template<typename T >
bool IPlugQueue< T >::WasFull ( ) const
inline
Todo:
Returns
true
Todo:
Returns
false
Todo:

Definition at line 117 of file IPlugQueue.h.


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