/************************************************************************* 【文件名】 Operation.h 【功能模块和目的】 设备操作基类头文件 【开发者及日期】 郑石诺 2016/08/01 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once class CVirtualChan; class COperationReactor; /************************************************************************* 【类名】 COperation 【功能】 【接口说明】 设备操作基类 【开发者及日期】 郑石诺 2016/08/01 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class COperation { public: COperation(COperationReactor* pParent, LONG Instance); virtual ~COperation(void); virtual LINE_OP type(void) const = 0; LONG uniqueId(void) const { return reinterpret_cast(this); } // 关联操作 virtual bool attachHostChan(CVirtualChan* pChan); // 设置主控通道的关联 virtual void detachHostChan(void); // 取消通道关联 // 控制接口 virtual bool start(LineOpParam* pParam) = 0; // 操作启动(命令方式) virtual bool start(PCHAN_EVENT_NOTIFY pNotify); // 操作启动(命令方式) virtual bool cancel(LONG InstanceCancel); // 取消当前操作 virtual bool hangup(LONG InstanceHangup); // 操作中挂机 virtual bool next(LONG Instance); // 执行下一步操作 virtual void setOpInstance(LONG Instance); // 设置调用标识 virtual void clean(); // 事件响应接口 virtual void onHostChanDtmf(LPCTSTR Dtmf); // 关联通道DTMF处理 virtual void onBackgroudJobDone(PBG_JOB_NOTIFY pNotify); // 后台命令执行结束事件处理 virtual void onAssoChanStateUpdated(CVirtualChan* pAssoChan); // 相关通道状态更新处理 virtual void onHostChanStateUpdated(CVirtualChan* pHostChan); // 关联通道状态更新处理 virtual void onSessionChanStateUpdated(CVirtualChan* pChan); // 同会话中通道状态更新处理 virtual void onChanAppExecuted(CVirtualChan* pHostChan, PAPP_EXEC_NOTIFY pNotify); // 通道任务执行结束事件处理 protected: virtual void _end(bool IsSucceed) = 0; // 操作完成(注:此操作之后只能调用 return 语句) protected: COperationReactor* m_pParent; // 宿主类 CVirtualChan* m_pHostChan; // 当前操作的主控通道 LONG m_Instance; // 调用标识,用于回传 LONG m_InstanceCancel; // 启动取消操作的调用标识 };