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

SubjectAgentsOnSpecState.cpp 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "StdAfx.h"
  2. #include "SubjectAgentsOnSpecState.h"
  3. #include "SubjectRepository.h"
  4. #include "SubjectHost.h"
  5. CSubjectAgentsOnSpecState::CSubjectAgentsOnSpecState(CSubjectRepository* pParent) : CSubject(pParent)
  6. {
  7. }
  8. CSubjectAgentsOnSpecState::~CSubjectAgentsOnSpecState(void)
  9. {
  10. }
  11. /*****************************************************************
  12. **【函数名称】 _insertData
  13. **【函数功能】 追加订阅数据
  14. **【参数】 Data: 要追加的数据内容
  15. Host: 关联的观查者对象
  16. Type: 订阅类型
  17. **【返回值】
  18. ****************************************************************/
  19. void CSubjectAgentsOnSpecState::_insertData( int Data, CSubjectHost* pHost, SUBJECT_TYPE Type )
  20. {
  21. // 保存当前列表
  22. m_pParent->getStateSpecAgentList(Type, m_CurrentList);
  23. // 提取指定状态的座席列表发送到当前观查者
  24. EventSubject info;
  25. memset(&info, 0, sizeof(EventSubject));
  26. info.SubData1 = 0;
  27. info.SubData2 = 0;
  28. info.nEventType = Type;
  29. sprintf_s(info.szData, EVENT_SUBJECT_BUF_LEN, "%s", m_CurrentList);
  30. _dispatchEvent(&info, pHost->id());
  31. }
  32. /*****************************************************************
  33. **【函数名称】 _deleteData
  34. **【函数功能】 移除订阅数据
  35. **【参数】 Data: 要移除的数据内容
  36. pHost: 关联的观查者对象
  37. **【返回值】
  38. ****************************************************************/
  39. void CSubjectAgentsOnSpecState::_deleteData( int Data, CSubjectHost* pHost )
  40. {
  41. }
  42. /*****************************************************************
  43. **【函数名称】 incodeEvent
  44. **【函数功能】 打包通知事件内容
  45. **【参数】 SubData1 订阅数据1
  46. SubData2 订阅数据2
  47. Type: 事件类型
  48. Data: 附加信息
  49. **【返回值】 当前事件是否需要发送
  50. ****************************************************************/
  51. BOOL CSubjectAgentsOnSpecState::incodeEvent( UINT SubData1, UINT SubData2, SUBJECT_TYPE Type, int Data, EventSubject* pEvent )
  52. {
  53. if(m_HostList.IsEmpty())
  54. return FALSE;
  55. CString Temp;
  56. // 状态队列是否存在变化
  57. m_pParent->getStateSpecAgentList(Type, Temp);
  58. if(Temp.CompareNoCase(m_CurrentList) == 0)
  59. return FALSE;
  60. // 队列已变化,可以通知观查者
  61. m_CurrentList = Temp; // 保存
  62. memset(pEvent, 0, sizeof(EventSubject));
  63. pEvent->nEventType = Type;
  64. strcpy_s(pEvent->szData, EVENT_SUBJECT_BUF_LEN, m_CurrentList);
  65. return TRUE;
  66. }