summaryrefslogtreecommitdiff
path: root/src/components/application_manager/include/application_manager/application_data_impl.h
diff options
context:
space:
mode:
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.h49
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_;
}