コード例 #1
0
ファイル: AdControl.cpp プロジェクト: oiesis/ADService
//Init Output
int AdControl::OutputInit(int iPort)
{
	int ret;
	if(iPort > 0)
		m_iPort = iPort;
	
	//Get System path
	char path[AD_BYTE512];
	getcwd(path,AD_BYTE512);
	m_sProjectPath = path;
	
	//init net module
	cout<<"***********Output Server Init**************\n"<<endl;
	ret = m_ctServer.AdServerInit(m_iPort, 1, 0);
	if(ret != AD_SUCCESS)
	{
		AD_ERROR("AdServer init error\n");
		return ret;
	}
	
	//create net (server,  work,  write) task
	ret = AdControlNetCreateTask( static_cast<AdNetBase *>(&m_ctServer), 
			static_cast<AdNetTaskInterface*>(this), 1, 0);
	if(ret != AD_SUCCESS)
	{
		AD_ERROR("AdServer Create error\n");
		return ret;
	}
	return AD_SUCCESS;
}
コード例 #2
0
int AdCharge::ChargeInit(const AdRtbConfig & ctConfig, map<UINT, AdTask *> & TaskList)
{
	int ret;

	//get charge server info
	string sSec = "[ChargeServer]";
	ADCONFIG & server = ctConfig.Get(sSec);
	ADCONFIG_ITER iterConf;

	//init client session
	if(m_ltServer.empty())
	{
		//init clients
		ret = m_ctClients.AdClientInit(m_ltServer, 1, 0);
		if(ret != AD_SUCCESS)
		{
			AD_ERROR("AdClient init error\n");
			return ret;
		}

		//create net (server,  work) task
		ret = AdControlNetCreateTask(static_cast<AdNetBase *>(&m_ctClients),
			static_cast<AdNetTaskInterface *>(this), 1, 0);
		if(ret != AD_SUCCESS)
		{
			AD_ERROR("AdServer Create error\n");
			return ret;
		}	
	}
	else
	{
		//clear old server and session
		list<string>::iterator iterList;
		for(iterList = m_ltServer.begin(); iterList != m_ltServer.end(); iterList ++)
		{
			m_ctClients.AdClientDelSession(*iterList);
		}
		m_ltServer.clear();
	}

	//create session
	for(iterConf = server.begin(); iterConf != server.end(); iterConf ++)
	{
		m_ltServer.push_back(iterConf->second);
		ret = m_ctClients.AdClientCreateSession(iterConf->second);
		if(ret != AD_SUCCESS)
		{
			AD_ERROR("AdClient Create Session  error\n");
		} 
	}

	return AD_SUCCESS;
}