summaryrefslogtreecommitdiff
path: root/src/components/application_manager/include/application_manager
diff options
context:
space:
mode:
authorAndrey Oleynik (GitHub) <dev-gh@users.noreply.github.com>2017-01-04 12:04:37 +0200
committerGitHub <noreply@github.com>2017-01-04 12:04:37 +0200
commit2ce415eba2a5145cd884541bebb3cb75695ee268 (patch)
tree5f6b94aadd8439170a8b93981bf4ee13b15d3db0 /src/components/application_manager/include/application_manager
parent8dc5c158866b33608e1fe067dd9de9272c17156e (diff)
downloadsdl_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.h24
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: