38 lines
947 B
C++
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;
|
|
};
|