linux版本中间件

VirtualChan.h 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include "FsLinkInc.h"
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6. class CFsProxy;
  7. class COperation;
  8. class VirtualChan
  9. {
  10. public:
  11. VirtualChan(CFsProxy* pParent, uint32_t ChanNo);
  12. virtual ~VirtualChan();
  13. uint32_t no(void) const { return m_No; }
  14. CHAN_LOGIC_STATE state(void) const { return m_State; }
  15. bool isInMeeting(void) const { return m_IsInMeeting; }
  16. bool& isInMeeting(void) { return m_IsInMeeting; }
  17. COperation* currOp(void) const { return m_pOperation; }
  18. string chanId(void) const { return m_ChanId; }
  19. string sessionId(void) const { return m_SessionId; }
  20. string callerNum(void) const { return m_CallerNum; }
  21. string calleeNum(void) const { return m_CalleeNum; }
  22. string opNumber(void) const { return m_OpNumber; }
  23. string& opNumber(void) { return m_OpNumber; }
  24. bool bindOp(COperation* pOp);
  25. bool releaseOp(COperation* pOp);
  26. // 待实现接口
  27. virtual DEV_RES_TYPE type(void) const = 0; // 通道类型
  28. virtual bool isFree(void) const = 0;
  29. virtual bool isVoid(void) const = 0;
  30. virtual void regist(void) const = 0;
  31. virtual void onChanEvent(PCHAN_EVENT_NOTIFY pNotify) = 0;
  32. virtual void onSessionChanEvent(VirtualChan* pChanSession, PCHAN_EVENT_NOTIFY pNotify) = 0;
  33. virtual void onChanHold(EVENT_HOLD_TYPE HoldType) {};
  34. protected:
  35. void _setSession(string SessionId, string ChanId);
  36. void _reset(void);
  37. protected:
  38. CFsProxy* m_pParent; // 宿主类
  39. uint32_t m_No; // 通道号
  40. CHAN_LOGIC_STATE m_State; // 状态
  41. bool m_IsInMeeting; // 是否在会议中
  42. COperation* m_pOperation; // 关联操作
  43. string m_CallerNum; // 主叫号码
  44. string m_CalleeNum; // 被叫号码
  45. string m_OpNumber; // 通道操作号码
  46. private:
  47. string m_ChanId; // 通道动态ID
  48. string m_SessionId; // 会话ID
  49. };