| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*************************************************************************
- 【文件名】 SubjectRepository.h
- 【功能模块和目的】 发布主题管理类头文件
- 【开发者及日期】 郑石诺 2015/01/22
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- class CAgentOffice;
- class CExtenCtrl;
- class CQueueMgr;
- class CSubject;
- /*************************************************************************
- 【类名】 CSubjectRepository
- 【功能】
- 【接口说明】 发布主题管理类
- 【开发者及日期】 郑石诺 2015/01/22
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CSubjectRepository
- {
- public:
- CSubjectRepository(CAgentOffice* pAgentOffice, CExtenCtrl* pExtenCtrl, CQueueMgr* pQueueMgr);
- ~CSubjectRepository(void);
- // 订阅接口
- void registObserver(UINT AgentId, SUBJECT_TYPE Type, int Data); // 注册订阅
- void removeObserver(UINT AgentId, SUBJECT_TYPE Type, int Data); // 取消订阅
- // 清除指定座席的所有订阅的主题
- void clearObserver(UINT AgentId);
- // 信息通知接口
- void onAgentStateUpdated(UINT Id, UINT ExtId, int State); // 座席状态变化事件响应
- void onPhoneStateUpdated(UINT Id, UINT ExtId, int State); // 分机状态变化事件响应
- void onQueueStateUpdated(UINT QueueNo, UINT Count); // 排队状态变化事件响应
- void onTrunkUsageUpdated(UINT TaskId, UINT Usage); // 呼叫任务外线利用率变化事件响应
- // 信息管理控制,供内部主题类调用
- UINT getAgentAssoExten(UINT AgentId); // 得到指定座席的关联分机号
- UINT getAgentAssoExtState(UINT AgentId); // 得到指定座席的关联分机状态
- UINT getAgentState(UINT AgentId); // 得到指定座席的当前状态
- UINT getIncomingCallCount(UINT QueueNo); // 得到等待排队的呼叫数量
- void getStateSpecAgentList(SUBJECT_TYPE Type, CString& AgentList); // 获取指定状态的座席列表
- CAgentOffice* GetAgentOffice() {return m_pAgentOffice;} //
- private:
- void __initSubjectMap(void); // 初始化主题索引表
- void __clearSubjectMap(void); // 清空主题索引表
- CSubject* __getSubject(SUBJECT_TYPE Type); // 得到指定类型的主题
- private:
- CExtenCtrl* m_pExtenCtrl; // 内线分机管理类
- CQueueMgr* m_pQueueMgr; // 排队来电管理类
- CAgentOffice* m_pAgentOffice; // 座席管理类
- CCriticalSection m_RegistLock;
- CMap<UINT, UINT, CSubject*, CSubject*> m_SubjectMap; // 主题索引表
- };
|