本文整理汇总了C++中Response::ByteSize方法的典型用法代码示例。如果您正苦于以下问题:C++ Response::ByteSize方法的具体用法?C++ Response::ByteSize怎么用?C++ Response::ByteSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Response
的用法示例。
在下文中一共展示了Response::ByteSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: process_request_work_cb
static void process_request_work_cb(uv_work_t *req)
{
conn *incoming;
Request r;
Response resp;
incoming = CONTAINER_OF(req, conn, work);
client_ctx *cx = incoming->client;
r.ParseFromArray(incoming->buf + 2, incoming->req_size);
switch (r.type())
{
case Request::CREATE_QUEUE:
pr_info("CREATE_QUEUE");
{
CreateQueueResponse *create = new CreateQueueResponse();
std::string queueid = cx->sx->qs->CreateQueue(r.createqueue().name());
create->set_queueid(queueid);
resp.set_type(Response::CREATE_QUEUE);
resp.set_allocated_createqueue(create);
}
break;
case Request::GET_QUEUE:
pr_info("GET_QUEUE");
{
GetQueueResponse *get = new GetQueueResponse();
std::string queueid = cx->sx->qs->GetQueue(r.getqueue().name());
get->set_queueid(queueid);
resp.set_type(Response::GET_QUEUE);
resp.set_allocated_getqueue(get);
}
break;
case Request::DEL_QUEUE:
pr_info("DEL_QUEUE");
{
DelQueueResponse *del = new DelQueueResponse();
cx->sx->qs->DeleteQueue(r.delqueue().queueid());
del->set_status(SUCCESS);
resp.set_type(Response::DEL_QUEUE);
resp.set_allocated_delqueue(del);
}
break;
case Request::ENQUEUE:
pr_info("ENQUEUE");
{
EnqueueResponse *enqueue = new EnqueueResponse();
cx->sx->qs->enqueue(r.enqueue().queueid(),
r.enqueue().data().c_str(), r.enqueue().data().length());
enqueue->set_status(SUCCESS);
resp.set_type(Response::ENQUEUE);
resp.set_allocated_enqueue(enqueue);
}
break;
case Request::READ:
pr_info("READ");
{
ReadResponse *read = new ReadResponse();
*read = cx->sx->qs->read(r.read().queueid(), r.read().timeout());
resp.set_type(Response::READ);
resp.set_allocated_read(read);
}
break;
case Request::DEQUEUE:
pr_info("DEQUEUE");
{
DequeueResponse *dequeue = new DequeueResponse();
bool ret = cx->sx->qs->dequeue(r.dequeue().queueid(),
r.dequeue().queueentitiyid());
dequeue->set_status(ret ? SUCCESS : NOTFOUND);
resp.set_type(Response::DEQUEUE);
resp.set_allocated_dequeue(dequeue);
}
break;
}
*((uint16_t *)(&incoming->resp_buf)) = htons(resp.ByteSize());
resp.SerializeToArray(&incoming->resp_buf[2], sizeof(incoming->resp_buf) - 2);
incoming->resp_size = resp.ByteSize() + 2;
}