#pragma once #include "zmq.hpp" #include #include typedef void (*ParamUpdate)(std::string& msg); typedef void (*AlarmHandle)(std::string& msg); class ZeroMq { public: ZeroMq(); ~ZeroMq(); void Resque(); void Publish(); void Subscribe(); void SetCallBack(ParamUpdate pU, AlarmHandle aH) { m_paramUpdate = pU; m_alarmHandle = aH; } private: std::string m_localIp; //本地IP std::string m_serverIp; //服务端IP int m_publishPort; //发布端口 int m_pushPullPort; //推拉端口 std::thread m_subThread; //订阅线程 std::thread m_pushThread; //推线程 bool m_subQuit; bool m_pushQuit; ParamUpdate m_paramUpdate; AlarmHandle m_alarmHandle; };