105 bool setup(std::shared_ptr<const json::Object> config)
override;
113 void clear()
override;
124 void sendToOutput(std::shared_ptr<json::Object> message)
override;
136 bool start()
override;
395 bool isDataReady(std::shared_ptr<const json::Object> data);
407 bool isDataChanged(std::shared_ptr<const json::Object> data);
425 bool ignoreVersion =
true);
447 void writeOutput(std::shared_ptr<json::Object> data);
488 virtual void sendOutput(
const std::string &type,
const std::string &
id,
489 const std::string &message) = 0;
507 std::vector<int> m_PublicationTimes;
513 std::atomic<bool> m_bPubOnExpiration;
521 std::atomic<int> m_iReportInterval;
529 std::atomic<double> m_dImmediatePubThreshold;
544 std::atomic<int> m_iSiteListRequestInterval;
555 std::mutex m_TrackingCacheMutex;
573 int m_iMessageCounter;
585 int m_iCancelCounter;
591 int m_iExpireCounter;
603 int m_iLookupCounter;
609 int m_iSiteListCounter;
614 std::time_t tLastWorkReport;
619 std::time_t m_tLastSiteRequest;
632 std::mutex & getMutex();
void clearTrackingData()
clear output tracking cache
Definition: output.cpp:505
The output message interface, used in sending data to output classes in neic-glass3.
Definition: outputinterface.h:19
bool getPubOnExpiration()
Function to retrieve the publish on expiration flag.
Definition: output.cpp:1306
glass3::util::ThreadPool class
Definition: threadpool.h:31
bool healthCheck() override
output heath check function
Definition: output.cpp:311
void clearPubTimes()
Function to clear the publication times.
Definition: output.cpp:1333
bool setup(std::shared_ptr< const json::Object > config) override
output configuration function
Definition: output.cpp:98
void clear() override
output clear function
Definition: output.cpp:245
virtual void sendOutput(const std::string &type, const std::string &id, const std::string &message)=0
Send output data.
void setSiteListRequestInterval(int delay)
Function to set the interval for requesting the site list.
Definition: output.cpp:1269
void setImmediatePubThreshold(double threshold)
Function to set the immediate publication threshold.
Definition: output.cpp:1311
int getSiteListRequestInterval()
Function to retrieve the interval for requesting the site list.
Definition: output.cpp:1274
void setReportInterval(int interval)
Function to set the interval to generate informational reports.
Definition: output.cpp:1279
void setPubOnExpiration(bool pub)
Function to set the publish on expiration flag.
Definition: output.cpp:1301
int getReportInterval()
Function to retrieve the interval to generate informational reports.
Definition: output.cpp:1284
The associator messaging interface, used in sending configuration and input data to neic-glass3...
Definition: associatorinterface.h:51
std::shared_ptr< const json::Object > getTrackingData(std::string id)
get tracking information from the output tracking cache by id
Definition: output.cpp:433
The neic-glass3 project namespace containing all the classes and functions that make up neic-glass3...
WorkState
glass3::util::WorkState enumeration
Definition: workstate.h:25
static constexpr int k_iMinimumPublicationTime
The minimum time in seconds to publish an event.
Definition: output.h:466
glass3::util::iAssociator * getAssociator()
Function to get the associator interface pointer.
Definition: output.cpp:1295
bool haveTrackingData(std::shared_ptr< json::Object > data)
check if tracking information is in output tracking cache
Definition: output.cpp:469
bool isDataFinished(std::shared_ptr< const json::Object > data)
check to see if tracking information is finished
Definition: output.cpp:1226
bool isDataPublished(std::shared_ptr< const json::Object > data, bool ignoreVersion=true)
check to see if tracking information has been published
Definition: output.cpp:1174
bool isDataChanged(std::shared_ptr< const json::Object > data)
check to see if detection data has changed
Definition: output.cpp:1128
virtual void sendHeartbeat()
Send heartbeats.
Definition: output.cpp:1265
std::vector< int > getPubTimes()
Function to retrieve the publication times.
Definition: output.cpp:1321
void addPubTime(int pubTime)
Function to add a single publication time to the list.
Definition: output.cpp:1327
void checkEventsLoop()
output tracking data background work function
Definition: output.cpp:511
double getImmediatePubThreshold()
Function to retrieve the immediate publication threshold.
Definition: output.cpp:1316
bool removeTrackingData(std::shared_ptr< const json::Object > data)
remove tracking information from the output tracking cache
Definition: output.cpp:392
void writeOutput(std::shared_ptr< json::Object > data)
output writing function
Definition: output.cpp:891
glass3::util::Cache class - a thread safe in-memory cache
Definition: cache.h:30
bool isDataReady(std::shared_ptr< const json::Object > data)
check to see if tracking information is ready for output
Definition: output.cpp:949
glass3::util::Queue class
Definition: queue.h:28
glass output class
Definition: output.h:74
bool addTrackingData(std::shared_ptr< json::Object > data)
add tracking information to the output tracking cache
Definition: output.cpp:325
bool start() override
work thread start function
Definition: output.cpp:288
std::shared_ptr< const json::Object > getNextTrackingData()
get tracking information from the output tracking cache
Definition: output.cpp:446
glass3::util::WorkState work() override
output background work function
Definition: output.cpp:611
output()
output constructor
Definition: output.cpp:36
glass3::util::ThreadBaseClass class
Definition: threadbaseclass.h:34
~output()
output destructor
Definition: output.cpp:68
void sendToOutput(std::shared_ptr< json::Object > message) override
output message sending function
Definition: output.cpp:256
void setAssociator(glass3::util::iAssociator *associator)
Function to set the associator interface pointer.
Definition: output.cpp:1289