Ogre Video and Audio Plugins  master
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Modules Pages
OgreOggSound::LocklessQueue< Type > Class Template Reference

LocklessQueue template: as provided by Lf3THn4D. More...

#include <LocklessQueue.h>

Public Member Functions

 LocklessQueue (size_t size)
 Constructor. More...
 
 ~LocklessQueue ()
 Destructor. More...
 
bool push (const Type &obj)
 Push object into the queue. More...
 
bool empty () const
 Query status. More...
 
bool pop (Type &obj)
 Pop object out from the queue. More...
 

Private Attributes

Type * m_buffer
 Buffer to keep the queue. More...
 
size_t m_head
 Head of queue list. More...
 
size_t m_tail
 Tail of queue list. More...
 
size_t m_size
 Size of buffer. More...
 

Detailed Description

template<class Type>
class OgreOggSound::LocklessQueue< Type >

LocklessQueue template: as provided by Lf3THn4D.

Template Parameters
TypeObject type to queue. This is a lockless queue system to pass items from one thread to another.
Note
Only 1 thread can push and 1 thread can pop it.

Constructor & Destructor Documentation

◆ LocklessQueue()

template<class Type >
OgreOggSound::LocklessQueue< Type >::LocklessQueue ( size_t  size)
inline

Constructor.

◆ ~LocklessQueue()

template<class Type >
OgreOggSound::LocklessQueue< Type >::~LocklessQueue ( )
inline

Destructor.

Member Function Documentation

◆ empty()

template<class Type >
bool OgreOggSound::LocklessQueue< Type >::empty ( ) const
inline

Query status.

Remarks
Added query function for quickly testing status (Ian Stangoe)

◆ pop()

template<class Type >
bool OgreOggSound::LocklessQueue< Type >::pop ( Type &  obj)
inline

Pop object out from the queue.

◆ push()

template<class Type >
bool OgreOggSound::LocklessQueue< Type >::push ( const Type &  obj)
inline

Push object into the queue.

Member Data Documentation

◆ m_buffer

template<class Type >
Type* OgreOggSound::LocklessQueue< Type >::m_buffer
private

Buffer to keep the queue.

◆ m_head

template<class Type >
size_t OgreOggSound::LocklessQueue< Type >::m_head
private

Head of queue list.

◆ m_size

template<class Type >
size_t OgreOggSound::LocklessQueue< Type >::m_size
private

Size of buffer.

◆ m_tail

template<class Type >
size_t OgreOggSound::LocklessQueue< Type >::m_tail
private

Tail of queue list.


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