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

📄 acdconfig.cpp

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

 Function:
		


 Author: Leon Wang <wlywly@sina.com  giga2@tom.com>
==============================================================*/
// ACDConfig.cpp: implementation of the ACDConfig class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ACDConfig.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//##ModelId=424BB647027A
int ACDConfig::FIRST_FIT = 1;
//##ModelId=424BB647027B
int ACDConfig::ROUND_ROBIN = 2;
//##ModelId=424BB6470288
int ACDConfig::LONGEST_IDLE= 3;

//##ModelId=424BB6470289
int ACDConfig::QUEUEING_MODE_REJECT = 1;
//##ModelId=424BB6470298
int ACDConfig::QUEUEING_MODE_RINGING = 2;
//##ModelId=424BB6470299
int ACDConfig::QUEUEING_MODE_TALKING = 3;
//##ModelId=424BB64702A7
int ACDConfig::QUEUEING_MODE_RINGANDTALK = 4;

//##ModelId=424BB64702BA
ACDConfig*  ACDConfig::instance = 0;

//##ModelId=424BB647024B
ACDConfig::ACDConfig()
{
	appiniPath = getAppPath();// get acdx.ini path
}

//##ModelId=424BB647024C
ACDConfig::~ACDConfig()
{
	if (instance != NULL) {
		delete instance;
		instance = NULL;
			
	}
}

//##ModelId=424BB6470249
ACDConfig* ACDConfig::getInstance()
{
	if (instance == 0 ) {
		instance = new ACDConfig();
	}
	return instance;
}

//##ModelId=424BB647023C
int ACDConfig::getDistributionAlgorithm()
{
    CString algo = getConfigKey("Main","distribution_algorithm", "FIRST_FIT");
    if (algo.Compare("ROUND_ROBIN") == 0)
	{
         return ROUND_ROBIN;
	}
    if (algo.Compare("LONGEST_IDLE") == 0)
	{
         return LONGEST_IDLE;
	}
    else
	{
         return FIRST_FIT;
	}
}


    /**
     * return list of queues.
     * @return list of queues    read ini queues parameter
     */
//##ModelId=424BB6470278
void ACDConfig::getQueues(queue_list_vt &queues) {
		char tempChar[MAX_PATH];
		GetPrivateProfileString("Main","queues","",tempChar,MAX_PATH,appiniPath);
		queues.reserve(5);
		CString q(tempChar);
		int qPos = q.Find(',');
		do {
			if (qPos ==-1) {
				queues.push_back(q);
				break;
			}		
			queues.push_back(q.Left(qPos));				
			q = q.Mid(qPos);
			qPos = q.Find(',');
		} while(true);
}

    /**
     * Read queueing mode selected in config file for this queue.
     * @param queue queue name
     * @return constant for mode
     */
//##ModelId=424BB647026B
int ACDConfig::getQueueingMode(CString queue) {
        CString mode = getConfigKey("Main",queue + "_queueing_mode", "REJECT");
        if (mode=="RINGING")
            return QUEUEING_MODE_RINGING;
        else if (mode=="TALKING")
            return QUEUEING_MODE_TALKING;
        else if (mode=="RINGANDTALK")
            return QUEUEING_MODE_RINGANDTALK;
        else
            return QUEUEING_MODE_REJECT;
}

    /**
     * Get ring timeout for this queue.
     * @param queue queue name
     * @return  timeout in seconds
     */
//##ModelId=424BB6470269
long ACDConfig::getRingTimeout(CString queue) {
      int timeout = getConfigKey("Main",queue + "_ring_timeout", 60);    // 1 min
      return timeout;
}

    /**
     * Get talk timeout for this queue.
     * @param queue queue name
     * @return  timeout in seconds
     */
//##ModelId=424BB647025C
long ACDConfig::getTalkTimeout(CString queue) {
      int timeout = getConfigKey("Main",queue + "_talk_timeout", 3600);  // 1 hr
      return timeout;
}

    /**
     * Get priority setting for this queue.
     * @param queue queue name
     * @return  priority
     */
//##ModelId=424BB647025A
int ACDConfig::getPriority(CString queue) {
      int prio = getConfigKey("Main",queue + "_priority", 0);
      return prio;
}

    /**
     * Get max size for this queue.
     * @param queue queue name
     * @return  size
     */
//##ModelId=424BB647024E
int ACDConfig::getMaxSize(CString queue) {
      int size = getConfigKey("Main",queue + "_size", -1);
      return size;
}

⌨️ 快捷键说明

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