summaryrefslogtreecommitdiff
path: root/src/components/policy/src/policy/include/policy/policy_manager_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/src/policy/include/policy/policy_manager_impl.h')
-rw-r--r--src/components/policy/src/policy/include/policy/policy_manager_impl.h95
1 files changed, 49 insertions, 46 deletions
diff --git a/src/components/policy/src/policy/include/policy/policy_manager_impl.h b/src/components/policy/src/policy/include/policy/policy_manager_impl.h
index f3c2e3bc1..fdcc64f6b 100644
--- a/src/components/policy/src/policy/include/policy/policy_manager_impl.h
+++ b/src/components/policy/src/policy/include/policy/policy_manager_impl.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -39,7 +39,7 @@
#include "policy/policy_manager.h"
#include "policy/policy_table.h"
#include "policy/cache_manager_interface.h"
-#include "policy/update_status_manager_interface.h"
+#include "policy/update_status_manager.h"
#include "./functions.h"
#include "usage_statistics/statistics_manager.h"
@@ -51,7 +51,6 @@ struct CheckAppPolicy;
class PolicyManagerImpl : public PolicyManager {
public:
PolicyManagerImpl();
- virtual ~PolicyManagerImpl();
virtual void set_listener(PolicyListener* listener);
PolicyListener* listener() const {
return listener_;
@@ -59,21 +58,19 @@ class PolicyManagerImpl : public PolicyManager {
virtual bool InitPT(const std::string& file_name);
virtual bool LoadPT(const std::string& file, const BinaryMessage& pt_content);
virtual bool ResetPT(const std::string& file_name);
- virtual std::string GetUpdateUrl(int service_type);
- virtual EndpointUrls GetUpdateUrls(int service_type);
- virtual std::string GetLockScreenIconUrl() const;
- virtual BinaryMessageSptr RequestPTUpdate();
+ virtual std::string GetUpdateUrl(int service_type) const;
+ virtual void GetUpdateUrls(int service_type, EndpointUrls& end_points);
+ virtual void RequestPTUpdate();
virtual void CheckPermissions(const PTString& app_id,
const PTString& hmi_level,
const PTString& rpc,
const RPCParams& rpc_params,
CheckPermissionResult& result);
virtual bool ResetUserConsent();
- virtual bool ExceededIgnitionCycles();
- virtual bool ExceededDays(int days);
- virtual bool ExceededKilometers(int kilometers);
+ virtual void KmsChanged(int kilometers);
virtual void IncrementIgnitionCycles();
- virtual PolicyTableStatus GetPolicyTableStatus();
+ virtual std::string ForcePTExchange();
+ virtual std::string GetPolicyTableStatus() const;
virtual void ResetRetrySequence();
virtual int NextRetryTimeout();
virtual int TimeoutExchange();
@@ -129,8 +126,6 @@ class PolicyManagerImpl : public PolicyManager {
virtual uint32_t GetNotificationsNumber(const std::string& priority);
- virtual int IsConsentNeeded(const std::string& app_id);
-
virtual void SetVINValue(const std::string& value);
// Interface StatisticsManager (begin)
@@ -144,8 +139,7 @@ class PolicyManagerImpl : public PolicyManager {
int32_t timespan_seconds);
// Interface StatisticsManager (end)
- AppPermissions GetAppPermissionsChanges(const std::string& device_id,
- const std::string& policy_app_id);
+ AppPermissions GetAppPermissionsChanges(const std::string& policy_app_id);
void RemovePendingPermissionChanges(const std::string& app_id);
void SendNotificationOnPermissionsUpdated(const std::string& application_id);
@@ -158,28 +152,28 @@ class PolicyManagerImpl : public PolicyManager {
void AddApplication(const std::string& application_id);
- /**
- * @brief IsAppinUpdateList
- * @param app_id
- * @return
- */
- virtual bool IsAppInUpdateList(const std::string& app_id) const;
-
virtual void RemoveAppConsentForGroup(const std::string& app_id,
const std::string& group_name);
virtual uint16_t HeartBeatTimeout(const std::string& app_id) const;
+ virtual void SaveUpdateStatusRequired(bool is_update_needed);
+
virtual bool IsPredataPolicy(const std::string& policy_app_id);
void set_cache_manager(CacheManagerInterface* cache_manager);
- void set_update_status_manager(
- UpdateStatusManagerInterface* update_manager);
+
+ virtual std::string RemoteAppsUrl() const;
+
+ virtual void OnAppsSearchStarted();
+
+ virtual void OnAppsSearchCompleted();
protected:
virtual utils::SharedPtr<policy_table::Table> Parse(
const BinaryMessage& pt_content);
private:
+ void CheckTriggers();
/*
* @brief Checks policy table update along with current data for any changes
* in assigned functional group list of application
@@ -205,17 +199,6 @@ class PolicyManagerImpl : public PolicyManager {
Permissions& notification_data);
/**
- * @brief Add application id at the end of update permissions request list
- * @param Application id
- */
- void AddAppToUpdateList(const std::string& application_id);
-
- /**
- * @brief Remove first application in the update permissions request list
- */
- void RemoveAppFromUpdateList();
-
- /**
* @brief Validate PermissionConsent structure according to currently
* assigned groups
* @param permissions PermissionConsent structure that should be validated.
@@ -249,20 +232,43 @@ class PolicyManagerImpl : public PolicyManager {
*/
bool IsNewApplication(const std::string& application_id) const;
+ /**
+ * Checks existing and permissions of AppStorageFolder
+ * @return true if AppStorageFolder exists and has permissions read/write
+ */
+ bool CheckAppStorageFolder() const;
+
+ /**
+ * @brief Checks whether need ask the permission of users
+ * @return true if user consent is needed
+ */
+ virtual bool IsConsentNeeded(const std::string& app_id);
+
+ /**
+ * @brief Changes isConsentNeeded for app pending permissions, in case
+ * user set permissions before app activation.
+ * @param Unique app id
+ * @param Current permissions for app
+ */
+ void CheckPendingPermissionsChanges(
+ const std::string& policy_app_id,
+ const std::vector<FunctionalGroupPermission>& current_permissions);
+
+ virtual void StartPTExchange();
+ virtual bool ExceededDays();
+ virtual bool ExceededIgnitionCycles();
+ bool IsPTValid(utils::SharedPtr<policy_table::Table> policy_table,
+ policy_table::PolicyTableType type) const;
+
PolicyListener* listener_;
- UpdateStatusManagerInterfaceSPtr update_status_manager_;
+ UpdateStatusManager update_status_manager_;
CacheManagerInterfaceSPtr cache_;
- sync_primitives::Lock update_request_list_lock_;
sync_primitives::Lock apps_registration_lock_;
+ sync_primitives::Lock app_permissions_diff_lock_;
std::map<std::string, AppPermissions> app_permissions_diff_;
/**
- * @brief List of application, which require update of permissions
- */
- std::list<std::string> update_requests_list_;
-
- /**
* Timeout to wait response with UpdatePT
*/
int retry_sequence_timeout_;
@@ -293,10 +299,7 @@ class PolicyManagerImpl : public PolicyManager {
*/
std::string last_device_id_;
- /**
- * @brief Holds device ids, which were unpaired
- */
- DeviceIds unpaired_device_ids_;
+ bool ignition_check;
friend struct CheckAppPolicy;
};