diff options
Diffstat (limited to 'src/components/application_manager/src/rpc_handler_impl.cc')
-rw-r--r-- | src/components/application_manager/src/rpc_handler_impl.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/components/application_manager/src/rpc_handler_impl.cc b/src/components/application_manager/src/rpc_handler_impl.cc index e17eaa264e..a2b1245882 100644 --- a/src/components/application_manager/src/rpc_handler_impl.cc +++ b/src/components/application_manager/src/rpc_handler_impl.cc @@ -43,12 +43,14 @@ namespace formatters = ns_smart_device_link::ns_json_handler::formatters; namespace jhs = ns_smart_device_link::ns_json_handler::strings; namespace plugin_names = application_manager::plugin_manager::plugin_names; -RPCHandlerImpl::RPCHandlerImpl(ApplicationManager& app_manager) +RPCHandlerImpl::RPCHandlerImpl(ApplicationManager& app_manager, + hmi_apis::HMI_API& hmi_so_factory, + mobile_apis::MOBILE_API& mobile_so_factory) : app_manager_(app_manager) , messages_from_mobile_("AM FromMobile", this) , messages_from_hmi_("AM FromHMI", this) - , hmi_so_factory_(hmi_apis::HMI_API()) - , mobile_so_factory_(mobile_apis::MOBILE_API()) + , hmi_so_factory_(hmi_so_factory) + , mobile_so_factory_(mobile_so_factory) #ifdef TELEMETRY_MONITOR , metric_observer_(NULL) #endif // TELEMETRY_MONITOR @@ -165,13 +167,13 @@ void RPCHandlerImpl::ProcessMessageFromHMI( hmi_apis::messageType::eType>( message->json_message(), converted_result); + const auto function_id = static_cast<int32_t>( + converted_result[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt()); if (app_manager_.GetRPCService().IsAppServiceRPC( - converted_result[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt(), - commands::Command::SOURCE_HMI)) { + function_id, commands::Command::SOURCE_HMI)) { LOG4CXX_DEBUG( logger_, - "Allowing unknown parameters for request function " - << converted_result[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt()); + "Allowing unknown parameters for request function " << function_id); allow_unknown_parameters = true; } @@ -403,7 +405,7 @@ bool RPCHandlerImpl::ConvertMessageToSO( "Convertion result: " << result << " function id " << output[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt()); - if (!hmi_so_factory().attachSchema(output, false)) { + if (!hmi_so_factory().attachSchema(output, !allow_unknown_parameters)) { LOG4CXX_WARN(logger_, "Failed to attach schema to object."); return false; } @@ -412,8 +414,9 @@ bool RPCHandlerImpl::ConvertMessageToSO( utils::SemanticVersion empty_version; if (validate_params && - output.validate(&report, empty_version, allow_unknown_parameters) != - smart_objects::errors::OK) { + smart_objects::errors::OK != + output.validate( + &report, empty_version, allow_unknown_parameters)) { LOG4CXX_ERROR( logger_, "Incorrect parameter from HMI - " << rpc::PrettyFormat(report)); |