Advertisement
abagrintsev

Ping.h (new)

Sep 3rd, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #ifndef PING_H
  2. #define PING_H
  3.  
  4. #include <map>
  5. #include <boost/thread.hpp>
  6. #include <boost/property_tree/ptree.hpp>
  7. #include "PingProcess.h"
  8.  
  9. class System;
  10.  
  11. class Ping : public boost::noncopyable
  12. {
  13. public:
  14.     typedef std::map < std::string, PingProcess* > process;
  15.     friend PingProcess;
  16.  
  17. private:
  18.     boost::thread *m_thread;
  19.     void Worker();
  20.     boost::asio::io_service m_io_service;
  21.     std::unique_ptr<boost::asio::io_service::work> m_work;
  22.     boost::asio::signal_set *m_signals;
  23.    
  24.     process m_processes;
  25.    
  26. public:
  27.    
  28.     Ping();
  29.     ~Ping();
  30.     //Ping& operator= ( const Ping& other );
  31.     //bool operator== ( const Ping& other ) const;
  32.    
  33.     /**
  34.     * Запустить менеджен процессов, создать новый тред для него.
  35.     * @return 1 если ошибка, 0 если ошибок нет.
  36.     */
  37.     int Exec();
  38.     /**
  39.     * Инициализация
  40.     * @return true в случае успеха
  41.     */
  42.     bool Init();
  43.     /**
  44.     * Остановить менеджер и освободить поток, в котором работает пингер.
  45.     */
  46.     void Stop();
  47.     /**
  48.     * Добавить новый объект для отслеживания.
  49.     * @param destination - host или IP объекта
  50.     * @param uuid - ID камеры
  51.     */
  52.     void AddPingProcess ( std::string destination, std::string uuid );
  53.     /**
  54.      * Удалить существующий объект
  55.      * @param uuid - ID камеры
  56.      * @return true если ок, false, если процесса с таким UUID в системе нет
  57.      */
  58.     bool DeletePingProcess ( std::string uuid );
  59.    
  60.     /**
  61.      * Перезапустить сервис с новыми заданиями
  62.      */
  63.     void Reload();
  64. };
  65.  
  66. #endif // PING_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement