summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaroslav Mamykin (GitHub) <ymamykin@luxoft.com>2019-10-16 15:18:01 +0300
committerYarik <ymamykin@gmail.com>2019-11-15 15:19:05 +0200
commitc1b8f638781b4bb9c5306452cec2d195b05a86d3 (patch)
treeeb0efe7971a40da0a55f2f11880341845ce8c7d4
parentf080cc1afc22ea9218f91bc6c00898822e30cd20 (diff)
downloadsdl_core-c1b8f638781b4bb9c5306452cec2d195b05a86d3.tar.gz
fixup! Fix versioning appliance for vehicle data
-rw-r--r--src/components/application_manager/include/application_manager/rpc_service_impl.h11
-rw-r--r--src/components/application_manager/src/rpc_service_impl.cc56
2 files changed, 43 insertions, 24 deletions
diff --git a/src/components/application_manager/include/application_manager/rpc_service_impl.h b/src/components/application_manager/include/application_manager/rpc_service_impl.h
index 3e3d83a519..6f3c1da6ba 100644
--- a/src/components/application_manager/include/application_manager/rpc_service_impl.h
+++ b/src/components/application_manager/include/application_manager/rpc_service_impl.h
@@ -157,6 +157,17 @@ class RPCServiceImpl : public RPCService,
Message& output,
const bool allow_unknown_parameters = false);
+ /*
+ * @brief Handles invalid VehicleData RPC responses from HMI
+ * @param mobile_apis::FunctionID - id of function
+ * @param MessageSharedPtr - message with payload
+ * @return true, if validation of invalid response was done;
+ * false, if nothing was done.
+ */
+ bool HandleInvalidVehicleDataRPC(
+ const mobile_apis::FunctionID::eType& api_function_id,
+ const application_manager::commands::MessageSharedPtr message);
+
EncryptionFlagCheckResult IsEncryptionRequired(
const smart_objects::SmartObject& message,
ApplicationSharedPtr app,
diff --git a/src/components/application_manager/src/rpc_service_impl.cc b/src/components/application_manager/src/rpc_service_impl.cc
index 6baa9df91e..1bdc8b6a82 100644
--- a/src/components/application_manager/src/rpc_service_impl.cc
+++ b/src/components/application_manager/src/rpc_service_impl.cc
@@ -463,6 +463,36 @@ void RPCServiceImpl::Handle(const impl::MessageToMobile message) {
}
}
+bool RPCServiceImpl::HandleInvalidVehicleDataRPC(
+ const mobile_apis::FunctionID::eType& api_function_id,
+ const application_manager::commands::MessageSharedPtr message) {
+ switch (api_function_id) {
+ case mobile_apis::FunctionID::GetVehicleDataID: {
+ if (mobile_apis::Result::SUCCESS ==
+ (*message)[strings::msg_params][strings::result_code].asUInt()) {
+ smart_objects::SmartObjectSPtr response =
+ MessageHelper::CreateNegativeResponse(
+ (*message)[strings::params][strings::connection_key].asUInt(),
+ api_function_id,
+ (*message)[strings::params][strings::correlation_id].asUInt(),
+ static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR));
+
+ SendMessageToMobile(response);
+ return true;
+ }
+ } break;
+
+ case mobile_apis::FunctionID::OnVehicleDataID: {
+ return true;
+ } break;
+
+ default:
+ break;
+ }
+
+ return false;
+}
+
void RPCServiceImpl::SendMessageToMobile(
const application_manager::commands::MessageSharedPtr message,
bool final_message) {
@@ -548,30 +578,8 @@ void RPCServiceImpl::SendMessageToMobile(
<< "\nError report: " << rpc::PrettyFormat(report));
if (validation_result != smart_objects::errors::eType::OK) {
- switch (api_function_id) {
- case mobile_apis::FunctionID::GetVehicleDataID: {
- if (mobile_apis::Result::SUCCESS ==
- (*message)[strings::msg_params][strings::result_code].asUInt()) {
- smart_objects::SmartObjectSPtr response =
- MessageHelper::CreateNegativeResponse(
- (*message)[strings::params][strings::connection_key]
- .asUInt(),
- api_function_id,
- (*message)[strings::params][strings::correlation_id]
- .asUInt(),
- static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR));
-
- SendMessageToMobile(response);
- return;
- }
- } break;
-
- case mobile_apis::FunctionID::OnVehicleDataID: {
- return;
- } break;
-
- default:
- break;
+ if (HandleInvalidVehicleDataRPC(api_function_id, message)) {
+ return;
}
}
} else {