diff options
Diffstat (limited to 'src/components/include/application_manager/application_manager.h')
-rw-r--r-- | src/components/include/application_manager/application_manager.h | 102 |
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 |