www.pudn.com > acdx.rar > acdx.h


 /*============================================================= 
 
  
 Function: 
		 
 
 
 Author: Leon Wang  
==============================================================*/ 
#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  
 
//#include "socket/Lock.h" 
//class Lock; 
 
typedef std::list 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