/************************************************************************* 【文件名】 Task.h 【功能模块和目的】 Task基类头文件 【开发者及日期】 郑石诺 2015/01/15 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once class CLogicLine; /************************************************************************* 【类名】 CTask 【功能】 【接口说明】 Task基类 【开发者及日期】 郑石诺 2015/01/15 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CTask { public: CTask(EventDevOperation &DevOpInfo); // 设备产生的Task CTask(CPduEntity &PduEntity); // PDU命令产生的Task virtual ~CTask(void); virtual CString Name(void) const = 0; // 任务名称 int GetAssoLineId(); // 获取Task关联线路Id virtual BOOL OnDevOpResult(EventOpResult &EvtInfo); // 底层线路操作结果 virtual void OnDevOpProcess(EventOpProcess &EvtInfo); // 底层线路操作进展 virtual BOOL OnCmdOperation(CPduEntity &PduEntity); // Task命令处理 virtual BOOL DoTask() = 0; // 任务处理 protected: bool _bindLogicLine(UINT LineId); // 绑定逻辑线路 void _freeLogicLine(void); // 释放逻辑线路 void _PrcoCallNode(UINT HostLine, UINT AssoLine,bool isTransfer=false); // 处理添加会话 void _ProcCmdReturn(BOOL Result, bool FreeRes = false); // 处理命令返回, FreeRes参数可以尽早释放所占线路,以免较慢的线路释放无法满足过快的IVR流程 protected: CPduEntity m_CurrCmd; // Task当前命令 EventDevOperation m_CurrDevOp; // Task当前设备操作信息 CLogicLine *m_pCurrLine; // Task关联的线路类指针 ULONG m_TaskCallId; // Task当前CallId };