| 10 | } |
| 11 | |
| 12 | Status ProtoBufParser::ParseRequest( |
| 13 | const eas::PredictRequest& request, |
| 14 | const SignatureInfo* signature_info, Call& call) { |
| 15 | for (auto& input : request.inputs()) { |
| 16 | if (signature_info->input_key_idx.find(input.first) == |
| 17 | signature_info->input_key_idx.end()) { |
| 18 | LOG(FATAL) << "Request contain invalid input key : " << input.first; |
| 19 | } |
| 20 | int idx = signature_info->input_key_idx.at(input.first); |
| 21 | auto pb_to_tensor = util::Proto2Tensor(input.first, input.second); |
| 22 | if (!pb_to_tensor.status.ok()) { |
| 23 | return pb_to_tensor.status; |
| 24 | } |
| 25 | call.request.inputs.emplace_back( |
| 26 | signature_info->input_value_name[idx], |
| 27 | std::move(pb_to_tensor.tensor)); |
| 28 | } |
| 29 | |
| 30 | if (request.output_filter().size() > 0) { |
| 31 | call.request.output_tensor_names.reserve(request.output_filter().size()); |
| 32 | for (auto key : request.output_filter()) { |
| 33 | if (signature_info->output_key_idx.find(key) == |
| 34 | signature_info->output_key_idx.end()) { |
| 35 | LOG(FATAL) << "Request contain invalid output filter: " << key; |
| 36 | } |
| 37 | call.request.output_tensor_names.emplace_back( |
| 38 | signature_info->output_value_name[signature_info->output_key_idx.at(key)]); |
| 39 | } |
| 40 | } else { |
| 41 | call.request.output_tensor_names = |
| 42 | signature_info->output_value_name; |
| 43 | } |
| 44 | |
| 45 | return Status::OK(); |
| 46 | } |
| 47 | |
| 48 | Status ProtoBufParser::ParseRequestFromBuf( |
| 49 | const void* input_data, int input_size, Call& call, |
no test coverage detected