AudiClean
BlockingQueue.h
Go to the documentation of this file.
1 //
2 // Created by ross on 18/02/2022.
3 //
4 
5 #ifndef AUDICLEAN_BLOCKINGQUEUE_H
6 #define AUDICLEAN_BLOCKINGQUEUE_H
7 #include <deque>
8 #include <mutex>
9 #include <condition_variable>
10 
11 
12 template <typename T>
14 
23 public:
24  BlockingQueue(int maxSize=1);
25  void Push(T toPush);
26  T Pop();
27  bool IsEmpty();
28  int Size();
29  bool Full();
30 private:
31  int maxSize;
32  std::deque<T> internalQueue;
33  std::mutex mutex;
34  std::condition_variable isFull;
35  std::condition_variable isEmpty;
36 };
37 
38 
39 #endif //AUDICLEAN_BLOCKINGQUEUE_H
BlockingQueue::Full
bool Full()
Definition: BlockingQueue.cpp:69
BlockingQueue::Size
int Size()
Definition: BlockingQueue.cpp:46
BlockingQueue::IsEmpty
bool IsEmpty()
Definition: BlockingQueue.cpp:36
BlockingQueue::Pop
T Pop()
Definition: BlockingQueue.cpp:22
BlockingQueue
BlockingQueue Class.
Definition: BlockingQueue.h:22
BlockingQueue::BlockingQueue
BlockingQueue(int maxSize=1)
Definition: BlockingQueue.cpp:12
BlockingQueue::Push
void Push(T toPush)
Definition: BlockingQueue.cpp:56