diff options
author | JackLivio <jack@livio.io> | 2019-03-16 18:01:56 -0400 |
---|---|---|
committer | JackLivio <jack@livio.io> | 2019-03-16 18:01:56 -0400 |
commit | 1a0e1fd9daa392a2b68bf71e43ba89563c2f225b (patch) | |
tree | 67cb47d010c65429ba72c155ebb188a06b8d4f1e /src/components/application_manager/rpc_plugins/app_service_rpc_plugin | |
parent | cf1fec553fdf9f86ad553e9d61e84d9b8dec6bbc (diff) | |
parent | e169090156eb89a060088df093b254599d4b4c68 (diff) | |
download | sdl_core-1a0e1fd9daa392a2b68bf71e43ba89563c2f225b.tar.gz |
Merge remote-tracking branch 'origin/feature/app_service_manager_tests' into tests/app_service_command_tests
Diffstat (limited to 'src/components/application_manager/rpc_plugins/app_service_rpc_plugin')
14 files changed, 31 insertions, 37 deletions
diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_request.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_request.h index 8295e855fa..7c80ec5e03 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_request.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_request.h @@ -77,7 +77,8 @@ class GetAppServiceDataRequest : public app_mngr::commands::CommandRequestImpl { virtual void on_event(const app_mngr::event_engine::MobileEvent& event); private: - AppServiceRpcPlugin* plugin_; + void HandleSubscribe(); + DISALLOW_COPY_AND_ASSIGN(GetAppServiceDataRequest); }; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_response_from_mobile.h b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_response_from_mobile.h index 1411b23e5a..7e2b26d8fb 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_response_from_mobile.h +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/include/app_service_rpc_plugin/commands/mobile/get_app_service_data_response_from_mobile.h @@ -70,7 +70,6 @@ class GetAppServiceDataResponseFromMobile virtual void Run(); private: - AppServiceRpcPlugin* plugin_; DISALLOW_COPY_AND_ASSIGN(GetAppServiceDataResponseFromMobile); }; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_to_hmi.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_to_hmi.cc index 822cd0a29b..635cd7319a 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_to_hmi.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_request_to_hmi.cc @@ -33,7 +33,6 @@ #include "app_service_rpc_plugin/commands/hmi/as_get_app_service_data_request_to_hmi.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_from_hmi.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_from_hmi.cc index 9ce6ffdb50..c0b1b274fb 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_from_hmi.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_from_hmi.cc @@ -33,7 +33,7 @@ #include "app_service_rpc_plugin/commands/hmi/as_get_app_service_data_response_from_hmi.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" +#include "interfaces/HMI_API.h" #include "application_manager/message_helper.h" diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_to_hmi.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_to_hmi.cc index 9e2289d39e..b489ec4765 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_to_hmi.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_get_app_service_data_response_to_hmi.cc @@ -33,7 +33,6 @@ #include "app_service_rpc_plugin/commands/hmi/as_get_app_service_data_response_to_hmi.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc index c9466ff52d..637240666d 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc @@ -61,8 +61,8 @@ void ASPublishAppServiceRequest::Run() { smart_objects::SmartObject manifest = (*message_)[strings::msg_params][strings::app_service_manifest]; smart_objects::SmartObject service_record = - application_manager_.GetAppServiceManager().PublishAppService( - manifest, false, UINT32_MAX); + application_manager_.GetAppServiceManager().PublishAppService(manifest, + false); response_params[strings::app_service_record] = service_record; SendResponse(true, diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc index 0d387785ee..7b29160692 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request.cc @@ -52,28 +52,27 @@ GetAppServiceDataRequest::GetAppServiceDataRequest( application_manager, rpc_service, hmi_capabilities, - policy_handler) - , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( - mobile_apis::FunctionID::GetAppServiceDataID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); - if (plugin) { - plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); - } -} + policy_handler) {} GetAppServiceDataRequest::~GetAppServiceDataRequest() {} void GetAppServiceDataRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); + SendProviderRequest(mobile_apis::FunctionID::GetAppServiceDataID, + hmi_apis::FunctionID::AppService_GetAppServiceData, + &(*message_), + true); +} + +void GetAppServiceDataRequest::HandleSubscribe() { std::string service_type = (*message_)[strings::msg_params][strings::service_type].asString(); - - ApplicationSharedPtr app = application_manager_.application(connection_key()); if ((*message_)[strings::msg_params].keyExists(strings::subscribe)) { bool subscribe = (*message_)[strings::msg_params][strings::subscribe].asBool(); + ApplicationSharedPtr app = + application_manager_.application(connection_key()); auto& ext = AppServiceAppExtension::ExtractASExtension(*app); if (subscribe) { ext.SubscribeToAppService(service_type); @@ -81,11 +80,6 @@ void GetAppServiceDataRequest::Run() { ext.UnsubscribeFromAppService(service_type); } } - - SendProviderRequest(mobile_apis::FunctionID::GetAppServiceDataID, - hmi_apis::FunctionID::AppService_GetAppServiceData, - &(*message_), - true); } void GetAppServiceDataRequest::on_event( @@ -97,6 +91,9 @@ void GetAppServiceDataRequest::on_event( mobile_apis::Result::eType result = static_cast<mobile_apis::Result::eType>( msg_params[strings::result_code].asInt()); bool success = IsMobileResultSuccess(result); + if (success) { + HandleSubscribe(); + } const char* info = msg_params.keyExists(strings::info) ? msg_params[strings::info].asCharArray() @@ -118,6 +115,9 @@ void GetAppServiceDataRequest::on_event(const event_engine::Event& event) { MessageHelper::HMIToMobileResult(hmi_result); bool success = PrepareResultForMobileResponse( hmi_result, HmiInterfaces::HMI_INTERFACE_AppService); + if (success) { + HandleSubscribe(); + } const char* info = msg_params.keyExists(strings::info) ? msg_params[strings::info].asCharArray() diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request_to_mobile.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request_to_mobile.cc index 2bf81b3a2d..0af1a5436b 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request_to_mobile.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_request_to_mobile.cc @@ -33,7 +33,6 @@ #include "app_service_rpc_plugin/commands/mobile/get_app_service_data_request_to_mobile.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response.cc index df7bbba2f7..32ad8e014d 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response.cc @@ -33,7 +33,6 @@ #include "app_service_rpc_plugin/commands/mobile/get_app_service_data_response.h" #include "application_manager/application_impl.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response_from_mobile.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response_from_mobile.cc index f8c1f3892d..90fca04eb2 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response_from_mobile.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/get_app_service_data_response_from_mobile.cc @@ -50,15 +50,7 @@ GetAppServiceDataResponseFromMobile::GetAppServiceDataResponseFromMobile( application_manager, rpc_service, hmi_capabilities, - policy_handler) - , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( - mobile_apis::FunctionID::PublishAppServiceID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); - if (plugin) { - plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); - } -} + policy_handler) {} GetAppServiceDataResponseFromMobile::~GetAppServiceDataResponseFromMobile() {} diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request.cc index 989b57ca12..4046ac7379 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request.cc @@ -75,6 +75,15 @@ void PerformAppServiceInteractionRequest::Run() { return; } + if (!service->record[strings::service_manifest][strings::allow_app_consumers] + .asBool()) { + SendResponse( + false, + mobile_apis::Result::REJECTED, + "The requested service ID does not allow mobile app consumers"); + return; + } + bool request_service_active = false; if (msg_params.keyExists(strings::request_service_active)) { request_service_active = diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request_to_mobile.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request_to_mobile.cc index 8d71174c8d..2a7b644cb3 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request_to_mobile.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_request_to_mobile.cc @@ -32,7 +32,6 @@ #include "app_service_rpc_plugin/commands/mobile/perform_app_service_interaction_request_to_mobile.h" #include "application_manager/application_impl.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_response.cc index 774ec93720..5e84f42c34 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/perform_app_service_interaction_response.cc @@ -32,7 +32,6 @@ #include "app_service_rpc_plugin/commands/mobile/perform_app_service_interaction_response.h" #include "application_manager/application_impl.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc index b1136c79d0..d1bfc6e154 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc @@ -34,7 +34,6 @@ #include "application_manager/application_impl.h" #include "application_manager/message_helper.h" #include "application_manager/rpc_service.h" -#include "interfaces/MOBILE_API.h" namespace app_service_rpc_plugin { using namespace application_manager; |