diff options
author | Herasym Oleh <oolleehh@gmail.com> | 2016-03-24 15:27:24 +0200 |
---|---|---|
committer | Herasym Oleh <oolleehh@gmail.com> | 2016-04-13 09:05:33 +0300 |
commit | 47e02bf586513eccb2ba00656a17b237efb1442c (patch) | |
tree | cf4f5299ae809896e803f1f03f87d8f857b5e73a /src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc | |
parent | 021ed56b19de2f284908d09b74bf2ca39ff76a9e (diff) | |
download | sdl_core-47e02bf586513eccb2ba00656a17b237efb1442c.tar.gz |
Add implementation SubscribeWayPoints&UnsubsribeWayPoints
Add mobile request/response SubscribeWayPoints
Add mobile request/response UnSubscribeWayPoints
Add HMI request/response SubscribeWayPoints
Add HMI request/response UnsubscribeWayPoints
Add SendUnsubscribeWayPoints method in MessageHelper
Add save subscribe app status to resumption DB & json
Add Sending UnsubscribeWayPoints in case unexpected disconnect
Related:
APPLINK-21629
Conflicts:
src/components/application_manager/src/application_manager_impl.cc
Diffstat (limited to 'src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc')
-rw-r--r-- | src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc new file mode 100644 index 0000000000..9e8c1ea505 --- /dev/null +++ b/src/components/application_manager/src/commands/mobile/unsubscribe_way_points_request.cc @@ -0,0 +1,67 @@ +#include "application_manager/application_manager_impl.h" +#include "application_manager/commands/mobile/unsubscribe_way_points_request.h" + +namespace application_manager { + +namespace commands { + +UnSubscribeWayPointsRequest::UnSubscribeWayPointsRequest( + const MessageSharedPtr &message) + : CommandRequestImpl(message) {} + +UnSubscribeWayPointsRequest::~UnSubscribeWayPointsRequest() {} + +void UnSubscribeWayPointsRequest::Run() { + LOG4CXX_AUTO_TRACE(logger_); + + ApplicationSharedPtr app = + application_manager::ApplicationManagerImpl::instance()->application( + connection_key()); + + if (!app) { + LOG4CXX_ERROR(logger_, "An application with connection key " + << connection_key() << " is not registered."); + SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED); + return; + } + + if (!application_manager::ApplicationManagerImpl::instance() + ->IsAppSubscribedForWayPoints(app->app_id())) { + SendResponse(false, mobile_apis::Result::IGNORED); + return; + } + + SendHMIRequest(hmi_apis::FunctionID::Navigation_UnsubscribeWayPoints, NULL, + true); +} + +void UnSubscribeWayPointsRequest::on_event(const event_engine::Event &event) { + LOG4CXX_AUTO_TRACE(logger_); + ApplicationSharedPtr app = + application_manager::ApplicationManagerImpl::instance()->application( + connection_key()); + const smart_objects::SmartObject &message = event.smart_object(); + switch (event.id()) { + case hmi_apis::FunctionID::Navigation_UnsubscribeWayPoints: { + LOG4CXX_INFO(logger_, "Received Navigation_UnSubscribeWayPoints event"); + mobile_apis::Result::eType result_code = + GetMobileResultCode(static_cast<hmi_apis::Common_Result::eType>( + message[strings::params][hmi_response::code].asUInt())); + bool result = mobile_apis::Result::SUCCESS == result_code; + if (result) { + application_manager::ApplicationManagerImpl::instance() + ->UnSubscribeAppForWayPoints(app->app_id()); + } + SendResponse(result, result_code, NULL, &(message[strings::msg_params])); + break; + } + default: { + LOG4CXX_ERROR(logger_, "Received unknown event" << event.id()); + break; + } + } +} + +} // namespace commands + +} // namespace application_manager |