diff options
author | jacobkeeler <jacob.keeler@livioradio.com> | 2018-11-27 15:07:26 -0500 |
---|---|---|
committer | jacobkeeler <jacob.keeler@livioradio.com> | 2018-11-27 15:07:26 -0500 |
commit | d157a8bef4619b845febc953f18fd3b0af2d3b7f (patch) | |
tree | 42d670b1e56014add8ed2f7aec3e09dc92123602 | |
parent | b8b62f61f838eac48a181bcf715cf8a8141b2f55 (diff) | |
download | sdl_core-d157a8bef4619b845febc953f18fd3b0af2d3b7f.tar.gz |
Update ActivateApp timeout for cloud apps
3 files changed, 14 insertions, 0 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc index 1704251c17..12f595e64e 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc @@ -128,6 +128,11 @@ void SDLActivateAppRequest::Run() { "HMIDeactivate is active"); } else if (app && !app->IsRegistered() && app->is_cloud_app()) { LOG4CXX_DEBUG(logger_, "Starting cloud application."); + const ApplicationManagerSettings& settings = application_manager_.get_settings(); + uint32_t total_retry_timeout = (settings.cloud_app_retry_timeout() * + settings.cloud_app_max_retry_attempts()); + application_manager_.updateRequestTimeout( + 0, correlation_id(), default_timeout_ + total_retry_timeout); subscribe_on_event(BasicCommunication_OnAppRegistered); application_manager_.connection_handler().ConnectToDevice(app->device()); } else { @@ -189,6 +194,11 @@ void SDLActivateAppRequest::Run() { return; } else if (app_to_activate->is_cloud_app()) { LOG4CXX_DEBUG(logger_, "Starting cloud application."); + const ApplicationManagerSettings& settings = application_manager_.get_settings(); + uint32_t total_retry_timeout = (settings.cloud_app_retry_timeout() * + settings.cloud_app_max_retry_attempts()); + application_manager_.updateRequestTimeout( + 0, correlation_id(), default_timeout_ + total_retry_timeout); subscribe_on_event(BasicCommunication_OnAppRegistered); application_manager_.connection_handler().ConnectToDevice( app_to_activate->device()); diff --git a/src/components/include/application_manager/application_manager_settings.h b/src/components/include/application_manager/application_manager_settings.h index 8fdca4125f..fc16f1f1ed 100644 --- a/src/components/include/application_manager/application_manager_settings.h +++ b/src/components/include/application_manager/application_manager_settings.h @@ -85,6 +85,8 @@ class ApplicationManagerSettings : public RequestControlerSettings, virtual const std::string& audio_stream_file() const = 0; virtual bool use_full_app_id() const = 0; + virtual uint32_t cloud_app_retry_timeout() const = 0; + virtual uint16_t cloud_app_max_retry_attempts() const = 0; virtual bool use_db_for_resumption() const = 0; virtual const uint32_t& app_resumption_save_persistent_data_timeout() const = 0; diff --git a/src/components/include/test/application_manager/mock_application_manager_settings.h b/src/components/include/test/application_manager/mock_application_manager_settings.h index cfabf41b91..0f9ca194b1 100644 --- a/src/components/include/test/application_manager/mock_application_manager_settings.h +++ b/src/components/include/test/application_manager/mock_application_manager_settings.h @@ -90,6 +90,8 @@ class MockApplicationManagerSettings MOCK_CONST_METHOD0(video_stream_file, const std::string&()); MOCK_CONST_METHOD0(audio_stream_file, const std::string&()); MOCK_CONST_METHOD0(use_full_app_id, bool()); + MOCK_CONST_METHOD0(cloud_app_retry_timeout, uint32_t()); + MOCK_CONST_METHOD0(cloud_app_max_retry_attempts, uint16_t()); MOCK_CONST_METHOD0(use_db_for_resumption, bool()); MOCK_CONST_METHOD0(app_resumption_save_persistent_data_timeout, const uint32_t&()); |