123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * @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 <map>
- #include <string>
- #include <memory>
- #include <time.h>
- #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<std::string, device_info> 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<module_device_net>
- {
- private:
- friend class singleton_base<module_device_net>;
- 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<std::string, std::shared_ptr<net_device_info>> m_socket_device_list;
- };
- #endif
|