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

45 lines
900 B
C++

#pragma once
#include "IVrZeroMQPubSub.h"
#include "zmq.hpp"
#ifdef _DEBUG
#pragma comment(lib, "libzmq-v142-mt-gd-4_3_5.lib")
#else
#pragma comment(lib, "libzmq-v142-mt-4_3_5.lib")
#endif
// 发布者实现
class CVrZeroMQPublisher : public IVrZeroMQPublisher
{
public:
CVrZeroMQPublisher();
~CVrZeroMQPublisher();
int Init(int nPort) override;
int Publish(const char* pTopic, const char* pData, const size_t nLen) override;
int UnInit() override;
private:
zmq::context_t* m_pContext;
zmq::socket_t* m_pSocket;
};
// 订阅者实现
class CVrZeroMQSubscriber : public IVrZeroMQSubscriber
{
public:
CVrZeroMQSubscriber();
~CVrZeroMQSubscriber();
int Init(const char* sIP, int nPort, const char* pTopic, FunSubRecv funRecv) override;
int UnInit() override;
private:
void _RecvData();
zmq::context_t* m_pContext;
zmq::socket_t* m_pSocket;
bool m_bRecv;
FunSubRecv m_funRecv;
};