#ifndef PARENT_DATADISTRIBUTOR_H #define PARENT_DATADISTRIBUTOR_H #include #include #include "SocketOutput.h" #include "RotatingFileOutput.h" class DataDistributor { public: DataDistributor(std::string logPath, std::string host, int port); virtual ~DataDistributor(); void enqueueForSending(std::string* payload); void markNewRecording(); void start(); void stop(); int isConnected(); private: std::atomic shouldRun = true; std::atomic running = false; std::atomic everSentViaSocket = false; std::deque dataBuffer; std::deque sendQueue; std::mutex lock; std::chrono::time_point lastSent = std::chrono::system_clock::now(); SocketOutput* socketOutput; RotatingFileOutput* fileOutput; }; #endif //PARENT_DATADISTRIBUTOR_H