diff options
Diffstat (limited to 'src/components/application_manager/src/app_service_manager.cc')
-rw-r--r-- | src/components/application_manager/src/app_service_manager.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/components/application_manager/src/app_service_manager.cc b/src/components/application_manager/src/app_service_manager.cc index afcc7ae1dd..3e7b4b99fe 100644 --- a/src/components/application_manager/src/app_service_manager.cc +++ b/src/components/application_manager/src/app_service_manager.cc @@ -53,7 +53,7 @@ const char* kAppServiceSection = "AppServices"; const char* kDefaults = "defaults"; AppServiceManager::AppServiceManager(ApplicationManager& app_manager, - resumption::LastState& last_state) + resumption::LastStateWrapperPtr last_state) : app_manager_(app_manager) , last_state_(last_state) , rpc_passing_handler_(*this, app_manager_) {} @@ -139,13 +139,14 @@ smart_objects::SmartObject AppServiceManager::PublishAppService( std::string default_app_id = DefaultServiceByType(service_type); if (default_app_id.empty() && !mobile_service) { auto embedded_services = app_manager_.get_settings().embedded_services(); - for (auto it = embedded_services.begin(); it != embedded_services.end(); - ++it) { - if (*it == service_type) { - Json::Value& dictionary = last_state_.get_dictionary(); + for (const auto& embedded_service : embedded_services) { + if (embedded_service == service_type) { + auto last_state_accessor = last_state_->get_accessor(); + Json::Value dictionary = last_state_accessor.GetData().dictionary(); dictionary[kAppServiceSection][kDefaults][service_type] = kEmbeddedService; default_app_id = kEmbeddedService; + last_state_accessor.GetMutableData().set_dictionary(dictionary); } } } @@ -340,9 +341,11 @@ bool AppServiceManager::SetDefaultService(const std::string service_id) { } service.default_service = true; - Json::Value& dictionary = last_state_.get_dictionary(); + auto last_state_accessor = last_state_->get_accessor(); + Json::Value dictionary = last_state_accessor.GetData().dictionary(); dictionary[kAppServiceSection][kDefaults][service_type] = GetPolicyAppID(service); + last_state_accessor.GetMutableData().set_dictionary(dictionary); return true; } @@ -365,8 +368,11 @@ bool AppServiceManager::RemoveDefaultService(const std::string service_id) { std::string service_type = service.record[strings::service_manifest][strings::service_type] .asString(); - Json::Value& dictionary = last_state_.get_dictionary(); + + auto last_state_accessor = last_state_->get_accessor(); + Json::Value dictionary = last_state_accessor.GetData().dictionary(); dictionary[kAppServiceSection][kDefaults].removeMember(service_type); + last_state_accessor.GetMutableData().set_dictionary(dictionary); return true; } @@ -547,7 +553,9 @@ AppService* AppServiceManager::FindServiceByName(std::string name) { std::string AppServiceManager::DefaultServiceByType( const std::string service_type) { LOG4CXX_AUTO_TRACE(logger_); - Json::Value& dictionary = last_state_.get_dictionary(); + + auto last_state_accessor = last_state_->get_accessor(); + Json::Value dictionary = last_state_accessor.GetData().dictionary(); if (dictionary[kAppServiceSection][kDefaults].isMember(service_type)) { return dictionary[kAppServiceSection][kDefaults][service_type].asString(); } |