| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /*************************************************************************
- 【文件名】 NetCtrlInterface.h
- 【功能模块和目的】 网络连接控制接口头文件
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #include "PduLinkInc.h"
- class CPduEntity;
- class IPduLinkProc;
- /*************************************************************************
- 【类名】 IPduLink
- 【功能】 定义PDU连接管理接口
- 【接口说明】
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class IPduLink
- {
- public:
- virtual ~IPduLink(void) = 0 {}
- // 连接管理
- virtual BOOL GetLinkInfo(CString& a_strIp, int& a_nPort, PDU_DEV_TYPE a_nType, int a_nId) = 0; // 获取指定连接的网络信息
- virtual BOOL GetPeerIp(CString& a_strIp, CPduEntity* a_pCmd) = 0; // 获取PDU命令的发送方IP
- virtual BOOL CreatePduServer(int a_nListenPort,
- PDU_DEV_TYPE a_nLocalType,
- int a_nLocalId) = 0; // 创建PDU通讯服务器
- virtual BOOL CreatePduClient(CString a_strFarIp,
- int a_nFarPort,
- PDU_DEV_TYPE a_nLocalType,
- int a_nLocalId,
- PDU_DEV_TYPE a_nFarType,
- int a_nFarId,
- bool IsAutoReconnect) = 0; // 创建PDU通讯客户端
- virtual BOOL ClosePduClient(PDU_DEV_TYPE a_nFarType,
- int a_nFarId) = 0; // 关闭PDU通讯客户端
- // 事件处理
- virtual BOOL RegistPduLinkProc(IPduLinkProc* a_pPduLinkProc, BOOL bIsInsert) = 0; // 添加/删除订阅
- virtual void StopAll(void) = 0;
- };
- class IPduCommProc;
- /*************************************************************************
- 【类名】 IPduComm
- 【功能】 定义PDU消息传输接口
- 【接口说明】
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class IPduComm
- {
- public:
- virtual ~IPduComm(void) = 0 {}
- virtual BOOL Send(CPduEntity* a_pCmd, PDU_DEV_TYPE a_nDestType, int a_nDestId) = 0; // 发送PDU命令(正常发送)
- virtual void Send2All(CPduEntity* a_pCmd) = 0; // 向所有已注册的连接发PDU
- virtual BOOL RegistPduCommProc(IPduCommProc* a_pPduCommProc, BOOL bIsInsert) = 0; // 添加/取消订阅
- };
- /*************************************************************************
- 【类名】 CInterfaceWindow
- 【功能】 获取接口的窗口
- 【接口说明】
- 【开发者及日期】 郑石诺 2015/07/19
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CInterfaceWindow
- {
- public:
- virtual ~CInterfaceWindow(void) = 0 {}
- // 两套接口是互斥的,混用将带来不可预估的错误
- // IOCP模式的客户端接口不能单独使用必须搭配服务器接口,
- // 否则将收不到任何PDU
- static IPduLink* getLinkInstance(void); // 得到异步套接字模式下的连接管理接口实例(老接口)
- static IPduComm* getCommInstance(void); // 得到异步套接字模式下的消息传输接口实例(老接口)
- static IPduLink* getIocpLinkInstance(void); // 得到IOCP模式下的连接管理接口实例
- static IPduComm* getIocpCommInstance(void); // 得到IOCP模式下的消息传输接口实例
- };
|