中航光电的中间件仓库

ReqBase.h 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*************************************************************************
  2. 【文件名】 LineReq.h
  3. 【功能模块和目的】 线路请求基类头文件
  4. 【开发者及日期】 郑石诺 2015/03/24
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. class CProxyShell;
  11. class CVirtualProxy;
  12. /*************************************************************************
  13. 【类名】 CLineReq
  14. 【功能】
  15. 【接口说明】 线路请求基类
  16. 【开发者及日期】 郑石诺 2015/03/24
  17. 【版本】 V1.0.0
  18. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  19. 【更改记录】
  20. *************************************************************************/
  21. class CReqBase
  22. {
  23. public:
  24. CReqBase(CProxyShell* pParent, CPduEntity& ReqPdu);
  25. virtual ~CReqBase(void) = 0 {}
  26. // 事件响应接口
  27. virtual void onDevChEvent(CVirtualProxy* pEventLine, DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent) = 0; // 线路向上层发送的设备主动事件
  28. virtual void onLineStateChanged(CVirtualProxy* pEventLine,
  29. VIRTUAL_LINE_STATE LineState,
  30. long Call,
  31. long SubCall,
  32. LPCTSTR lpCallerNum,
  33. LPCTSTR lpCalleeNum) = 0; // 线路状态变化事件
  34. // 关联操作
  35. void attachHostLine(CVirtualProxy* pLine); // 设置主控线路的关联
  36. void detachHostLine(); // 取消线路关联
  37. // 操作主控方法
  38. virtual bool request(void) = 0; // 操作启动(命令方式)
  39. virtual bool request(LPCTSTR lpContent) = 0; // 操作启动(话机方式)
  40. virtual bool cancel(long InstanceCancel) = 0; // 取消当前操作
  41. virtual bool hangUp(long InstanceHangUp) = 0; // 操作中挂机
  42. virtual bool resume(long InstanceResume, int Data) // 继续执行当前操作
  43. { return false; }
  44. virtual void end(bool IsSucceed, LPCTSTR lpData) = 0; // 操作完成(注:此操作之后只能调用 return 语句)
  45. virtual void setAssoInfo(CPduEntity& a_Req) { } // 设置关联信息
  46. long callInstance(void) const { return m_InstanceCall; }
  47. CPduEntity& comeFrom(void) { return m_ReqPdu; }
  48. protected:
  49. // 通知操作进展事件
  50. void _notifyOpProcess(UINT HostLine, UINT AssoLine, DEV_RES_TYPE AssoLineType, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum);
  51. protected:
  52. CProxyShell* m_pParent; // 线路操作管理类
  53. CVirtualProxy* m_pHostLine; // 主控线路
  54. long m_InstanceCall; // 业务逻辑调用标识
  55. long m_InstanceCancel; // 业务逻辑取消调用标识
  56. CPduEntity m_ReqPdu;
  57. };