30#ifndef HORIZON_PRODUCERCONSUMERQUEUE_H
31#define HORIZON_PRODUCERCONSUMERQUEUE_H
33#include <condition_variable>
55 _queue.push(std::move(value));
100 std::unique_lock<std::mutex> lock(
_queueLock);
104 T& value =
_queue.front();
117 template<
typename E = T>
120 template<
typename E = T>
Definition: ProducerConsumerQueue.hpp:41
std::enable_if<!std::is_pointer< E >::value >::type DeleteQueuedObject(E const &)
Definition: ProducerConsumerQueue.hpp:121
void WaitAndPop(T &value)
Definition: ProducerConsumerQueue.hpp:81
std::mutex _queueLock
Definition: ProducerConsumerQueue.hpp:43
bool Empty()
Definition: ProducerConsumerQueue.hpp:60
std::queue< T > _queue
Definition: ProducerConsumerQueue.hpp:44
void Cancel()
Definition: ProducerConsumerQueue.hpp:98
std::atomic< bool > _shutdown
Definition: ProducerConsumerQueue.hpp:46
void Push(const T &value)
Definition: ProducerConsumerQueue.hpp:52
std::condition_variable _condition
Definition: ProducerConsumerQueue.hpp:45
std::enable_if< std::is_pointer< E >::value >::type DeleteQueuedObject(E &obj)
Definition: ProducerConsumerQueue.hpp:118
bool Pop(T &value)
Definition: ProducerConsumerQueue.hpp:67