本文整理汇总了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;
}