#ifndef PROCESS_LIBPROCESS_EXT_INCLUDE_PROCESS_CHECKER_HPP #define PROCESS_LIBPROCESS_EXT_INCLUDE_PROCESS_CHECKER_HPP #include #include "process_statistic.hpp" #include "process_status.hpp" namespace process::controller { class ProcessCheckerCallback { public: virtual void on_process_status_changed(const ProcessStatus& ps) = 0; virtual void on_process_statistic_changed(const ProcessStatistic& ps) = 0; }; class ProcessChecker : public WatchdogChecker { public: ProcessChecker(std::shared_ptr collection, std::shared_ptr cb); void check() override; private: void check_process(const std::shared_ptr& process); using ProcessDataMap = std::map>; ProcessDataMap m_process_data; const std::shared_ptr m_collection; }; } #endif