Files
zoneminder/src/zm_analysis_thread.h

30 lines
538 B
C++

#ifndef ZM_ANALYSIS_THREAD_H
#define ZM_ANALYSIS_THREAD_H
#include <atomic>
#include <memory>
#include <thread>
class Monitor;
class AnalysisThread {
public:
explicit AnalysisThread(Monitor *monitor);
~AnalysisThread();
AnalysisThread(AnalysisThread &rhs) = delete;
AnalysisThread(AnalysisThread &&rhs) = delete;
void Start();
void Stop() { terminate_ = true; }
bool Stopped() const { return terminate_; }
private:
void Run();
Monitor *monitor_;
std::atomic<bool> terminate_;
std::thread thread_;
};
#endif