diff options
author | Andrey Oleynik (GitHub) <dev-gh@users.noreply.github.com> | 2017-01-04 12:04:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-04 12:04:37 +0200 |
commit | 2ce415eba2a5145cd884541bebb3cb75695ee268 (patch) | |
tree | 5f6b94aadd8439170a8b93981bf4ee13b15d3db0 /src/components/application_manager/include/application_manager | |
parent | 8dc5c158866b33608e1fe067dd9de9272c17156e (diff) | |
download | sdl_core-2ce415eba2a5145cd884541bebb3cb75695ee268.tar.gz |
Fixes choosing of application to request backend for policy update (#1146)
* Fixes choosing of application to request backend for policy update
SDL must choose application randomly from application having different
from NONE HMI level. In case no such apps - random from having NONE will
be choosen.
Closes-bug: APPLINK-31036, APPLINK-31037
* Adds header file, replace inserter() with back_inserter(), fixes style
Relates-to: APPLINK-31036, APPLINK-31037
* Improves implementation of application choosing for PTU
Relates-to: APPLINK-31036, 31037
* Modifies unit tests according to app choose algorithm changes
Relates-to: APPLINK-31036, 31037
Diffstat (limited to 'src/components/application_manager/include/application_manager')
-rw-r--r-- | src/components/application_manager/include/application_manager/policies/policy_handler.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler.h b/src/components/application_manager/include/application_manager/policies/policy_handler.h index d9db517694..9234d6cc40 100644 --- a/src/components/application_manager/include/application_manager/policies/policy_handler.h +++ b/src/components/application_manager/include/application_manager/policies/policy_handler.h @@ -41,6 +41,7 @@ #include <stdint.h> #include "policy/policy_manager.h" +#include "application_manager/application.h" #include "application_manager/policies/policy_handler_interface.h" #include "application_manager/policies/policy_event_observer.h" #include "application_manager/policies/delegates/statistics_delegate.h" @@ -294,8 +295,9 @@ class PolicyHandler : public PolicyHandlerInterface, void OnSystemError(int code) OVERRIDE; /** - * @brief Choose application id to be used for snapshot sending - * @return Application id or 0, if there are no applications registered + * @brief Chooses random application id to be used for snapshot sending + * considering HMI level + * @return Application id or 0, if there are no suitable applications */ uint32_t GetAppIdForSending() const OVERRIDE; @@ -476,6 +478,24 @@ class PolicyHandler : public PolicyHandlerInterface, */ void LinkAppsToDevice(); + typedef std::vector<application_manager::ApplicationSharedPtr> Applications; + + /** + * @brief Checks application registration status (SDL4.0) and device consent + * to find out whether application is suitable + * @param value Item from applications collection + * @return true if application is suitable, otherwise - false + */ + bool IsAppSuitableForPolicyUpdate(const Applications::value_type value) const; + + /** + * @brief Chooses random application from list using + * IsAppSuitableForPolicyUpdate + * @param app_list Application collection + * @return Application id if suitable is found, otherwise - zero + */ + uint32_t ChooseRandomAppForPolicyUpdate(Applications& app_list) const; + private: class StatisticManagerImpl : public usage_statistics::StatisticsManager { public: |