iPlug2 - C++ Audio Plug-in Framework
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 29 of file IPlugQueue.h.

Constructor & Destructor Documentation

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

IPlugQueue constructor.

Parameters
size

Definition at line 34 of file IPlugQueue.h.

Referenced by IPlugQueue< ISenderData< MAXNC, T > >::IPlugQueue().

Member Function Documentation

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

Definition at line 86 of file IPlugQueue.h.

Referenced by IPlugAPP::SendSysEx().

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 95 of file IPlugQueue.h.

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

Definition at line 72 of file IPlugQueue.h.

Referenced by IPlugAPP::SendSysEx().

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

Definition at line 55 of file IPlugQueue.h.

Referenced by IPlugAPIBase::HostSpecificInit(), and IPlugAPP::SendSysEx().

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

Definition at line 46 of file IPlugQueue.h.

Referenced by IPlugQueue< ISenderData< MAXNC, T > >::IPlugQueue().

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

Definition at line 104 of file IPlugQueue.h.

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

Definition at line 112 of file IPlugQueue.h.


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