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 | 43 |
1 files changed, 27 insertions, 16 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 556eee4349..494cfb1bce 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" @@ -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_; } |