暫無描述

Task.h 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*************************************************************************
  2. 【文件名】 Task.h
  3. 【功能模块和目的】 Task基类头文件
  4. 【开发者及日期】 郑石诺 2015/01/15
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. class CLogicLine;
  11. /*************************************************************************
  12. 【类名】 CTask
  13. 【功能】
  14. 【接口说明】 Task基类
  15. 【开发者及日期】 郑石诺 2015/01/15
  16. 【版本】 V1.0.0
  17. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  18. 【更改记录】
  19. *************************************************************************/
  20. class CTask
  21. {
  22. public:
  23. CTask(EventDevOperation &DevOpInfo); // 设备产生的Task
  24. CTask(CPduEntity &PduEntity); // PDU命令产生的Task
  25. virtual ~CTask(void);
  26. virtual CString Name(void) const = 0; // 任务名称
  27. int GetAssoLineId(); // 获取Task关联线路Id
  28. virtual BOOL OnDevOpResult(EventOpResult &EvtInfo); // 底层线路操作结果
  29. virtual void OnDevOpProcess(EventOpProcess &EvtInfo); // 底层线路操作进展
  30. virtual BOOL OnCmdOperation(CPduEntity &PduEntity); // Task命令处理
  31. virtual BOOL DoTask() = 0; // 任务处理
  32. INT64 TaskTime()const { return m_TaskTime; } // 任务触发时间 2022-10-18
  33. BOOL IsExpire()const { return (time(NULL) - m_TaskTime) > 60 * 60 * 2; } // 2022-10-18 如果该任务存在两个小时还在就删除,正常情况一个任务不可能存在两个小时
  34. protected:
  35. bool _bindLogicLine(UINT LineId); // 绑定逻辑线路
  36. void _freeLogicLine(void); // 释放逻辑线路
  37. void _PrcoCallNode(UINT HostLine, UINT AssoLine,bool isTransfer=false); // 处理添加会话
  38. void _ProcCmdReturn(BOOL Result, bool FreeRes = false); // 处理命令返回, FreeRes参数可以尽早释放所占线路,以免较慢的线路释放无法满足过快的IVR流程
  39. protected:
  40. CPduEntity m_CurrCmd; // Task当前命令
  41. EventDevOperation m_CurrDevOp; // Task当前设备操作信息
  42. CLogicLine *m_pCurrLine; // Task关联的线路类指针
  43. ULONG m_TaskCallId; // Task当前CallId
  44. INT64 m_TaskTime; // Task创建时间 防止收不到回复导致内存不释放 2022-10-18
  45. };