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


C++ Response::ByteSize方法代码示例

本文整理汇总了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;
}
开发者ID:avivgr,项目名称:queueservice,代码行数:80,代码来源:Server.cpp


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