diff options
Diffstat (limited to 'src/components/application_manager/src/policies')
-rw-r--r-- | src/components/application_manager/src/policies/policy_event_observer.cc | 9 | ||||
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 78 |
2 files changed, 35 insertions, 52 deletions
diff --git a/src/components/application_manager/src/policies/policy_event_observer.cc b/src/components/application_manager/src/policies/policy_event_observer.cc index 828f2d923a..f397814005 100644 --- a/src/components/application_manager/src/policies/policy_event_observer.cc +++ b/src/components/application_manager/src/policies/policy_event_observer.cc @@ -63,14 +63,6 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) { const smart_objects::SmartObject& message = event.smart_object(); switch (event.id()) { -#ifdef HMI_DBUS_API - case hmi_apis::FunctionID::VehicleInfo_GetOdometer: { - ProcessOdometerEvent(message); - break; - } - default: { break; } - unsubscribe_from_event(hmi_apis::FunctionID::VehicleInfo_GetOdometer); -#else case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: { ProcessOdometerEvent(message); unsubscribe_from_event(hmi_apis::FunctionID::VehicleInfo_GetVehicleData); @@ -82,7 +74,6 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) { break; } default: { break; } -#endif } } diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index 67658c2809..bba68ef0e5 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -42,6 +42,7 @@ #include "application_manager/application_manager.h" #include "application_manager/state_controller.h" #include "application_manager/message_helper.h" +#include "application_manager/rpc_service.h" #include "policy/policy_manager_impl.h" #include "connection_handler/connection_handler.h" #include "utils/macro.h" @@ -53,12 +54,9 @@ #include "interfaces/MOBILE_API.h" #include "utils/file_system.h" #include "utils/scope_guard.h" -#include "utils/make_shared.h" + #include "utils/helpers.h" #include "policy/policy_manager.h" -#ifdef SDL_REMOTE_CONTROL -#include "functional_module/plugin_manager.h" -#endif // SDL_REMOTE_CONTROL namespace policy { @@ -226,7 +224,7 @@ struct LinksCollector { } void operator()(const ApplicationSharedPtr& app) { - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "Invalid pointer to application was passed." "Skip current application."); @@ -260,7 +258,7 @@ struct LinkAppToDevice { } void operator()(const ApplicationSharedPtr& app) { - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "Invalid pointer to application was passed." "Skip current application."); @@ -329,8 +327,7 @@ PolicyHandler::PolicyHandler(const PolicySettings& settings, : AsyncRunner("PolicyHandler async runner thread") , dl_handle_(0) , last_activated_app_id_(0) - , app_to_device_link_lock_(true) - , statistic_manager_impl_(utils::MakeShared<StatisticManagerImpl>(this)) + , statistic_manager_impl_(std::make_shared<StatisticManagerImpl>(this)) , settings_(settings) , application_manager_(application_manager) {} @@ -357,14 +354,14 @@ bool PolicyHandler::LoadPolicyLibrary() { if (CreateManager()) { policy_manager_->set_listener(this); event_observer_ = - utils::SharedPtr<PolicyEventObserver>(new PolicyEventObserver( + std::shared_ptr<PolicyEventObserver>(new PolicyEventObserver( this, application_manager_.event_dispatcher())); } } else { LOG4CXX_ERROR(logger_, error); } - return policy_manager_.valid(); + return (policy_manager_.use_count() != 0); } bool PolicyHandler::CreateManager() { @@ -377,11 +374,11 @@ bool PolicyHandler::CreateManager() { char* error_string = dlerror(); if (NULL == error_string) { policy_manager_ = - utils::SharedPtr<PolicyManager>(create_manager(), delete_manager); + std::shared_ptr<PolicyManager>(create_manager(), delete_manager); } else { LOG4CXX_WARN(logger_, error_string); } - return policy_manager_.valid(); + return (policy_manager_.use_count() != 0); } const PolicySettings& PolicyHandler::get_settings() const { @@ -522,7 +519,7 @@ void PolicyHandler::SendOnAppPermissionsChanged( << policy_app_id); ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "No app found for policy app id = " << policy_app_id); return; } @@ -557,7 +554,7 @@ struct SmartObjectToInt { StatusNotifier PolicyHandler::AddApplication( const std::string& application_id, const rpc::policy_table_interface_base::AppHmiTypes& hmi_types) { - POLICY_LIB_CHECK(utils::MakeShared<utils::CallNothing>()); + POLICY_LIB_CHECK(std::make_shared<utils::CallNothing>()); return policy_manager_->AddApplication(application_id, hmi_types); } @@ -593,7 +590,7 @@ void PolicyHandler::OnAppPermissionConsentInternal( if (connection_key) { ApplicationSharedPtr app = application_manager_.application(connection_key); - if (app.valid()) { + if (app.use_count() != 0) { out_permissions.policy_app_id = app->policy_app_id(); DeviceParams device_params = GetDeviceParams( app->device(), @@ -620,7 +617,7 @@ void PolicyHandler::OnAppPermissionConsentInternal( // If list of apps sent to HMI for user consents is not the same as // current, // permissions should be set only for coincident to registered apps - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "Invalid pointer to application was passed." "Permissions setting skipped."); @@ -661,9 +658,9 @@ void PolicyHandler::OnAppPermissionConsentInternal( void policy::PolicyHandler::SetDaysAfterEpoch() { POLICY_LIB_CHECK_VOID(); - TimevalStruct current_time = date_time::DateTime::getCurrentTime(); + date_time::TimeDuration current_time = date_time::getCurrentTime(); const int kSecondsInDay = 60 * 60 * 24; - int days_after_epoch = current_time.tv_sec / kSecondsInDay; + int days_after_epoch = date_time::getSecs(current_time) / kSecondsInDay; PTUpdatedAt(Counters::DAYS_AFTER_EPOCH, days_after_epoch); } @@ -735,7 +732,7 @@ std::vector<FunctionalGroupPermission> PolicyHandler::CollectAppPermissions( ApplicationSharedPtr app = application_manager_.application(connection_key); std::vector<FunctionalGroupPermission> group_permissions; - if (NULL == app.get() || !app.valid()) { + if (NULL == app.get() || app.use_count() == 0) { LOG4CXX_WARN(logger_, "Connection key '" << connection_key @@ -885,7 +882,7 @@ std::string PolicyHandler::OnCurrentDeviceIdUpdateRequired( ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "Application with id '" << policy_app_id @@ -960,7 +957,7 @@ void PolicyHandler::OnPendingPermissionChange( POLICY_LIB_CHECK_VOID(); ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "No app found for " << policy_app_id << " policy app id."); return; @@ -1018,11 +1015,11 @@ void PolicyHandler::OnPendingPermissionChange( MessageHelper::SendOnAppPermissionsChangedNotification( app->app_id(), permissions, application_manager_); } - application_manager_.ManageMobileCommand( + application_manager_.GetRPCService().ManageMobileCommand( MessageHelper::GetOnAppInterfaceUnregisteredNotificationToMobile( app->app_id(), mobile_api::AppInterfaceUnregisteredReason::APP_UNAUTHORIZED), - commands::Command::ORIGIN_SDL); + commands::Command::SOURCE_SDL); application_manager_.OnAppUnauthorized(app->app_id()); @@ -1085,12 +1082,7 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file, SetDaysAfterEpoch(); event_observer_->subscribe_on_event( -#ifdef HMI_DBUS_API - hmi_apis::FunctionID::VehicleInfo_GetOdometer, correlation_id -#else - hmi_apis::FunctionID::VehicleInfo_GetVehicleData, correlation_id -#endif - ); + hmi_apis::FunctionID::VehicleInfo_GetVehicleData, correlation_id); std::vector<std::string> vehicle_data_args; vehicle_data_args.push_back(strings::odometer); MessageHelper::CreateGetVehicleDataRequest( @@ -1198,10 +1190,6 @@ void PolicyHandler::OnAllowSDLFunctionalityNotification( accessor.GetData().end(), DeactivateApplication(device_handle, application_manager_.state_controller())); -#ifdef SDL_REMOTE_CONTROL - application_manager_.GetPluginManager().OnPolicyEvent( - functional_modules::PolicyEvent::kApplicationsDisabled); -#endif // SDL_REMOTE_CONTROL } else { std::for_each( accessor.GetData().begin(), @@ -1280,7 +1268,7 @@ void PolicyHandler::OnActivateApp(uint32_t connection_key, LOG4CXX_AUTO_TRACE(logger_); POLICY_LIB_CHECK_VOID(); ApplicationSharedPtr app = application_manager_.application(connection_key); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN(logger_, "Activated App failed: no app found."); return; } @@ -1374,7 +1362,7 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id, ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN( logger_, "Connection_key not found for application_id:" << policy_app_id); @@ -1427,7 +1415,7 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id, LOG4CXX_AUTO_TRACE(logger_); ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN( logger_, "Connection_key not found for application_id:" << policy_app_id); @@ -1470,7 +1458,7 @@ void PolicyHandler::OnSnapshotCreated( std::string policy_snapshot_full_path; if (SaveSnapshot(pt_string, policy_snapshot_full_path)) { const uint32_t timeout_exchange_s = - timeout_exchange_ms / date_time::DateTime::MILLISECONDS_IN_SECOND; + timeout_exchange_ms / date_time::MILLISECONDS_IN_SECOND; MessageHelper::SendPolicyUpdate(policy_snapshot_full_path, timeout_exchange_s, retry_delay_seconds, @@ -1527,6 +1515,13 @@ void PolicyHandler::CheckPermissions( POLICY_LIB_CHECK_VOID(); const std::string hmi_level = MessageHelper::StringifiedHMILevel(app->hmi_level()); + if (hmi_level.empty()) { + LOG4CXX_WARN(logger_, + "HMI level for " << app->policy_app_id() << " is invalid, rpc " + << rpc << " is not allowed."); + result.hmi_level_permitted = policy::kRpcDisallowed; + return; + } const std::string device_id = MessageHelper::GetDeviceMacAddressForHandle( app->device(), application_manager_); LOG4CXX_INFO(logger_, @@ -1592,7 +1587,7 @@ uint32_t PolicyHandler::NextRetryTimeout() { } uint32_t PolicyHandler::TimeoutExchangeSec() const { - return TimeoutExchangeMSec() / date_time::DateTime::MILLISECONDS_IN_SECOND; + return TimeoutExchangeMSec() / date_time::MILLISECONDS_IN_SECOND; } uint32_t PolicyHandler::TimeoutExchangeMSec() const { @@ -1631,7 +1626,7 @@ void PolicyHandler::remove_listener(PolicyHandlerObserver* listener) { listeners_.remove(listener); } -utils::SharedPtr<usage_statistics::StatisticsManager> +std::shared_ptr<usage_statistics::StatisticsManager> PolicyHandler::GetStatisticManager() const { return statistic_manager_impl_; } @@ -1673,7 +1668,7 @@ custom_str::CustomString PolicyHandler::GetAppName( ApplicationSharedPtr app = application_manager_.application_by_policy_id(policy_app_id); - if (!app.valid()) { + if (app.use_count() == 0) { LOG4CXX_WARN( logger_, "Connection_key not found for application_id:" << policy_app_id); @@ -2036,8 +2031,6 @@ bool PolicyHandler::IsUrlAppIdValid(const uint32_t app_idx, return ((is_registered && !is_empty_urls) || is_default); } -#ifdef SDL_REMOTE_CONTROL - std::vector<std::string> PolicyHandler::GetDevicesIds( const std::string& policy_app_id) { return application_manager_.devices(policy_app_id); @@ -2171,5 +2164,4 @@ void PolicyHandler::OnUpdateHMILevel(const std::string& device_id, } UpdateHMILevel(app, level); } -#endif // SDL_REMOTE_CONTROL } // namespace policy |