/************************************************************************* 【文件名】 CellSocket.h 【功能模块和目的】 SOCKET操作节点类头文件 【开发者及日期】 郑石诺 2016/01/04 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "cellbase.h" #include "CellAUTOCREATE.h" /************************************************************************* 【类名】 CCellSocket 【功能】 【接口说明】 SOCKET操作节点类 【开发者及日期】 郑石诺 2016/01/04 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CCellSocket : public CCellBase { DECLARE_CELL_AUTOCREATE public: CCellSocket(void); CCellSocket( CCellSocket & cellSocket ); virtual ~CCellSocket(void); void addInputVar(int VarType, const CString& VarVal); //////////////////////////////////////////////////////////////////////////////// //继承自CCellBase int operate(void); CCellBase * copy(void); bool fillData(IFlowDataProvider& Provider); LPCTSTR name(void) const { return CELL_NAME_SOCKET; } int maxWaitingTime(void) const { return 0; } private: void __release(void); int __formatInputVar(char* InputText); bool __analyzeOutputVar(char* OutputText); bool __wait4Recv(SOCKET Sock); private: struct InputVarInfo { InputVarInfo(int Type, LPCTSTR Value): VarType(Type) { ZeroMemory(szVarValue, VAR_LEN); lstrcpy(szVarValue, Value); } InputVarInfo(const InputVarInfo& VarInfo ) { VarType = VarInfo.VarType; ZeroMemory(szVarValue, VAR_LEN); lstrcpy(szVarValue, VarInfo.szVarValue); } int VarType; // 变量类型 1:初值为具体值,2:初值为变量 char szVarValue[VAR_LEN]; // 变量值 }; CList m_InputVarList; // 输入变量类表 DataArray m_OutputVarList; // 输出变量列表 CString m_OpType; // 操作目的 CString m_FarAddr; // 远端地址 int m_FarPort; // 远端端口 int m_TimeOut; // 接收超时(单位:秒) int m_SuccessPos; // 执行成功,下一节点 int m_FailPos; // 执行失败, 下一节点 };