AI-PredictionClient
view release on metacpan or search on metacpan
lib/AI/PredictionClient/CPP/PredictionGrpcCpp.pm view on Meta::CPAN
std::string serialized_result_object;
google::protobuf::util::JsonPrintOptions jprint_options;
google::protobuf::util::JsonParseOptions jparse_options;
google::protobuf::util::Status request_serialized_status =
google::protobuf::util::JsonStringToMessage(
serialized_request_object, &predictRequest, jparse_options);
if (!request_serialized_status.ok()) {
std::string error_result =
"{\"Status\": \"Error:object:request_deserialization:protocol_buffers\", ";
error_result += "\"StatusCode\": \"" +
std::to_string(request_serialized_status.error_code()) +
"\", ";
error_result += "\"StatusMessage\":" +
to_base64(request_serialized_status.error_message()) +
"}";
return error_result;
}
Status status = stub_->Predict(&context, predictRequest, &response);
if (status.ok()) {
google::protobuf::util::Status response_serialize_status =
google::protobuf::util::MessageToJsonString(
response, &serialized_result_object, jprint_options);
if (!response_serialize_status.ok()) {
std::string error_result =
"{\"Status\": \"Error:object:response_serialization:protocol_buffers\", ";
error_result += "\"StatusCode\": \"" +
std::to_string(response_serialize_status.error_code()) +
"\", ";
error_result += "\"StatusMessage\":" +
to_base64(response_serialize_status.error_message()) +
"}";
return error_result;
}
std::string success_result = "{\"Status\": \"OK\", ";
success_result += "\"StatusCode\": \"\", ";
success_result += "\"StatusMessage\": \"\", ";
success_result += "\"Result\": " + serialized_result_object + "}";
return success_result;
} else {
std::string error_result = "{\"Status\": \"Error:transport:grpc\", ";
error_result +=
"\"StatusCode\": \"" + std::to_string(status.error_code()) + "\", ";
error_result += "\"StatusMessage\":" + to_base64(status.error_message()) + "}";
return error_result;
}
}
std::string PredictionClient::to_base64(std::string text) {
base64::Base64Proto base64pb;
std::string serialized_base64_message;
google::protobuf::util::JsonPrintOptions jprint_options;
base64pb.add_base64(text.c_str(), text.size());
( run in 0.663 second using v1.01-cache-2.11-cpan-65fba6d93b7 )