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

49 lines
1.1 KiB
C++
Raw Blame History

#pragma once
#include <iostream>
#include <functional>
#include <cstddef>
#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<void(const MQEvent eEvent)> FunMQEvent;
typedef std::function<std::string(const char* pRecvData, const size_t nRecvLen)> FunServerRecvAndAck;
class IVrZeroMQServer
{
public:
virtual ~IVrZeroMQServer() = default;
static bool CreateObject(IVrZeroMQServer** ppMQServer);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int Init(int nPort, FunMQEvent funMQEvent, FunServerRecvAndAck funRecvAck, bool bMultitask = false) = 0;
/// <20><><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD>
virtual int UnInit() = 0;
};