diff options
Diffstat (limited to 'src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h')
-rw-r--r-- | src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h | 98 |
1 files changed, 48 insertions, 50 deletions
diff --git a/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h b/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h index 260f2da060..dfc29fe00a 100644 --- a/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h +++ b/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h @@ -39,16 +39,10 @@ #include <vector> #include "policy/policy_manager.h" #include "application_manager/policies/policy_event_observer.h" -#include "application_manager/policies/delegates/statistics_delegate.h" +#include "application_manager/policies/pt_exchange_handler.h" #include "utils/logger.h" #include "utils/singleton.h" -#include "utils/threads/thread.h" -#include "utils/threads/thread_delegate.h" -#include "utils/conditional_variable.h" -#include "utils/rwlock.h" #include "usage_statistics/statistics_manager.h" -#include "policy_handler_observer.h" -#include "utils/threads/async_runner.h" namespace Json { class Value; @@ -60,8 +54,7 @@ typedef std::vector<uint32_t> DeviceHandles; class PolicyHandler : public utils::Singleton<PolicyHandler, utils::deleters::Deleter<PolicyHandler> >, - public PolicyListener, - public threads::AsyncRunner { + public PolicyListener { public: virtual ~PolicyHandler(); bool LoadPolicyLibrary(); @@ -69,18 +62,15 @@ class PolicyHandler : bool InitPolicyTable(); bool ResetPolicyTable(); bool ClearUserConsent(); - bool SendMessageToSDK(const BinaryMessage& pt_string, const std::string& url); + bool SendMessageToSDK(const BinaryMessage& pt_string); bool ReceiveMessageFromSDK(const std::string& file, const BinaryMessage& pt_string); bool UnloadPolicyLibrary(); + void OnPTExchangeNeeded(); void OnPermissionsUpdated(const std::string& policy_app_id, const Permissions& permissions, const HMILevel& default_hmi); - virtual void OnSnapshotCreated(const BinaryMessage& pt_string, - const std::vector<int>& retry_delay_seconds, - int timeout_exchange); - bool GetPriority(const std::string& policy_app_id, std::string* priority); void CheckPermissions(const PTString& app_id, const PTString& hmi_level, @@ -95,14 +85,13 @@ class PolicyHandler : bool GetInitialAppData(const std::string& application_id, StringArray* nicknames = NULL, StringArray* app_hmi_types = NULL); - void GetUpdateUrls(int service_type, EndpointUrls& end_points); + EndpointUrls GetUpdateUrls(int service_type); void ResetRetrySequence(); int NextRetryTimeout(); int TimeoutExchange(); void OnExceededTimeout(); - void OnSystemReady(); - void PTUpdatedAt(int kilometers, int days_after_epoch); - void set_listener(PolicyHandlerObserver* listener); + BinaryMessageSptr RequestPTUpdate(); + const std::vector<int> RetrySequenceDelaysSeconds(); utils::SharedPtr<usage_statistics::StatisticsManager> GetStatisticManager(); @@ -158,6 +147,11 @@ class PolicyHandler : void OnPendingPermissionChange(const std::string& policy_app_id); /** + * Initializes PT exchange at ignition if need + */ + void PTExchangeAtRegistration(const std::string& app_id); + + /** * Initializes PT exchange at user request * @param correlation_id correlation id of request */ @@ -177,7 +171,7 @@ class PolicyHandler : * @param permissions User-changed group permissions consent */ void OnAppPermissionConsent(const uint32_t connection_key, - const PermissionConsent &permissions); + PermissionConsent& permissions); /** * @brief Get appropriate message parameters and send them with response @@ -210,7 +204,7 @@ class PolicyHandler : * @brief Send notification to HMI with changed policy update status * @param status Current policy update state */ - void OnUpdateStatusChanged(const std::string& status); + void OnUpdateStatusChanged(policy::PolicyTableStatus status); /** * @brief Update currently used device id in policies manager for given @@ -277,15 +271,11 @@ class PolicyHandler : std::string GetAppName(const std::string& policy_app_id); - virtual void OnUpdateHMIAppType(std::map<std::string, StringArray> app_hmi_types); + virtual void OnUserRequestedUpdateCheckRequired(); virtual void OnDeviceConsentChanged(const std::string& device_id, bool is_allowed); - virtual void OnPTExchangeNeeded(); - - virtual void GetAvailableApps(std::queue<std::string>& apps); - /** * @brief Allows to add new or update existed application during * registration process @@ -324,6 +314,7 @@ class PolicyHandler : usage_statistics::AppStopwatchId type, int32_t timespan_seconds); + protected: /** @@ -331,62 +322,72 @@ protected: */ void StartNextRetry(); + /** + * Initializes PT exchange at odometer if need + * @param kilometers value from odometer in kilometers + */ + void PTExchangeAtOdometer(int kilometers); + + /** + * Starts proccess updating policy table + */ + void StartPTExchange(bool skip_device_selection = false); + private: + /** + * @brief Choose device according to app HMI status and user consent for + * device + * @param device_info Struct with selected device parameters + * @return consent status for selected device + */ + DeviceConsent GetDeviceForSending(DeviceParams& device_params); /** - * @brief OnAppPermissionConsentInternal reacts on permission changing - * - * @param connection_key connection key - * - * @param permissions new permissions. + * @brief Convert internal policy update status to appropriate status for HMI + * @param status Internal policy update status + * @return Converted status for sending to HMI */ - void OnAppPermissionConsentInternal(const uint32_t connection_key, - PermissionConsent& permissions); + const std::string ConvertUpdateStatus(policy::PolicyTableStatus status); + private: + class StatisticManagerImpl: public usage_statistics::StatisticsManager { //TODO(AKutsan) REMOVE THIS UGLY HOTFIX virtual void Increment(usage_statistics::GlobalCounterId type) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(type)); + return PolicyHandler::instance()->Increment(type); } virtual void Increment(const std::string& app_id, usage_statistics::AppCounterId type) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id, - type)); + return PolicyHandler::instance()->Increment(app_id, type); } virtual void Set(const std::string& app_id, usage_statistics::AppInfoId type, const std::string& value) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id, - type, - value)); + return PolicyHandler::instance()->Set(app_id, type, value); } virtual void Add(const std::string& app_id, usage_statistics::AppStopwatchId type, int32_t timespan_seconds) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate( - app_id, type, timespan_seconds)); + return PolicyHandler::instance()->Add(app_id, type, timespan_seconds); } }; //TODO(AKutsan) REMOVE THIS UGLY HOTFIX PolicyHandler(); - bool SaveSnapshot(const BinaryMessage& pt_string, std::string& snap_path); static PolicyHandler* instance_; static const std::string kLibrary; - mutable sync_primitives::RWLock policy_manager_lock_; utils::SharedPtr<PolicyManager> policy_manager_; void* dl_handle_; AppIds last_used_app_ids_; + utils::SharedPtr<PTExchangeHandler> exchange_handler_; utils::SharedPtr<PolicyEventObserver> event_observer_; + bool on_ignition_check_done_; uint32_t last_activated_app_id_; + bool registration_in_progress; /** * @brief Contains device handles, which were sent for user consent to HMI @@ -395,7 +396,7 @@ private: inline bool CreateManager(); - PolicyHandlerObserver* listener_; + bool is_user_requested_policy_table_update_; /** * @brief Application-to-device map is used for getting/setting user consents @@ -403,12 +404,9 @@ private: */ std::map<std::string, std::string> app_to_device_link_; - // Lock for app to device list - sync_primitives::Lock app_to_device_link_lock_; utils::SharedPtr<StatisticManagerImpl> statistic_manager_impl_; - friend class AppPermissionDelegate; DISALLOW_COPY_AND_ASSIGN(PolicyHandler); FRIEND_BASE_SINGLETON_CLASS_WITH_DELETER(PolicyHandler, |