diff options
Diffstat (limited to 'src/components/application_manager/include/application_manager/application_data_impl.h')
-rw-r--r-- | src/components/application_manager/include/application_manager/application_data_impl.h | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/src/components/application_manager/include/application_manager/application_data_impl.h b/src/components/application_manager/include/application_manager/application_data_impl.h index 556eee434..9977ad6db 100644 --- a/src/components/application_manager/include/application_manager/application_data_impl.h +++ b/src/components/application_manager/include/application_manager/application_data_impl.h @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2013, Ford Motor Company * All rights reserved. * @@ -34,6 +34,7 @@ #define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_ #include <string> +#include "utils/lock.h" #include "smart_objects/smart_object.h" #include "application_manager/application.h" #include "interfaces/MOBILE_API.h" @@ -49,14 +50,14 @@ class InitialApplicationDataImpl : public virtual Application { const smart_objects::SmartObject* app_types() const; const smart_objects::SmartObject* vr_synonyms() const; - const smart_objects::SmartObject* mobile_app_id() const; + virtual std::string mobile_app_id() const; const smart_objects::SmartObject* tts_name() const; const smart_objects::SmartObject* ngn_media_screen_name() const; const mobile_api::Language::eType& language() const; const mobile_api::Language::eType& ui_language() const; void set_app_types(const smart_objects::SmartObject& app_types); void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms); - void set_mobile_app_id(const smart_objects::SmartObject& mobile_app_id); + void set_mobile_app_id(const std::string& mobile_app_id); void set_tts_name(const smart_objects::SmartObject& tts_name); void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name); void set_language(const mobile_api::Language::eType& language); @@ -65,7 +66,7 @@ class InitialApplicationDataImpl : public virtual Application { protected: smart_objects::SmartObject* app_types_; smart_objects::SmartObject* vr_synonyms_; - smart_objects::SmartObject* mobile_app_id_; + std::string mobile_app_id_; smart_objects::SmartObject* tts_name_; smart_objects::SmartObject* ngn_media_screen_name_; mobile_api::Language::eType language_; @@ -89,6 +90,7 @@ class DynamicApplicationDataImpl : public virtual Application { const smart_objects::SmartObject* menu_title() const; const smart_objects::SmartObject* menu_icon() const; + void load_global_properties(const smart_objects::SmartObject& properties_so); void set_help_prompt(const smart_objects::SmartObject& help_prompt); void set_timeout_prompt(const smart_objects::SmartObject& timeout_prompt); void set_vr_help_title(const smart_objects::SmartObject& vr_help_title); @@ -180,7 +182,7 @@ class DynamicApplicationDataImpl : public virtual Application { * * @return ChoiceSet map that is currently in use */ - inline const PerformChoiceSetMap& performinteraction_choice_set_map() const; + inline DataAccessor<PerformChoiceSetMap> performinteraction_choice_set_map() const; /* * @brief Retrieves choice set that is currently in use by perform @@ -196,17 +198,17 @@ class DynamicApplicationDataImpl : public virtual Application { /* * @brief Retrieve application commands */ - inline const CommandsMap& commands_map() const; + inline DataAccessor<CommandsMap> commands_map() const; /* * @brief Retrieve application sub menus */ - inline const SubMenuMap& sub_menu_map() const; + inline DataAccessor<SubMenuMap> sub_menu_map() const; /* * @brief Retrieve application choice set map */ - inline const ChoiceSetMap& choice_set_map() const; + inline DataAccessor<ChoiceSetMap> choice_set_map() const; /* * @brief Sets perform interaction state @@ -279,27 +281,41 @@ class DynamicApplicationDataImpl : public virtual Application { CommandsMap commands_; + mutable sync_primitives::Lock commands_lock_; SubMenuMap sub_menu_; + mutable sync_primitives::Lock sub_menu_lock_; ChoiceSetMap choice_set_map_; + mutable sync_primitives::Lock choice_set_map_lock_; PerformChoiceSetMap performinteraction_choice_set_map_; + mutable sync_primitives::Lock performinteraction_choice_set_lock_; uint32_t is_perform_interaction_active_; uint32_t perform_interaction_ui_corrid_; bool is_reset_global_properties_active_; int32_t perform_interaction_mode_; private: + void SetGlobalProperties(const smart_objects::SmartObject& param, + void (DynamicApplicationData::*callback)( + const NsSmartDeviceLink::NsSmartObjects::SmartObject&)); DISALLOW_COPY_AND_ASSIGN(DynamicApplicationDataImpl); }; -const CommandsMap& DynamicApplicationDataImpl::commands_map() const { - return commands_; +DataAccessor<CommandsMap> DynamicApplicationDataImpl::commands_map() const { + return DataAccessor<CommandsMap>(commands_, commands_lock_); } -const SubMenuMap& DynamicApplicationDataImpl::sub_menu_map() const { - return sub_menu_; +DataAccessor<SubMenuMap> DynamicApplicationDataImpl::sub_menu_map() const { + return DataAccessor<SubMenuMap>(sub_menu_, sub_menu_lock_); } -const ChoiceSetMap& DynamicApplicationDataImpl::choice_set_map() const { - return choice_set_map_; +DataAccessor<ChoiceSetMap> DynamicApplicationDataImpl::choice_set_map() const { + return DataAccessor<ChoiceSetMap>(choice_set_map_, choice_set_map_lock_); +} + +DataAccessor<PerformChoiceSetMap> +DynamicApplicationDataImpl::performinteraction_choice_set_map() const { + return DataAccessor<PerformChoiceSetMap>( + performinteraction_choice_set_map_, + performinteraction_choice_set_lock_); } uint32_t DynamicApplicationDataImpl::is_perform_interaction_active() const { @@ -314,11 +330,6 @@ bool DynamicApplicationDataImpl::is_reset_global_properties_active() const { return is_reset_global_properties_active_; } -const PerformChoiceSetMap& -DynamicApplicationDataImpl::performinteraction_choice_set_map() const { - return performinteraction_choice_set_map_; -} - inline int32_t DynamicApplicationDataImpl::perform_interaction_mode() const { return perform_interaction_mode_; } |