diff options
author | JackLivio <jack@livio.io> | 2019-02-28 09:55:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-28 09:55:21 -0500 |
commit | bc6cec5d29ff36b7092112dc1ea69ccd4d92acc3 (patch) | |
tree | 91be6341261c81de837c3aa8292c5aacd2041dbc /src/components/application_manager/src/application_manager_impl.cc | |
parent | 1501c34acdbf40ab603a3ba74b0e280db29c0506 (diff) | |
download | sdl_core-bc6cec5d29ff36b7092112dc1ea69ccd4d92acc3.tar.gz |
Close Cloud Connection (#2825)
* Close Cloud Connection
* Address Comments
* Update based on merge
Diffstat (limited to 'src/components/application_manager/src/application_manager_impl.cc')
-rw-r--r-- | src/components/application_manager/src/application_manager_impl.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index b4381f4ba9..9903342ae1 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -808,6 +808,40 @@ void ApplicationManagerImpl::OnHMIStartedCooperation() { RefreshCloudAppInformation(); } +void ApplicationManagerImpl::DisconnectCloudApp(ApplicationSharedPtr app) { + std::string endpoint; + std::string certificate; + std::string auth_token; + std::string cloud_transport_type; + std::string hybrid_app_preference; + bool enabled = true; + std::string policy_app_id = app->policy_app_id(); + GetPolicyHandler().GetCloudAppParameters(policy_app_id, + enabled, + endpoint, + certificate, + auth_token, + cloud_transport_type, + hybrid_app_preference); + if (app->IsRegistered() && app->is_cloud_app()) { + LOG4CXX_DEBUG(logger_, "Disabled app is registered, unregistering now"); + GetRPCService().ManageMobileCommand( + MessageHelper::GetOnAppInterfaceUnregisteredNotificationToMobile( + app->app_id(), + mobile_api::AppInterfaceUnregisteredReason::APP_UNAUTHORIZED), + commands::Command::SOURCE_SDL); + + OnAppUnauthorized(app->app_id()); + } + // Delete the cloud device + connection_handler().RemoveCloudAppDevice(app->device()); + + // Create device in pending state + LOG4CXX_DEBUG(logger_, "Re-adding the cloud app device"); + connection_handler().AddCloudAppDevice( + policy_app_id, endpoint, cloud_transport_type); +} + void ApplicationManagerImpl::RefreshCloudAppInformation() { LOG4CXX_AUTO_TRACE(logger_); std::vector<std::string> enabled_apps; |