#pragma once #include #include #include #if defined(_WIN32) #ifdef VR_MQSERVER_EXPORTS #define VR_MQSERVER_API __declspec(dllexport) #else #define VR_MQSERVER_API __declspec(dllimport) #pragma comment(lib, "ZeroMQServer.lib") #endif #else #ifndef VR_MQSERVER_EXPORTS #ifdef __cplusplus #define VR_MQSERVER_API extern "C" __attribute__((visibility("default"))) #else #define VR_MQSERVER_API __attribute__((visibility("default"))) #endif #endif #endif enum MQEvent { MQ_EVENT_UNKOWN = 0, MQ_EVENT_NEWLINK, MQ_EVENT_DELINK, }; typedef std::function FunMQEvent; typedef std::function FunServerRecvAndAck; class IVrZeroMQServer { public: virtual ~IVrZeroMQServer() = default; static bool CreateObject(IVrZeroMQServer** ppMQServer); /// �������� virtual int Init(int nPort, FunMQEvent funMQEvent, FunServerRecvAndAck funRecvAck, bool bMultitask = false) = 0; /// ���ٷ��� virtual int UnInit() = 0; };