当前位置: 首页>>代码示例>>C++>>正文


C++ Worker::GetMem方法代码示例

本文整理汇总了C++中Worker::GetMem方法的典型用法代码示例。如果您正苦于以下问题:C++ Worker::GetMem方法的具体用法?C++ Worker::GetMem怎么用?C++ Worker::GetMem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Worker的用法示例。


在下文中一共展示了Worker::GetMem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: svc

int Query_Processor::svc()
{
	Worker * worker;
	int ret,cached;
	//ScribeProxyClient *client=NULL;
	std::vector<std::string> category;
	int queueLen = 0;
	cerr<<"initialized thread..."<<endl;

	pthread_barrier_wait(processor_init);

	while ((worker = m_task_list.get()) != NULL)
	{
		queueLen = m_task_list.len();

		ret = parse_worker(worker);
		if(ret >= 0)
		{
			// TODO: process the request and fill the result in result
			//snprintf(result, MAX_HTTP_CONTENT_LENGTH, "<h1>Hello world!</h1>Query string: %s", worker->querystring);
			ret = 0;
			//clock_t start=clock();

			//Chat Server 
			string szOrigInput = worker->querystring;

			string res = "";
            //usleep(300000);

			if(szOrigInput == "register_slave")
			{
				std::string server_ip = get_param("server_ip=", worker->uri);
				std::string recv_realtime_req_str = get_param("recv_real_time_request=", worker->uri);
				bool recv_realtime_req = (recv_realtime_req_str == "True")?true:false;
				m_validation->registerSlave(server_ip, recv_realtime_req);
			}
			else if(szOrigInput == "validate")
			{
                string req = get_param("req", worker->uri);
                string type = get_param("type", worker->uri);
                m_validation->handleValidReq(req, type, res);
			}


			// copy the result into worker
			int max_len = 65536000;
			worker->result = (char*)worker->GetMem(max_len);
			if (worker->result == NULL)
			{
				pthread_mutex_unlock(&gMutex);//解锁
				m_httpserver->retrieve_worker(worker);
				continue;
			}
			if("" != res)
			{
				//int max_len = MAX_HTTP_CONTENT_LENGTH;
				worker->result_len = std::min(res.length(), size_t(max_len) - 1) + 1;
				memcpy(worker->result, res.c_str(), worker->result_len);
				worker->result[worker->result_len] = 0;
				_INFO("[ Result: %s]", worker->result);
			}

			//pthread_mutex_unlock(&gMutex);//解锁
		}//if

		int retlen = (ret==-1)?-1:worker->result_len;
		const char * queryStr = (worker->query_len<=0)?"NULL":worker->querystring;
		_INFO("[Observer,cost=%d,ret=%d,querystring=%s,Owner=OP]",WASTE_TIME_US(worker->receive_time),retlen,queryStr);

		m_httpserver->retrieve_worker(worker);
	}//while

	cerr<<"closed thread!!"<<endl;

	return 0;
}
开发者ID:dangpu,项目名称:momoko,代码行数:76,代码来源:query_processor.cpp


注:本文中的Worker::GetMem方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。