本文整理汇总了C++中Response::ParseFromString方法的典型用法代码示例。如果您正苦于以下问题:C++ Response::ParseFromString方法的具体用法?C++ Response::ParseFromString怎么用?C++ Response::ParseFromString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Response
的用法示例。
在下文中一共展示了Response::ParseFromString方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleOp
void handleOp(zmq::socket_t &socket, int opCode) {
std::string s_req, trace, line;
std::cout<<"Trace: ";
std::getline(std::cin, trace);
Request req;
Id id;
Person person;
Request_Header_Type type;
switch (opCode) {
case 1:
type = Request_Header_Type_LOOKUP;
std::cout<<"id: ";
line.clear();
std::getline(std::cin, line);
id = makeId(fromString<int>(line));
req = makeRequest(type, id, person, false, trace);
break;
case 3:
type = Request_Header_Type_REMOVE;
std::cout<<"id: ";
line.clear();
std::getline(std::cin, line);
id = makeId(fromString<int>(line));
req = makeRequest(type, id, person, false, trace);
break;
case 2:
{
type = Request_Header_Type_INSERT;
std::cout<<"id: ";
line.clear();
std::getline(std::cin, line);
id = makeId(fromString<int>(line));
line.clear();
std::cout<<"Name: ";
std::getline(std::cin, line);
std::string ph, ovr;
std::cout<<"Phone: ";
std::getline(std::cin, ph);
std::cout<<"Overwrite: (y/n) ";
std::getline(std::cin, ovr);
person = makePerson(line, ph);
req = makeRequest(type, id, person, ovr.compare("y") == 0,
trace);
break;
}
};
std::cout<<"Request: "<<requestToString(req);
TRACE(std::cout, "");
req.SerializeToString(&s_req);
zmq::message_t z_req(s_req.size());
memcpy(z_req.data(), (void *)s_req.data(), s_req.size());
socket.send(z_req);
zmq::message_t z_resp;
socket.recv(&z_resp);
std::string s_resp((char *)z_resp.data(), z_resp.size());
Response resp;
resp.ParseFromString(s_resp);
std::cout<<"Response = "<<responseToString(resp);
}
示例2: OnPackage
void TcpClient::OnPackage(const char *buf, size_t len)
{
if (buf == NULL || len <= 0)
return;
TopMessage msg;
if(!msg.ParseFromArray(buf, len))
return;
__int64 seq = msg.seq();
switch (msg.msg_type())
{
default:
break;
case RESPONSE:
{
switch (msg.sub_msg_type())
{
default:
break;
case LOGIN:
{
/*Response *pLoginResponse = new Response;
if (!pLoginResponse->ParseFromString(msg.data()))
{
delete pLoginResponse;
return;
}
ResultNetData *pResultNetData = new ResultNetData;
pResultNetData->nSeq = seq;
pResultNetData->pResponse = pLoginResponse;
lock_guard<mutex> lg(G.m_netQueueMutex);
G.m_listNetQueue.push_back(pResultNetData);
G.m_nServerDate = msg.timestamp();*/
Response loginResponse;
if (!loginResponse.ParseFromString(msg.data()))
{
return;
}
G.m_nServerDate = msg.timestamp();
if (loginResponse.response_code() == OK)
{
G.m_nServerDate = msg.timestamp();
G.m_nStatus = STATUS_AUTHED;
for (int idx = 0; idx < loginResponse.data_size(); idx++)
{
Data crdata = loginResponse.data(idx);
ProtobufResponseData pbrd;
if (idx == 0)
{
if(crdata.type() == PROTOBUF)
{
if (!pbrd.ParseFromString(crdata.value()))
continue;
}
else
continue;
for(int i = 0; i < pbrd.rowvalue_size(); i++)
{
RowValue rowValue = pbrd.rowvalue(i);
for(int j = 0; j < rowValue.columnvalue_size(); j++)
{
RowValue_ColumnValue columnValue = rowValue.columnvalue(j);
if (pbrd.columninfo(j).name() == "money")
{
}
else if (pbrd.columninfo(j).name() == "username")
{
// G.m_strUserName = columnValue.stringvalue();
}
else if (pbrd.columninfo(j).name() == "userid")
{
G.m_strUserId = columnValue.stringvalue();
}
}
}
}
}
cocos2d::Director::getInstance()->getScheduler()->performFunctionInCocosThread([]
{
//G.m_mapReserveData.find(nSeq);
auto scene = CardScene::createScene();
cocos2d::Director::getInstance()->replaceScene(scene);
}
);
}
else if (loginResponse.response_code() == NOT_FOUND)
{
}
}
break;
case POST:
{
Response *pResponse = new Response;
//.........这里部分代码省略.........
示例3: receive_response
Response kConnection::receive_response() {
Response r;
auto s = readmessage();
r.ParseFromString(s);
return r;
}