本文整理汇总了C++中Response::ParseFromArray方法的典型用法代码示例。如果您正苦于以下问题:C++ Response::ParseFromArray方法的具体用法?C++ Response::ParseFromArray怎么用?C++ Response::ParseFromArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Response
的用法示例。
在下文中一共展示了Response::ParseFromArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: executeProtobuf
Response MarketSession::executeProtobuf(Request request)
{
QByteArray requestBytes(request.SerializeAsString().c_str(),request.ByteSize());
QByteArray responseBytes;
if(!context.issecure())
responseBytes = executeRawHttpQuery(requestBytes);
else
responseBytes = executeRawHttpsQuery(requestBytes);
Response r;
r.ParseFromArray(responseBytes.constData(),responseBytes.size());
return r;
}
示例2: e
inline void cpp_handler_wrapper<Response>::operator()(
const rpc_error* error, const void* data, size_t size) {
if (cpp_handler_.empty())
return; // ignore error and message
Response resp;
if (error) {
cpp_handler_(error, resp);
return;
}
BOOST_ASSERT(data);
if (resp.ParseFromArray(data, size)) {
cpp_handler_(NULL, resp);
return;
}
// invalid message
rpc_error e(error_code::INVALID_MESSAGE, "");
cpp_handler_(&e, resp);
} // operator()()
示例3: f
int f(ptime time, int dt) {
NF *f = new NF;
f->set_dt(dt);
f->set_allocated_current_time(ptime_to_DataTime(time));
assert(f->IsInitialized());
Call c;
c.set_type(Call::N_F);
c.set_allocated_n_f(f);
assert(c.IsInitialized());
std::string buf = c.SerializeAsString();
zmq::message_t req((void*) buf.data(), buf.length(), 0);
socket.send(req);
zmq::message_t resp;
socket.recv(&resp);
Response r;
r.ParseFromArray(resp.data(), resp.size());
assert(r.type() == Call::N_F);
return r.n_f();
}
示例4: parse
bool PbSession::parse(Response& response) const
{
error_.clear();
PbHeader hdr;
if( !parse(hdr) )
return false;
if( !response.ParseFromArray(cache_->data()+sizeof(hdr), hdr.bufsize) ) {
error_ = "Protobuf parsing error (analysis under debug only).";
qDebug() << "Protobuf parsing error: " << response.DebugString().c_str();
return false;
}
qint32 error_code = response.has_error_code() ? response.error_code() : 0;
if( error_code >= 300 ) {
error_ = "Error in protobuf response: ";
if( error_code )
error_ += QString(" code=%1 ").arg(error_code);
for(int c=0; c<response.error_message_size(); ++c)
error_ += QString(" error%1=").arg(c) + QString::fromStdString(response.error_message(c)) + " ";
error_ = error_.trimmed();
return false;
}
if( !response.has_message_type() ) {
error_ = QString("Error in protobuf response: 'message_type' is absent.");
return false;
}
else if( response.message_type() != RPC_WORKGROUPS_LIST && response.message_type() != RPC_UNKNOWN ) {
error_ = QString("Error in protobuf response: 'message_type=%1'.").arg( response.message_type() );
return false;
}
return validate( response.workgroups_list() );
}
示例5: get_parameter
double get_parameter(const std::string &name) const {
std::string *allocated_name = new std::string(name);
NGetParameter *gp = new NGetParameter;
gp->set_allocated_name(allocated_name);
assert(gp->IsInitialized());
Call c;
c.set_type(Call::N_GET_PARAMETER);
c.set_allocated_n_get_parameter(gp);
assert(c.IsInitialized());
std::string buf = c.SerializeAsString();
zmq::message_t req((void*) buf.data(), buf.length(), 0);
socket.send(req);
zmq::message_t resp;
socket.recv(&resp);
Response r;
bool parsed = r.ParseFromArray(resp.data(), resp.size());
assert(parsed);
return r.n_get_parameter().value().double_();
}