hd

Operation.h 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*************************************************************************
  2. 【文件名】 Operation.h
  3. 【功能模块和目的】 设备操作基类头文件
  4. 【开发者及日期】 郑石诺 2016/08/01
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. class CVirtualChan;
  11. class COperationReactor;
  12. /*************************************************************************
  13. 【类名】 COperation
  14. 【功能】
  15. 【接口说明】 设备操作基类
  16. 【开发者及日期】 郑石诺 2016/08/01
  17. 【版本】 V1.0.0
  18. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  19. 【更改记录】
  20. *************************************************************************/
  21. class COperation
  22. {
  23. public:
  24. COperation(COperationReactor* pParent, LONG Instance);
  25. virtual ~COperation(void);
  26. virtual LINE_OP type(void) const = 0;
  27. LONG uniqueId(void) const { return reinterpret_cast<LONG>(this); }
  28. // 关联操作
  29. virtual bool attachHostChan(CVirtualChan* pChan); // 设置主控通道的关联
  30. virtual void detachHostChan(void); // 取消通道关联
  31. // 控制接口
  32. virtual bool start(LineOpParam* pParam) = 0; // 操作启动(命令方式)
  33. virtual bool start(PCHAN_EVENT_NOTIFY pNotify); // 操作启动(命令方式)
  34. virtual bool cancel(LONG InstanceCancel); // 取消当前操作
  35. virtual bool hangup(LONG InstanceHangup); // 操作中挂机
  36. virtual bool next(LONG Instance); // 执行下一步操作
  37. virtual void setOpInstance(LONG Instance); // 设置调用标识
  38. virtual void clean();
  39. // 事件响应接口
  40. virtual void onHostChanDtmf(LPCTSTR Dtmf); // 关联通道DTMF处理
  41. virtual void onBackgroudJobDone(PBG_JOB_NOTIFY pNotify); // 后台命令执行结束事件处理
  42. virtual void onAssoChanStateUpdated(CVirtualChan* pAssoChan); // 相关通道状态更新处理
  43. virtual void onHostChanStateUpdated(CVirtualChan* pHostChan); // 关联通道状态更新处理
  44. virtual void onSessionChanStateUpdated(CVirtualChan* pChan); // 同会话中通道状态更新处理
  45. virtual void onChanAppExecuted(CVirtualChan* pHostChan, PAPP_EXEC_NOTIFY pNotify); // 通道任务执行结束事件处理
  46. protected:
  47. virtual void _end(bool IsSucceed) = 0; // 操作完成(注:此操作之后只能调用 return 语句)
  48. protected:
  49. COperationReactor* m_pParent; // 宿主类
  50. CVirtualChan* m_pHostChan; // 当前操作的主控通道
  51. LONG m_Instance; // 调用标识,用于回传
  52. LONG m_InstanceCancel; // 启动取消操作的调用标识
  53. };