OgreOggSound  1.26
OgreOggSound::LocklessQueue< Type > Class Template Reference

LocklessQueue template: as provid3ed 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 provid3ed 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

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

constructor.

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

destructor.

Member Function Documentation

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

query status.

Remarks
Added query function for quickly testing status (Ian Stangoe)
template<class Type>
bool OgreOggSound::LocklessQueue< Type >::pop ( Type &  obj)

pop object out from the queue.

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

push object into the queue.

Member Data Documentation

template<class Type>
Type* OgreOggSound::LocklessQueue< Type >::m_buffer
private
template<class Type>
size_t OgreOggSound::LocklessQueue< Type >::m_head
private
template<class Type>
size_t OgreOggSound::LocklessQueue< Type >::m_size
private
template<class Type>
size_t OgreOggSound::LocklessQueue< Type >::m_tail
private

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