diff options
Diffstat (limited to 'src/components/include/application_manager/application_manager.h')
-rw-r--r-- | src/components/include/application_manager/application_manager.h | 103 |
1 files changed, 57 insertions, 46 deletions
diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h index e8f646c1e5..fa2e8941b8 100644 --- a/src/components/include/application_manager/application_manager.h +++ b/src/components/include/application_manager/application_manager.h @@ -34,23 +34,20 @@ #define SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ #include <ctime> +#include <set> #include <string> #include <vector> -#include <set> #include "application_manager/application.h" -#include "application_manager/hmi_capabilities.h" #include "application_manager/commands/command.h" -#include "application_manager/command_factory.h" #include "connection_handler/connection_handler.h" #include "utils/data_accessor.h" -#include "telemetry_monitor/telemetry_observable.h" -#include "application_manager/policies/policy_handler_interface.h" #include "application_manager/application_manager_settings.h" -#include "application_manager/state_controller.h" #include "application_manager/hmi_interfaces.h" -#include "policy/policy_types.h" #include "application_manager/plugin_manager/rpc_plugin_manager.h" +#include "application_manager/state_controller.h" +#include "policy/policy_types.h" +#include "telemetry_monitor/telemetry_observable.h" namespace resumption { class LastState; @@ -77,6 +74,10 @@ namespace resumption { class ResumeCtrl; } +namespace policy { +class PolicyHandlerInterface; +} + namespace application_manager { namespace event_engine { @@ -95,9 +96,12 @@ class StateControllerImpl; struct CommandParametersPermissions; using policy::RPCParams; typedef std::vector<ApplicationSharedPtr> AppSharedPtrs; -struct ApplicationsAppIdSorter { +struct ApplicationsSorter { bool operator()(const ApplicationSharedPtr lhs, const ApplicationSharedPtr rhs) const { + if (lhs->app_id() == rhs->app_id()) { + return lhs->device() < rhs->device(); + } return lhs->app_id() < rhs->app_id(); } }; @@ -111,11 +115,17 @@ struct ApplicationsPolicyAppIdSorter { } }; -typedef std::set<ApplicationSharedPtr, ApplicationsAppIdSorter> ApplicationSet; +typedef std::set<ApplicationSharedPtr, ApplicationsSorter> ApplicationSet; typedef std::set<ApplicationSharedPtr, ApplicationsPolicyAppIdSorter> AppsWaitRegistrationSet; +/** + * @brief ReregisterWaitList is list of applications expected to be + * re-registered after transport switching is complete + */ +typedef std::vector<ApplicationSharedPtr> ReregisterWaitList; + // typedef for Applications list iterator typedef ApplicationSet::iterator ApplicationSetIt; @@ -156,6 +166,7 @@ class ApplicationManager { virtual DataAccessor<ApplicationSet> applications() const = 0; virtual DataAccessor<AppsWaitRegistrationSet> pending_applications() const = 0; + virtual DataAccessor<ReregisterWaitList> reregister_applications() const = 0; virtual ApplicationSharedPtr application(uint32_t app_id) const = 0; virtual ApplicationSharedPtr active_application() const = 0; @@ -177,16 +188,19 @@ class ApplicationManager { virtual ApplicationSharedPtr pending_application_by_policy_id( const std::string& policy_app_id) const = 0; + virtual ApplicationSharedPtr reregister_application_by_policy_id( + const std::string& policy_app_id) const = 0; + virtual AppSharedPtrs applications_by_button(uint32_t button) = 0; virtual AppSharedPtrs applications_with_navi() = 0; /** - * @brief application find application by device and policy identifier - * @param device_id device id - * @param policy_app_id poilcy identifier - * @return pointer to application in case if application exist, in other case - * return empty shared pointer - */ + * @brief application find application by device and policy identifier + * @param device_id device id + * @param policy_app_id poilcy identifier + * @return pointer to application in case if application exist, in other case + * return empty shared pointer + */ virtual ApplicationSharedPtr application( const std::string& device_id, const std::string& policy_app_id) const = 0; @@ -279,15 +293,6 @@ class ApplicationManager { mobile_apis::HMILevel::eType to) = 0; /** - * @brief Sends HMI status notification to mobile - * - * @param application_impl application with changed HMI status - * - **/ - virtual void SendHMIStatusNotification( - const std::shared_ptr<Application> app) = 0; - - /** * @brief Checks if driver distraction state is valid, creates message * which is sent to the application if allowed, otherwise it is added * to a list of postponed messages. @@ -467,11 +472,11 @@ class ApplicationManager { * @param vehicle_info Enum value of type of vehicle data * @param new value (for integer values currently) of vehicle data */ - virtual void IviInfoUpdated(mobile_apis::VehicleDataType::eType vehicle_info, - int value) = 0; + virtual void IviInfoUpdated(const std::string& vehicle_info, int value) = 0; - virtual ApplicationSharedPtr RegisterApplication(const std::shared_ptr< - smart_objects::SmartObject>& request_for_registration) = 0; + virtual ApplicationSharedPtr RegisterApplication( + const std::shared_ptr<smart_objects::SmartObject>& + request_for_registration) = 0; virtual void SendUpdateAppList() = 0; @@ -606,8 +611,8 @@ class ApplicationManager { /** * @brief Checks, if given RPC is allowed at current HMI level for specific * application in policy table - * @param policy_app_id Application id - * @param hmi_level Current HMI level of application + * @param app Application + * @param window_id id of application's window * @param function_id FunctionID of RPC * @param params_permissions Permissions for RPC parameters (e.g. * SubscribeVehicleData) defined in policy table @@ -615,6 +620,7 @@ class ApplicationManager { */ virtual mobile_apis::Result::eType CheckPolicyPermissions( const ApplicationSharedPtr app, + const WindowID window_id, const std::string& function_id, const RPCParams& rpc_params, CommandParametersPermissions* params_permissions = NULL) = 0; @@ -635,19 +641,22 @@ class ApplicationManager { /** * @brief IsAppInReconnectMode check if application belongs to session * affected by transport switching at the moment + * @param device_id device indentifier * @param policy_app_id Application id * @return True if application is registered within session being switched, * otherwise - false */ - virtual bool IsAppInReconnectMode(const std::string& policy_app_id) const = 0; + virtual bool IsAppInReconnectMode( + const connection_handler::DeviceHandle& device_id, + const std::string& policy_app_id) const = 0; virtual resumption::ResumeCtrl& resume_controller() = 0; /** - * @brief hmi_interfaces getter for hmi_interfaces component, that handle - * hmi_instrfaces state - * @return reference to hmi_interfaces component - */ + * @brief hmi_interfaces getter for hmi_interfaces component, that handle + * hmi_instrfaces state + * @return reference to hmi_interfaces component + */ virtual HmiInterfaces& hmi_interfaces() = 0; virtual app_launch::AppLaunchCtrl& app_launch_ctrl() = 0; @@ -675,19 +684,19 @@ class ApplicationManager { virtual void AddAppToTTSGlobalPropertiesList(const uint32_t app_id) = 0; /** - * Generate grammar ID - * - * @return New grammar ID - */ + * Generate grammar ID + * + * @return New grammar ID + */ virtual uint32_t GenerateGrammarID() = 0; virtual policy::DeviceConsent GetUserConsentForDevice( const std::string& device_id) const = 0; /** - * @brief Handle sequence for unauthorized application - * @param app_id Application id - */ + * @brief Handle sequence for unauthorized application + * @param app_id Application id + */ virtual void OnAppUnauthorized(const uint32_t& app_id) = 0; virtual bool ActivateApplication(ApplicationSharedPtr app) = 0; @@ -705,6 +714,7 @@ class ApplicationManager { /** * @brief CreateRegularState create regular HMI state for application * @param app Application + * @param window_type type of window * @param hmi_level of returned state * @param audio_state of returned state * @param system_context of returned state @@ -712,10 +722,11 @@ class ApplicationManager { */ virtual HmiStatePtr CreateRegularState( std::shared_ptr<Application> app, - mobile_apis::HMILevel::eType hmi_level, - mobile_apis::AudioStreamingState::eType audio_state, - mobile_apis::VideoStreamingState::eType video_state, - mobile_apis::SystemContext::eType system_context) const = 0; + const mobile_apis::WindowType::eType window_type, + const mobile_apis::HMILevel::eType hmi_level, + const mobile_apis::AudioStreamingState::eType audio_state, + const mobile_apis::VideoStreamingState::eType video_state, + const mobile_apis::SystemContext::eType system_context) const = 0; /** * @brief Checks if application can stream (streaming service is started and |