| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include "StdAfx.h"
- #include "StrategySpecifiedAgent.h"
- #include "Agent.h"
- #include "AgentGroup.h"
- CStrategySpecifiedAgent::CStrategySpecifiedAgent(void)
- {
- }
- CStrategySpecifiedAgent::~CStrategySpecifiedAgent(void)
- {
- }
- /*****************************************************************
- **【函数名称】 _setStrategyInfo
- **【函数功能】 设定策略的参照信息
- **【参数】
- **【返回值】
- ****************************************************************/
- void CStrategySpecifiedAgent::_setStrategyInfo( const CString& Info )
- {
- m_AgentIdList.RemoveAll();
- CHAR szInfo[AGENT_ID_BUF_LEN];
- lstrcpy(szInfo, Info);
-
- // 解析指定的座席工号
- char* lpNextToken = NULL;
- char* lpToken = strtok_s(szInfo, AGENT_GROUP_SPLIT_FLAG, &lpNextToken);
- while(lpToken != NULL)
- {
- UINT AgentId = 0;
- sscanf_s(lpToken, "%d", &AgentId);
- m_AgentIdList.Add(AgentId);
- lpToken = strtok_s(NULL, AGENT_GROUP_SPLIT_FLAG, &lpNextToken);
- } // end while
- }
- /*****************************************************************
- **【函数名称】 _locateAgent
- **【函数功能】 得到当前排队策略下可用座席
- **【参数】
- **【返回值】
- ****************************************************************/
- CAgent* CStrategySpecifiedAgent::_locateAgent( CAgentGroup& AgentGroup )
- {
- for(int i=0; i<m_AgentIdList.GetCount(); i++)
- {
- for(int j = 0; j < AgentGroup.GetCount(); ++j)
- {
- CAgent* pAgent = AgentGroup[j];
- if(pAgent->id() == m_AgentIdList[i] && pAgent->isFree())
- {
- return pAgent;
- }
- }
- } // end for
- return NULL;
- }
|