Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef PING_H
- #define PING_H
- #include <map>
- #include <boost/thread.hpp>
- #include <boost/property_tree/ptree.hpp>
- #include "PingProcess.h"
- class System;
- class Ping : public boost::noncopyable
- {
- public:
- typedef std::map < std::string, PingProcess* > process;
- friend PingProcess;
- private:
- boost::thread *m_thread;
- void Worker();
- boost::asio::io_service m_io_service;
- std::unique_ptr<boost::asio::io_service::work> m_work;
- boost::asio::signal_set *m_signals;
- process m_processes;
- public:
- Ping();
- ~Ping();
- //Ping& operator= ( const Ping& other );
- //bool operator== ( const Ping& other ) const;
- /**
- * Запустить менеджен процессов, создать новый тред для него.
- * @return 1 если ошибка, 0 если ошибок нет.
- */
- int Exec();
- /**
- * Инициализация
- * @return true в случае успеха
- */
- bool Init();
- /**
- * Остановить менеджер и освободить поток, в котором работает пингер.
- */
- void Stop();
- /**
- * Добавить новый объект для отслеживания.
- * @param destination - host или IP объекта
- * @param uuid - ID камеры
- */
- void AddPingProcess ( std::string destination, std::string uuid );
- /**
- * Удалить существующий объект
- * @param uuid - ID камеры
- * @return true если ок, false, если процесса с таким UUID в системе нет
- */
- bool DeletePingProcess ( std::string uuid );
- /**
- * Перезапустить сервис с новыми заданиями
- */
- void Reload();
- };
- #endif // PING_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement