neic-glass3  1.4.6
queue.h
Go to the documentation of this file.
1 /*****************************************
2  * This file is documented for Doxygen.
3  * If you modify this file please update
4  * the comments so that Doxygen will still
5  * be able to work.
6  ****************************************/
7 #ifndef QUEUE_H
8 #define QUEUE_H
9 
10 #include <baseclass.h>
11 #include <json.h>
12 
13 #include <memory>
14 #include <mutex>
15 #include <string>
16 #include <queue>
17 
18 namespace glass3 {
19 namespace util {
28 class Queue : public util::BaseClass {
29  public:
35  Queue();
36 
42  ~Queue();
43 
50  void clear() override;
51 
59  bool addDataToQueue(std::shared_ptr<json::Object> data);
60 
69  std::shared_ptr<json::Object> getDataFromQueue();
70 
78  int size();
79 
80  private:
84  std::queue<std::shared_ptr<json::Object>> m_DataQueue;
85 
90  std::mutex & getMutex();
91 
95  std::mutex m_Mutex;
96 };
97 } // namespace util
98 } // namespace glass3
99 #endif // QUEUE_H
100 
bool addDataToQueue(std::shared_ptr< json::Object > data)
add data to Queue
Definition: queue.cpp:38
void clear() override
Queue clear function.
Definition: queue.cpp:22
The neic-glass3 project namespace containing all the classes and functions that make up neic-glass3...
glass3::util::BaseClass class - encapsulates the most basic setup and configuration logic...
Definition: baseclass.h:30
~Queue()
Queue destructor.
Definition: queue.cpp:18
int size()
get the size of the Queue
Definition: queue.cpp:67
Queue()
Queue constructor.
Definition: queue.cpp:13
std::shared_ptr< json::Object > getDataFromQueue()
get data from Queue
Definition: queue.cpp:48
glass3::util::Queue class
Definition: queue.h:28