GrabBag/Module/ZeroMQPubSub/Inc/IVrZeroMQPubSub.h
2026-05-31 00:10:46 +08:00

38 lines
947 B
C++

#pragma once
#include <functional>
#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<void(const char* pTopic, const size_t nTopicLen, const char* pData, const size_t nLen)> 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;
};