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