/* * @file * module_device_net.h * * @brief * 设备网络连接明细业务 * @version * V1.0 * @author * zhuyf * @date * 2022/01/11 * @note * * @warning * @bug * @copyright * */ #ifndef module_device_net_hpp #define module_device_net_hpp #include #include #include #include #include "module_singleton_base.h" // 设备包括定位基站、通信基站、红绿灯等 struct device_info{ std::string m_did; // 设备类型+ID号,形如0030000000004 int m_id; // 设备ID号 int m_type; // 设备类型 time_t m_time; // 设备网络建立时间 device_info() : m_did("") , m_id(0) , m_type(0) , m_time(0) {} device_info(const std::string& did, const int& id, const int& type, const time_t& t) : m_did(did) , m_id(id) , m_type(type) , m_time(t) {} }; struct net_device_info{ std::string m_ip; // 网络的IP std::map m_device_list; // key value net_device_info() : m_ip("") {} net_device_info(const std::string& ip) : m_ip(ip) {} ~net_device_info() { clear(); } void clear() { m_device_list.clear(); } bool exist(const std::string& device_id) { auto it = m_device_list.find(device_id); if(it != m_device_list.end()){ return true; } return false; } }; class module_device_net: public singleton_base { private: friend class singleton_base; module_device_net(){} public: void load_db(); void do_business(const std::string& ip, const int& id, const int & type); bool exist(const std::string& ip); void clear(); void clear(const std::string& ip); private: std::mutex m_mtx; std::map> m_socket_device_list; }; #endif