summaryrefslogtreecommitdiff
path: root/src/components/application_manager/include/application_manager/application_state.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/include/application_manager/application_state.h')
-rw-r--r--src/components/application_manager/include/application_manager/application_state.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/components/application_manager/include/application_manager/application_state.h b/src/components/application_manager/include/application_manager/application_state.h
index 8c4d2d49d6..9d80df0590 100644
--- a/src/components/application_manager/include/application_manager/application_state.h
+++ b/src/components/application_manager/include/application_manager/application_state.h
@@ -45,6 +45,7 @@ namespace application_manager {
typedef std::vector<WindowID> WindowIds;
typedef std::vector<HmiStatePtr> HmiStates;
typedef std::map<WindowID, HmiStates> HmiStatesMap;
+typedef std::map<WindowID, HmiStatePtr> HmiStateMap;
typedef std::vector<std::string> WindowNames;
typedef std::map<WindowID, std::string> WindowNamesMap;
@@ -143,6 +144,15 @@ class ApplicationState {
void RemoveHMIState(const WindowID window_id, HmiState::StateID state_id);
/**
+ * @brief EraseHMIState safely erases an HMI State from a window's HMIStates
+ * list
+ *
+ * @param hmi_states HMI States list.
+ * @param it Iterator pointing to element to be removed.
+ */
+ void EraseHMIState(HmiStates& hmi_states, HmiStates::iterator it);
+
+ /**
* @brief RemoveWindowHMIStates removes all HMI states related to specified
* window
* @param window_id window ID to remove
@@ -202,6 +212,16 @@ class ApplicationState {
*/
mutable sync_primitives::Lock hmi_states_map_lock_;
+ /**
+ * @brief Postponed states of application
+ */
+ HmiStateMap postponed_states_map_;
+
+ /**
+ * @brief postponed_states_map_lock_
+ */
+ mutable sync_primitives::Lock postponed_states_map_lock_;
+
DISALLOW_COPY_AND_ASSIGN(ApplicationState);
};
} // namespace application_manager