diff options
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.h | 95 |
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; }; |