TrinityCore
ProducerConsumerQueue< T > Class Template Reference

#include <ProducerConsumerQueue.h>

Public Member Functions

 ProducerConsumerQueue ()
 
void Push (T const &value)
 
void Push (T &&value)
 
bool Empty () const
 
size_t Size () const
 
bool Pop (T &value)
 
void WaitAndPop (T &value)
 
void Cancel ()
 

Private Attributes

std::mutex _queueLock
 
std::queue< T > _queue
 
std::condition_variable _condition
 
std::atomic< bool > _shutdown
 

Detailed Description

template<typename T>
class ProducerConsumerQueue< T >

Definition at line 28 of file ProducerConsumerQueue.h.

Constructor & Destructor Documentation

◆ ProducerConsumerQueue()

template<typename T >
ProducerConsumerQueue< T >::ProducerConsumerQueue ( )
inline

Definition at line 38 of file ProducerConsumerQueue.h.

Member Function Documentation

◆ Cancel()

template<typename T >
void ProducerConsumerQueue< T >::Cancel ( )
inline

Definition at line 101 of file ProducerConsumerQueue.h.

+ Here is the caller graph for this function:

◆ Empty()

template<typename T >
bool ProducerConsumerQueue< T >::Empty ( ) const
inline

Definition at line 56 of file ProducerConsumerQueue.h.

◆ Pop()

template<typename T >
bool ProducerConsumerQueue< T >::Pop ( T &  value)
inline

Definition at line 70 of file ProducerConsumerQueue.h.

◆ Push() [1/2]

template<typename T >
void ProducerConsumerQueue< T >::Push ( T &&  value)
inline

Definition at line 48 of file ProducerConsumerQueue.h.

◆ Push() [2/2]

template<typename T >
void ProducerConsumerQueue< T >::Push ( T const &  value)
inline

Definition at line 40 of file ProducerConsumerQueue.h.

+ Here is the caller graph for this function:

◆ Size()

template<typename T >
size_t ProducerConsumerQueue< T >::Size ( ) const
inline

Definition at line 63 of file ProducerConsumerQueue.h.

◆ WaitAndPop()

template<typename T >
void ProducerConsumerQueue< T >::WaitAndPop ( T &  value)
inline

Definition at line 84 of file ProducerConsumerQueue.h.

+ Here is the caller graph for this function:

Member Data Documentation

◆ _condition

template<typename T >
std::condition_variable ProducerConsumerQueue< T >::_condition
private

Definition at line 33 of file ProducerConsumerQueue.h.

◆ _queue

template<typename T >
std::queue<T> ProducerConsumerQueue< T >::_queue
private

Definition at line 32 of file ProducerConsumerQueue.h.

◆ _queueLock

template<typename T >
std::mutex ProducerConsumerQueue< T >::_queueLock
mutableprivate

Definition at line 31 of file ProducerConsumerQueue.h.

◆ _shutdown

template<typename T >
std::atomic<bool> ProducerConsumerQueue< T >::_shutdown
private

Definition at line 34 of file ProducerConsumerQueue.h.


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