Barst  2.0
A server that controls lab hardware.
Public Member Functions | List of all members
CQueue< T > Class Template Reference

#include <cpl queue.h>

Public Member Functions

 CQueue (HANDLE hEvent)
 
void Push (T pHead)
 
Front (bool bPop, bool &bValid)
 
int GetSize ()
 
void ResetIfEmpty ()
 

Detailed Description

template<class T>
class CQueue< T >

Defines a thread safe queue. Defines a thread safe general FIFO queue. When an object is added to the queue, we only set the event if the queue was empty, if the queue had an element we don't set the event. Also, we never reset the event; it's the users responsibility to reset the event when finished proccesing an element and the queue is empty (or whatever scheme the user wants).

Definition at line 17 of file cpl queue.h.

Constructor & Destructor Documentation

◆ CQueue()

template<class T>
CQueue< T >::CQueue ( HANDLE  hEvent)
inline

Creates the queue. You pass in a valid event which is set when the queue is empty and you enque an element.

Definition at line 22 of file cpl queue.h.

Member Function Documentation

◆ Front()

template<class T>
T CQueue< T >::Front ( bool  bPop,
bool &  bValid 
)
inline

Removes or previews an elemnt from the queue. If bPop is true we return and remove the front element from the queue, if false, we only return it but do not remove it from the queue. bValid returns true if the object returned is valid and false otherwise. The returned object can be invalid if the queue was empty.

Definition at line 38 of file cpl queue.h.

◆ GetSize()

template<class T>
int CQueue< T >::GetSize ( )
inline

Returns the current # of items in queue.

Definition at line 52 of file cpl queue.h.

◆ Push()

template<class T>
void CQueue< T >::Push ( pHead)
inline

Adds an element to the back of the queue and sets the event (if the queue was empty).

Definition at line 26 of file cpl queue.h.

◆ ResetIfEmpty()

template<class T>
void CQueue< T >::ResetIfEmpty ( )
inline

Resets queue event safely only if the queue is empty.

Definition at line 59 of file cpl queue.h.