⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acdx.h

📁 一个c++实现的acd的例子。 ----ACDCommandListener.cpp ---ACDCommandListenerThread.cpp ---ACDConfig.cpp ---a
💻 H
字号:
 /*=============================================================

 
 Function:
		


 Author: Leon Wang <wlywly@sina.com  giga2@tom.com>
==============================================================*/
#ifndef _ACD_HEAD_1
#define _ACD_HEAD_1

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include "CallRouter.h"
#include "WQManager.h"
#include "GkClient.h"
#include "CallBacklog.h"
#include "HouseKeeper.h"

#include "ACDCommandListener.h"
#include "ACDConfig.h"
#include "Logger.h"
#include "alias.h"
#include "agent.h"
#include <LIST>

//#include "socket/Lock.h"
//class Lock;

typedef std::list<Agent> aList;	

//##ModelId=424BB6470055
class ACDX : public CCallRouter
{
public:
	//##ModelId=424BB6470057
	CString dumpPendingList();
	//##ModelId=424BB6470058
	CString dumpAgentStates();
	//##ModelId=424BB6470065
	void login(CString agent);
	//##ModelId=424BB6470067
	void logout(CString agent);
	
	//##ModelId=424BB6470075
	CString getWaitQueue(CString queue);
	//##ModelId=424BB6470077
	void routeCall(CString queue, CString callerEndId,CString callRef, CString callerAlias, CString callerIp);
	//##ModelId=424BB6470088
	void agentSanityCheck();
	//##ModelId=424BB6470094
	void clearAllAliasStates();
	//##ModelId=424BB6470095
	void setAliasTalking(CString _alias, CString _crv);
	//##ModelId=424BB64700A6
	void setAliasAvailable(CString _epid, CString _crv);
	//##ModelId=424BB64700B4
	void removeAllAliases(CString _epid);
	//##ModelId=424BB64700C3
	void addAlias(CString _alias, CString _epid);
	//##ModelId=424BB64700D2
	ACDX();
	//##ModelId=424BB64700D3
	virtual ~ACDX();
	//##ModelId=424BB64700E2
	static ACDX* getInstance();
	//##ModelId=424BB64700F2
	void Start();// start major logic 
	

//protected:

private:
	//##ModelId=424BB64700F3
	Agent longestIdleRouter(CString queue);
	//##ModelId=424BB6470101
	Agent roundRobinRouter(CString queue);
	//##ModelId=424BB6470103
	Agent firstFitRouter(CString queue);
	//##ModelId=424BB6470112
	Agent firstFitRouter(int start, CString queue);
	//##ModelId=424BB6470121
	Agent agentByCrv(CString _epid, CString _crv);
	//##ModelId=424BB6470130

	Alias aliasById(CString _alias, CString _epid);

	//##ModelId=424BB6470133
	Alias aliasByName(CString _alias);
	
	//##ModelId=424BB647014F
    static ACDX* instance;   // Singleton
	//##ModelId=42198D190087


	//##ModelId=424BB6470160
	aList aliasList ;
	//##ModelId=424BB6470170
	GkClient* gkclient;
	//##ModelId=424BB647017F
	CCallBacklog* backlog;
	//##ModelId=424BB647018F
    HouseKeeper* houseKeeping ;// later new it= new HouseKeeper();
	//##ModelId=424BB647019F
	WQManager* waitQueues;// need  new it
	//##ModelId=424BB64701A4
	ACDCommandListener* commandListener;
	//##ModelId=424BB64701B0
    ACDConfig* config;

	//##ModelId=42198D1900F3
//	Logger logger;//leon add
 
	//##ModelId=424BB64701BD
    int distribution;   // call distribution algorithm
	//##ModelId=424BB64701DC
    CString gkHost;
	//##ModelId=424BB64701EC
    int gkPort;
	//##ModelId=424BB64701ED
    int listenPort;
	//##ModelId=424BB64701FB
    CString redirLocation;


	//##ModelId=424BB647020C
	Agent lastPick;

};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -