Template Class ThreadSafeQueue

Inheritance Relationships

Base Type

Class Documentation

template<typename QueueType>
class common::ThreadSafeQueue : public common::ThreadSafeQueueBase

Public Functions

inline virtual void NotifyAll() const override
inline ThreadSafeQueue()
inline ~ThreadSafeQueue() override
inline virtual void Shutdown() override
inline virtual void Resume() override
inline void Push(const QueueType &value)
inline void PushNonBlocking(const QueueType &value)
inline virtual size_t Size() const override
inline virtual bool Empty() const override
inline bool PushBlockingIfFull(const QueueType &value, size_t max_queue_size)
inline bool PushNonBlockingDroppingOldestElementIfFull(const QueueType &value, size_t max_queue_size)
inline bool Pop(QueueType *value)
inline bool PopBlocking(QueueType *value)
inline bool PopNonBlocking(QueueType *value)
inline bool PopTimeout(QueueType *value, int64_t timeout_nanoseconds)
inline bool getCopyOfFront(QueueType *value)
inline bool getCopyOfFrontBlocking(QueueType *value)
inline bool getCopyOfBack(QueueType *value)
inline bool getCopyOfBackBlocking(QueueType *value)

Public Members

ThreadSafeQueue
mutable std::mutex mutex_
mutable std::condition_variable condition_empty_
mutable std::condition_variable condition_full_
std::queue<QueueType> queue_
std::atomic_bool shutdown_