| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*************************************************************************
- 【文件名】 VirtualLine.h
- 【功能模块和目的】 虚拟线路管理类头文件
- 【开发者及日期】 郑石诺 2015/03/24
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- class CReqBase;
- class CProxyShell;
- /*************************************************************************
- 【类名】 CVirtualLine
- 【功能】
- 【接口说明】 虚拟线路管理类
- 【开发者及日期】 郑石诺 2015/03/24
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CVirtualProxy
- {
- public:
- CVirtualProxy(CProxyShell* pParent, CRDRID DevId);
- virtual ~CVirtualProxy(void) = 0 {}
- // 线路操作相关
- virtual UINT lineId(void) const = 0; // 线路逻辑ID
- virtual DEV_RES_TYPE type(void) const = 0;
- virtual void getAssoExtenNo(CString& ExtenNo) {}
- CRDRID devId(void) const { return m_DevId; }
- UINT state(void) const { return m_State; }
- CReqBase* currLineReq(void) const { return m_pLineReq; }
- CReqBase*& currLineReq(void) { return m_pLineReq; }
- const CString& callerNum(void) const { return m_CallerNum; }
- const CString& calleeNum(void) const { return m_CalleeNum; }
- bool invalidFlag(void) const { return m_IsInvalid; }
- bool& invalidFlag(void) { return m_IsInvalid; }
- long activeCallId(void) const { return m_ActiveCallId; }
- // 代理是否空闲
- virtual bool isIdle(void) const;
- virtual bool isFree(void) const { return isIdle(); }
- // 线路基本事件处理
- virtual void onNewCall(long Call, long SubCall);
- virtual void onDevChEvent(DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent); // 物理线路向上层发送的设备主动事件
- virtual void onLineStateChanged(long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum); // 线路状态变化事件
- virtual void wrap(CVirtualProxy* pWrapper) {}
- virtual void notifyLineInfo(void) const = 0;
- virtual void notifyLineInfo(PDU_DEV_TYPE DestType, int DestId) const = 0;
- protected:
- // 处理线路状态变化事件
- virtual void _procLineState(long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum) = 0;
- // 通知上层逻辑线路状态变化事件
- virtual void _notifyLineState(void) = 0;
- protected:
- CProxyShell* m_pParent;
- DEV_RES_ID m_DevId; // 线路的设备ID
- CReqBase* m_pLineReq; // 线路当前正在执行的操作
- VIRTUAL_LINE_STATE m_State; // 线路当前活动呼叫状态
- long m_ActiveCallId; // 线路活动会话CallID
- CString m_CallerNum; // 主叫号码
- CString m_CalleeNum; // 被叫号码
- bool m_IsInvalid; // 有效性标记
- };
|