GrabBag/VrNets/TCPClient/Inc/IVrTCPClient.h

64 lines
1.7 KiB
C
Raw Normal View History

#pragma once
#include <string>
#include <functional>
// 前向声明
class CVrTCPClient;
// 回调函数类型定义
using TCPRecvFunc = std::function<void(const char* pData, const int nLen)>;
using LinkEventFunc = std::function<void(bool)>;
/**
* @brief TCP客户端接口类
* TCP客户端的基本接口
*/
class IVrTCPClient
{
public:
virtual ~IVrTCPClient() = default;
/**
* @brief
* @param sDevIP IP地址
* @param nPort
* @param bReLink
* @param linkFunc
* @return 0
*/
virtual int LinkDevice(const std::string sDevIP, int nPort, bool bReLink, LinkEventFunc linkFunc) = 0;
/**
* @brief
* @return 0
*/
virtual int CloseDevice() = 0;
/**
* @brief 线
* @param fRecvFunc
* @return 0
*/
virtual int StartWork(TCPRecvFunc fRecvFunc) = 0;
/**
* @brief
* @param pdata
* @param nLen
* @return true表示成功false表示失败
*/
virtual bool SendData(const char* pdata, const int nLen) = 0;
/**
* @brief TCP客户端实例
* @return TCP客户端实例指针
*/
static IVrTCPClient* CreateInstance();
/**
* @brief TCP客户端实例
* @param pInstance
*/
static void DestroyInstance(IVrTCPClient* pInstance);
};