升龙物业 老版本 ocx IPO, 加密狗 转值班电话

SubjectIncomingCall.cpp 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include "StdAfx.h"
  2. #include "SubjectIncomingCall.h"
  3. #include "SubjectRepository.h"
  4. #include "SubjectHost.h"
  5. CSubjectIncomingCall::CSubjectIncomingCall(CSubjectRepository* pParent) : CSubject(pParent)
  6. {
  7. }
  8. CSubjectIncomingCall::~CSubjectIncomingCall(void)
  9. {
  10. }
  11. /*****************************************************************
  12. **【函数名称】 _insertData
  13. **【函数功能】 追加订阅数据
  14. **【参数】 Data: 要追加的数据内容
  15. pHost: 关联的观查者对象
  16. Type: 订阅类型
  17. **【返回值】
  18. ****************************************************************/
  19. void CSubjectIncomingCall::_insertData( int Data, CSubjectHost* pHost, SUBJECT_TYPE Type )
  20. {
  21. // 保存订阅的组号到观察者
  22. pHost->addQueueNo(Data);
  23. // 提取外线来电排队信息发送到当前观查者
  24. EventSubject info;
  25. memset(&info, 0, sizeof(EventSubject));
  26. info.SubData1 = Data;
  27. info.SubData2 = m_pParent->getIncomingCallCount(Data);
  28. info.nEventType = Type;
  29. // sprintf_s(info.szData, EVENT_SUBJECT_BUF_LEN, "%d", m_pParent->getIncomingCallCount(Data));
  30. _dispatchEvent(&info, pHost->id());
  31. }
  32. /*****************************************************************
  33. **【函数名称】 _deleteData
  34. **【函数功能】 追加订阅数据
  35. **【参数】 Data: 要追加的数据内容
  36. pHost: 关联的观查者对象
  37. Type: 订阅类型
  38. **【返回值】
  39. ****************************************************************/
  40. void CSubjectIncomingCall::_deleteData( int Data, CSubjectHost* pHost )
  41. {
  42. // 删除订阅的组号
  43. pHost->delQueueNo(Data);
  44. }
  45. /*****************************************************************
  46. **【函数名称】 _isHostEvent
  47. **【函数功能】 当前事件是否属于指定的观查者
  48. **【参数】 pEvent: 事件内容
  49. pHost: 关联的观查者对象
  50. **【返回值】
  51. ****************************************************************/
  52. BOOL CSubjectIncomingCall::_isHostEvent( EventSubject* pEvent, CSubjectHost* pHost )
  53. {
  54. return pHost->isQueueNoCared(pEvent->SubData1);
  55. }
  56. /*****************************************************************
  57. **【函数名称】 incodeEvent
  58. **【函数功能】 打包通知事件内容
  59. **【参数】 SubData1 订阅数据1
  60. SubData2 订阅数据2
  61. Type 事件类型
  62. Data 附加信息
  63. **【返回值】 当前事件是否需要发送
  64. ****************************************************************/
  65. BOOL CSubjectIncomingCall::incodeEvent( UINT SubData1, UINT SubData2, SUBJECT_TYPE Type, int Data, EventSubject* pEvent )
  66. {
  67. if(m_HostList.IsEmpty())
  68. return FALSE;
  69. memset(pEvent, 0, sizeof(EventSubject));
  70. pEvent->nEventType = Type;
  71. pEvent->SubData1 = SubData1;
  72. pEvent->SubData2 = Data;
  73. // sprintf_s(pEvent->szData, EVENT_SUBJECT_BUF_LEN, "%d", Data);
  74. return TRUE;
  75. }