summaryrefslogtreecommitdiff
path: root/src/components/include/application_manager/application_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/include/application_manager/application_manager.h')
-rw-r--r--src/components/include/application_manager/application_manager.h102
1 files changed, 84 insertions, 18 deletions
diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h
index 54f7ab9f05..5fd9be2a66 100644
--- a/src/components/include/application_manager/application_manager.h
+++ b/src/components/include/application_manager/application_manager.h
@@ -48,6 +48,8 @@
#include "application_manager/application_manager_settings.h"
#include "application_manager/hmi_interfaces.h"
#include "application_manager/plugin_manager/rpc_plugin_manager.h"
+#include "application_manager/request_controller.h"
+#include "application_manager/request_timeout_handler.h"
#include "application_manager/state_controller.h"
#include "policy/policy_types.h"
@@ -87,7 +89,10 @@ class RPCService;
namespace rpc_handler {
class RPCHandler;
}
-
+namespace request_controller {
+class RequestTimeoutHandler;
+class RequestController;
+} // namespace request_controller
class Application;
class AppServiceManager;
class StateControllerImpl;
@@ -114,6 +119,11 @@ struct ApplicationsPolicyAppIdSorter {
}
};
+struct ExpiredButtonRequestData {
+ uint32_t app_id_;
+ hmi_apis::Common_ButtonName::eType button_name_;
+};
+
typedef std::set<ApplicationSharedPtr, ApplicationsSorter> ApplicationSet;
typedef std::set<ApplicationSharedPtr, ApplicationsPolicyAppIdSorter>
@@ -135,10 +145,6 @@ class ApplicationManager {
public:
virtual ~ApplicationManager() {}
- DEPRECATED
- virtual bool Init(resumption::LastState&,
- media_manager::MediaManager* media_manager) = 0;
-
/**
* Inits application manager
*/
@@ -210,9 +216,6 @@ class ApplicationManager {
virtual ApplicationSharedPtr application_by_policy_id(
const std::string& policy_app_id) const = 0;
- DEPRECATED virtual ApplicationSharedPtr application_by_name(
- const std::string& app_name) const = 0;
-
virtual ApplicationSharedPtr pending_application_by_policy_id(
const std::string& policy_app_id) const = 0;
@@ -502,6 +505,10 @@ class ApplicationManager {
virtual rpc_service::RPCService& GetRPCService() const = 0;
virtual rpc_handler::RPCHandler& GetRPCHandler() const = 0;
+ virtual request_controller::RequestTimeoutHandler&
+ get_request_timeout_handler() const = 0;
+ virtual request_controller::RequestController& get_request_controller()
+ const = 0;
virtual bool is_stopping() const = 0;
virtual bool is_audio_pass_thru_active() const = 0;
@@ -510,12 +517,20 @@ class ApplicationManager {
virtual uint32_t GenerateNewHMIAppID() = 0;
/**
- * @brief Ends opened navi services (audio/video) for application
+ * @brief Ends opened navi services audio and video for application
* @param app_id Application id
*/
virtual void EndNaviServices(uint32_t app_id) = 0;
/**
+ * @brief Ends opened navi service audio or video for application
+ * @param app_id Application id
+ * @param service_type Service type to check
+ */
+ virtual void EndService(const uint32_t app_id,
+ const protocol_handler::ServiceType service_type) = 0;
+
+ /**
* @brief returns true if low voltage state is active
*/
virtual bool IsLowVoltage() const = 0;
@@ -702,6 +717,36 @@ class ApplicationManager {
const uint32_t corr_id,
const int32_t function_id) = 0;
+ /**
+ * @brief RetainRequestInstance retains request instance by its
+ * connection+correlation key
+ * @param connection_key connection key of application
+ * @param correlation_id correlation id of request
+ * @return true if request was rerained. false if the request with such
+ * connection+correlation key was not found
+ */
+ virtual bool RetainRequestInstance(const uint32_t connection_key,
+ const uint32_t correlation_id) = 0;
+
+ /**
+ * @brief RemoveRetainedRequest removes request instance retained before
+ * @param connection_key connection key of application
+ * @param correlation_id correlation id of request
+ */
+ virtual bool RemoveRetainedRequest(const uint32_t connection_key,
+ const uint32_t correlation_id) = 0;
+
+ /**
+ * @brief IsStillWaitingForResponse check if request is still waiting for
+ * response
+ * @param connection_key connection key of application
+ * @param correlation_id correlation id of request
+ * @return true if request is still waiting for response, otherwise returns
+ * false
+ */
+ virtual bool IsStillWaitingForResponse(
+ const uint32_t connection_key, const uint32_t correlation_id) const = 0;
+
/*
* @brief Closes application by id
*
@@ -724,7 +769,7 @@ class ApplicationManager {
* @param mobile_correlation_id Correlation ID of the mobile request
* @param new_timeout_value New timeout in milliseconds to be set
*/
- virtual void updateRequestTimeout(uint32_t connection_key,
+ virtual void UpdateRequestTimeout(uint32_t connection_key,
uint32_t mobile_correlation_id,
uint32_t new_timeout_value) = 0;
@@ -867,11 +912,6 @@ class ApplicationManager {
protocol_handler::ServiceType service_type,
bool state) = 0;
- DEPRECATED
- virtual void OnAppStreaming(uint32_t app_id,
- protocol_handler::ServiceType service_type,
- const Application::StreamingState new_state) = 0;
-
/**
* @brief CreateRegularState create regular HMI state for application
* @param app Application
@@ -899,9 +939,6 @@ class ApplicationManager {
virtual bool CanAppStream(
uint32_t app_id, protocol_handler::ServiceType service_type) const = 0;
- DEPRECATED
- virtual void ForbidStreaming(uint32_t app_id) = 0;
-
/**
* @brief ForbidStreaming forbid the stream over the certain application.
* @param app_id the application's id which should stop streaming.
@@ -953,6 +990,35 @@ class ApplicationManager {
*/
virtual bool UnsubscribeAppFromSoftButtons(
const commands::MessageSharedPtr response_message) = 0;
+
+ /**
+ * @brief Save subscribe/unsubscribe button request after timeout to ensure
+ * possibility to align mobile subscription/unsubscription status with actual
+ * subscription/unsubscription status on HMI
+ * @param app_id Application id from request message
+ * @param corr_id Correlation id
+ * @param button_name name of button to subscribe/unsubscribe
+ */
+ virtual void AddExpiredButtonRequest(
+ const uint32_t app_id,
+ const int32_t corr_id,
+ const hmi_apis::Common_ButtonName::eType button_name) = 0;
+
+ /**
+ * @brief Return optional structure with information regarding
+ * subscribe/unsubscribe button request data
+ * @param corr_id Correlation id
+ * @return optional structure with subscribe/unsubscribe button request data
+ */
+ virtual utils::Optional<ExpiredButtonRequestData> GetExpiredButtonRequestData(
+ const int32_t corr_id) const = 0;
+
+ /**
+ * @brief Delete data about already processed expired subscribe/unsubscribe
+ * button request in case if HMI send response to expired request
+ * @param corr_id Correlation id
+ */
+ virtual void DeleteExpiredButtonRequest(const int32_t corr_id) = 0;
};
} // namespace application_manager