| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /*************************************************************************
- 【文件名】 PduSocketVector.h
- 【功能模块和目的】 SOCKET通讯实体容器类头文件
- 【开发者及日期】 郑石诺 2015/03/19
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #include "PduLinkInc.h"
- class CPduSocket;
- class CPduEntity;
- /*************************************************************************
- 【类名】 CPduSocketVector
- 【功能】
- 【接口说明】 SOCKET通讯实体容器类
- 【开发者及日期】 郑石诺 2015/03/19
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CPduSocketVector
- {
- private:
- typedef CList<CPduSocket*, CPduSocket*> ListSocket;
- ListSocket m_listConnecting; // 正在连接的SOCKET
- ListSocket m_listConnected; // 已连接的SOCKET
- ListSocket m_listRegisted; // 可通讯的SOCKET
- CPduSocket* m_pSocketDeleting; // 要删除的SOCKET
- private:
- void __OnConnFailedProc(CPduSocket* a_pSocket); // SOCKET连接断开/失败的后续处理
-
- BOOL __DeleteSocket(CPduSocket* a_pSocket, ListSocket& a_list); // 删除指定的SOCKET
- BOOL __RemoveSocket(CPduSocket* a_pSocket, ListSocket& a_list); // 从链表中移除指定的SOCKET
-
- CPduSocket* __LookupSocket(PDU_DEV_TYPE a_nFarType, int a_nFarId, ListSocket& a_list); // 从LIST中查找指定的连接
- CPduSocket* __LookupSocket(SOCKET a_hSocket, ListSocket& a_list); // 从LIST中查找指定的连接
- BOOL __Lookup4Delete(PDU_DEV_TYPE a_nFarType, int a_nFarId, ListSocket& a_list);
- public:
- CPduSocketVector(void);
- ~CPduSocketVector(void);
- // 业务操作
- void InsertSocket(CPduSocket* a_pSocket); // 添加一个新的连接
- BOOL RemoveSocket(PDU_DEV_TYPE a_nFarType, int a_nFarId); // 删除一个连接
- CPduSocket* GetPduSocket(PDU_DEV_TYPE a_nFarType, int a_nFarId); // 查找连接
- CPduSocket* GetPduSocket(SOCKET a_hSocket); // 查找连接
- void Send2All(CPduEntity* a_pPdu);
- void Release(void);
- // 事件响应
- PDU_LINK_STATE OnConnEstablished(CPduSocket* a_pSocket); // 连接建立
- PDU_LINK_STATE OnConnFailed(CPduSocket* a_pSocket); // 连接失败或断开
- PDU_LINK_STATE OnConnRegistOK(CPduSocket* a_pSocket); // 注册成功
- PDU_LINK_STATE OnConnRegistFailed(CPduSocket* a_pSocket); // 注册失败
- };
|