#pragma once #include #if defined(_WIN32) #ifdef VR_MQPUBSUB_EXPORTS #define VR_MQPUBSUB_API __declspec(dllexport) #else #define VR_MQPUBSUB_API __declspec(dllimport) #endif #else #define VR_MQPUBSUB_API #endif typedef std::function FunSubRecv; // 发布者接口 class IVrZeroMQPublisher { public: virtual ~IVrZeroMQPublisher() = default; static bool CreateObject(IVrZeroMQPublisher** ppPublisher); virtual int Init(int nPort) = 0; virtual int Publish(const char* pTopic, const char* pData, const size_t nLen) = 0; virtual int UnInit() = 0; }; // 订阅者接口 class IVrZeroMQSubscriber { public: virtual ~IVrZeroMQSubscriber() = default; static bool CreateObject(IVrZeroMQSubscriber** ppSubscriber); virtual int Init(const char* sIP, int nPort, const char* pTopic, FunSubRecv funRecv) = 0; virtual int UnInit() = 0; };