diff options
Diffstat (limited to 'src/components/application_manager/src/commands/hmi/request_from_hmi.cc')
-rw-r--r-- | src/components/application_manager/src/commands/hmi/request_from_hmi.cc | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/src/components/application_manager/src/commands/hmi/request_from_hmi.cc b/src/components/application_manager/src/commands/hmi/request_from_hmi.cc index 5713cf2a15..03a8bcfe8b 100644 --- a/src/components/application_manager/src/commands/hmi/request_from_hmi.cc +++ b/src/components/application_manager/src/commands/hmi/request_from_hmi.cc @@ -31,17 +31,19 @@ */ #include "application_manager/commands/hmi/request_from_hmi.h" -#include "application_manager/application_manager_impl.h" +#include "application_manager/application_manager.h" +#include "utils/make_shared.h" namespace application_manager { namespace commands { -RequestFromHMI::RequestFromHMI(const MessageSharedPtr& message) - : CommandImpl(message) { - +RequestFromHMI::RequestFromHMI(const MessageSharedPtr& message, + ApplicationManager& application_manager) + : CommandImpl(message, application_manager), + EventObserver(application_manager.event_dispatcher()) { // Replace HMI app id with Mobile connection id - ApplicationManagerImpl::instance()->ReplaceHMIByMobileAppId(*(message.get())); + ReplaceHMIByMobileAppId(*(message.get())); } RequestFromHMI::~RequestFromHMI() { @@ -61,18 +63,42 @@ void RequestFromHMI::Run() { void RequestFromHMI::on_event(const event_engine::Event& event) { } -void RequestFromHMI::SendResponse(uint32_t correlation_id, - hmi_apis::FunctionID::eType function_id, - hmi_apis::Common_Result::eType result_code) { +void RequestFromHMI::SendResponse(const bool success, + const uint32_t correlation_id, + const hmi_apis::FunctionID::eType function_id, + const hmi_apis::Common_Result::eType result_code) { smart_objects::SmartObject* message = new smart_objects::SmartObject( - smart_objects::SmartType_Map); + smart_objects::SmartType_Map); + FillCommonParametersOfSO(message, correlation_id, function_id); + (*message)[strings::params][strings::message_type] = MessageType::kResponse; + (*message)[strings::params][hmi_response::code] = 0; + (*message)[strings::msg_params][strings::success] = success; + (*message)[strings::msg_params][strings::result_code] = result_code; + + application_manager_.ManageHMICommand(message); +} + +//void RequestFromHMI::SendErrorResponse(uint32_t correlation_id, +// hmi_apis::FunctionID::eType function_id, +// hmi_apis::Common_Result::eType result_code) { +// smart_objects::SmartObject* message = new smart_objects::SmartObject( +// smart_objects::SmartType_Map); +// FillCommonParametersOfSO(message, correlation_id, function_id); +// (*message)[strings::params][strings::message_type] = MessageType::kErrorResponse; +// (*message)[strings::params][hmi_response::code] = result_code; +// (*message)[strings::params][strings::error_msg] = "HMIDeactivate is active"; + +// application_manager_.ManageHMICommand(message); +//} + +void RequestFromHMI::FillCommonParametersOfSO(smart_objects::SmartObject* message, + uint32_t correlation_id, + hmi_apis::FunctionID::eType function_id) { (*message)[strings::params][strings::function_id] = function_id; - (*message)[strings::params][strings::message_type] = MessageType::kResponse; + (*message)[strings::params][strings::protocol_type] = hmi_protocol_type_; + (*message)[strings::params][strings::protocol_version] = protocol_version_; (*message)[strings::params][strings::correlation_id] = correlation_id; - (*message)[strings::params][hmi_response::code] = result_code; - - ApplicationManagerImpl::instance()->ManageHMICommand(message); } |