neic-glass3  1.4.6
associator.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 ASSOCIATOR_H
8 #define ASSOCIATOR_H
9 
10 #include <json.h>
11 #include <IGlassSend.h>
12 #include <inputinterface.h>
13 #include <outputinterface.h>
14 #include <associatorinterface.h>
15 #include <threadbaseclass.h>
16 #include <queue.h>
17 #include <ctime>
18 #include <memory>
19 
20 namespace glass3 {
21 
30 namespace process {
46  public:
58  glass3::util::iOutput* outputint);
59 
65  ~Associator();
66 
78  bool setup(std::shared_ptr<const json::Object> config) override;
79 
87  void clear() override;
88 
98  void recieveGlassMessage(std::shared_ptr<json::Object> communication)
99  override;
100 
109  void sendToAssociator(std::shared_ptr<json::Object> &message) override;
110 
118  bool healthCheck() override;
119 
120  protected:
130  glass3::util::WorkState work() override;
131 
132  private:
137  int m_iInputCounter;
138 
142  int m_iTotalInputCounter;
143 
148  int m_iRunningAverageCounter;
149 
154  double m_dRunningDPSAverage;
155 
159  std::chrono::duration<double> tGlasscoreDuration;
160 
164  time_t tLastPerformanceReport;
165 
172  int m_iReportInterval;
173 
177  glass3::util::Queue* m_MessageQueue;
178 
185  glass3::util::iInput* m_Input;
186 
193  glass3::util::iOutput* m_Output;
194 };
195 } // namespace process
196 } // namespace glass3
197 #endif // ASSOCIATOR_H
The output message interface, used in sending data to output classes in neic-glass3.
Definition: outputinterface.h:19
bool healthCheck() override
associator heath check function
Definition: associator.cpp:251
glass association class
Definition: associator.h:44
void recieveGlassMessage(std::shared_ptr< json::Object > communication) override
glasscore message receiver function
Definition: associator.cpp:94
The associator messaging interface, used in sending configuration and input data to neic-glass3...
Definition: associatorinterface.h:51
~Associator()
associator destructor
Definition: associator.cpp:45
The neic-glass3 project namespace containing all the classes and functions that make up neic-glass3...
void clear() override
associator clear function
Definition: associator.cpp:82
WorkState
glass3::util::WorkState enumeration
Definition: workstate.h:25
The input data retrieval interface, used to provide input data to other parts of neic-glass3.
Definition: inputinterface.h:27
glass3::util::WorkState work() override
associator work function
Definition: associator.cpp:127
bool setup(std::shared_ptr< const json::Object > config) override
Associator configuration function.
Definition: associator.cpp:57
glasscore messaging interface
Definition: IGlassSend.h:31
void sendToAssociator(std::shared_ptr< json::Object > &message) override
glasscore message sending function
Definition: associator.cpp:120
glass3::util::Queue class
Definition: queue.h:28
associatorinterface.h
Associator(glass3::util::iInput *inputint, glass3::util::iOutput *outputint)
associator constructor
Definition: associator.cpp:14
glass3::util::ThreadBaseClass class
Definition: threadbaseclass.h:34