| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #include "StdAfx.h"
- #include "SubjectIncomingCall.h"
- #include "SubjectRepository.h"
- #include "SubjectHost.h"
- CSubjectIncomingCall::CSubjectIncomingCall(CSubjectRepository* pParent) : CSubject(pParent)
- {
- }
- CSubjectIncomingCall::~CSubjectIncomingCall(void)
- {
- }
- /*****************************************************************
- **【函数名称】 _insertData
- **【函数功能】 追加订阅数据
- **【参数】 Data: 要追加的数据内容
- pHost: 关联的观查者对象
- Type: 订阅类型
- **【返回值】
- ****************************************************************/
- void CSubjectIncomingCall::_insertData( int Data, CSubjectHost* pHost, SUBJECT_TYPE Type )
- {
- // 保存订阅的组号到观察者
- pHost->addQueueNo(Data);
- // 提取外线来电排队信息发送到当前观查者
- EventSubject info;
- memset(&info, 0, sizeof(EventSubject));
- info.SubData1 = Data;
- info.SubData2 = m_pParent->getIncomingCallCount(Data);
- info.nEventType = Type;
- // sprintf_s(info.szData, EVENT_SUBJECT_BUF_LEN, "%d", m_pParent->getIncomingCallCount(Data));
- _dispatchEvent(&info, pHost->id());
- }
- /*****************************************************************
- **【函数名称】 _deleteData
- **【函数功能】 追加订阅数据
- **【参数】 Data: 要追加的数据内容
- pHost: 关联的观查者对象
- Type: 订阅类型
- **【返回值】
- ****************************************************************/
- void CSubjectIncomingCall::_deleteData( int Data, CSubjectHost* pHost )
- {
- // 删除订阅的组号
- pHost->delQueueNo(Data);
- }
- /*****************************************************************
- **【函数名称】 _isHostEvent
- **【函数功能】 当前事件是否属于指定的观查者
- **【参数】 pEvent: 事件内容
- pHost: 关联的观查者对象
- **【返回值】
- ****************************************************************/
- BOOL CSubjectIncomingCall::_isHostEvent( EventSubject* pEvent, CSubjectHost* pHost )
- {
- return pHost->isQueueNoCared(pEvent->SubData1);
- }
- /*****************************************************************
- **【函数名称】 incodeEvent
- **【函数功能】 打包通知事件内容
- **【参数】 SubData1 订阅数据1
- SubData2 订阅数据2
- Type 事件类型
- Data 附加信息
- **【返回值】 当前事件是否需要发送
- ****************************************************************/
- BOOL CSubjectIncomingCall::incodeEvent( UINT SubData1, UINT SubData2, SUBJECT_TYPE Type, int Data, EventSubject* pEvent )
- {
- if(m_HostList.IsEmpty())
- return FALSE;
- memset(pEvent, 0, sizeof(EventSubject));
- pEvent->nEventType = Type;
- pEvent->SubData1 = SubData1;
- pEvent->SubData2 = Data;
- // sprintf_s(pEvent->szData, EVENT_SUBJECT_BUF_LEN, "%d", Data);
- return TRUE;
- }
|