summaryrefslogtreecommitdiff
path: root/src/components/application_manager/include/application_manager/commands/command_request_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/include/application_manager/commands/command_request_impl.h')
-rw-r--r--src/components/application_manager/include/application_manager/commands/command_request_impl.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/components/application_manager/include/application_manager/commands/command_request_impl.h b/src/components/application_manager/include/application_manager/commands/command_request_impl.h
index 614f86a6f1..3603eacb04 100644
--- a/src/components/application_manager/include/application_manager/commands/command_request_impl.h
+++ b/src/components/application_manager/include/application_manager/commands/command_request_impl.h
@@ -297,6 +297,35 @@ class CommandRequestImpl : public CommandImpl,
*/
const CommandParametersPermissions& parameters_permissions() const;
+ /**
+ * @brief Adds interface to be awaited for by sdl request command
+ @param interface_id interface which SDL expects to response in given time
+ */
+ void StartAwaitForInterface(const HmiInterfaces::InterfaceID interface_id);
+
+ /**
+ * @brief Gets interface await state.
+ * @param interface_id interface which SDL awaits for response in given time
+ * @return true if SDL awaits for response from given interface in
+ * interface_id
+ */
+ bool IsInterfaceAwaited(const HmiInterfaces::InterfaceID& interface_id) const;
+
+ /**
+ * @brief Sets given HMI interface await status to false
+ * @param interface_id interface which SDL no longer awaits for response in
+ * given time
+ */
+ void EndAwaitForInterface(const HmiInterfaces::InterfaceID& interface_id);
+
+ /**
+ * @brief This set stores all the interfaces which are awaited by SDL to
+ * return a response on some request
+ */
+ std::set<HmiInterfaces::InterfaceID> awaiting_response_interfaces_;
+
+ mutable sync_primitives::Lock awaiting_response_interfaces_lock_;
+
RequestState current_state_;
sync_primitives::Lock state_lock_;
CommandParametersPermissions parameters_permissions_;