diff options
Diffstat (limited to 'src/components/policy/policy_regular/src/cache_manager.cc')
-rw-r--r-- | src/components/policy/policy_regular/src/cache_manager.cc | 60 |
1 files changed, 40 insertions, 20 deletions
diff --git a/src/components/policy/policy_regular/src/cache_manager.cc b/src/components/policy/policy_regular/src/cache_manager.cc index 743b9eff6c..7a6f98f536 100644 --- a/src/components/policy/policy_regular/src/cache_manager.cc +++ b/src/components/policy/policy_regular/src/cache_manager.cc @@ -766,35 +766,55 @@ void CacheManager::GetEnabledCloudApps( #endif // CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT } -bool CacheManager::GetCloudAppParameters( - const std::string& policy_app_id, - bool& enabled, - std::string& endpoint, - std::string& certificate, - std::string& auth_token, - std::string& cloud_transport_type, - std::string& hybrid_app_preference) const { +std::vector<std::string> CacheManager::GetEnabledLocalApps() const { +#if !defined(WEBSOCKET_SERVER_TRANSPORT_SUPPORT) + return std::vector<std::string>(); +#else + std::vector<std::string> enabled_apps; + const policy_table::ApplicationPolicies& app_policies = + pt_->policy_table.app_policies_section.apps; + for (const auto& app_policies_item : app_policies) { + const auto app_policy = app_policies_item.second; + // Local (WebEngine) applications + // should not have "endpoint" field + if (app_policy.endpoint.is_initialized()) { + continue; + } + if (app_policy.enabled.is_initialized() && *app_policy.enabled) { + enabled_apps.push_back(app_policies_item.first); + } + } + return enabled_apps; +#endif // WEBSOCKET_SERVER_TRANSPORT_SUPPORT +} + +bool CacheManager::GetAppProperties(const std::string& policy_app_id, + AppProperties& out_app_properties) const { const policy_table::ApplicationPolicies& policies = pt_->policy_table.app_policies_section.apps; policy_table::ApplicationPolicies::const_iterator policy_iter = policies.find(policy_app_id); if (policies.end() != policy_iter) { auto app_policy = (*policy_iter).second; - endpoint = app_policy.endpoint.is_initialized() ? *app_policy.endpoint - : std::string(); - auth_token = app_policy.auth_token.is_initialized() ? *app_policy.auth_token - : std::string(); - cloud_transport_type = app_policy.cloud_transport_type.is_initialized() - ? *app_policy.cloud_transport_type - : std::string(); - certificate = app_policy.certificate.is_initialized() - ? *app_policy.certificate - : std::string(); - hybrid_app_preference = + out_app_properties.endpoint = app_policy.endpoint.is_initialized() + ? *app_policy.endpoint + : std::string(); + out_app_properties.auth_token = app_policy.auth_token.is_initialized() + ? *app_policy.auth_token + : std::string(); + out_app_properties.transport_type = + app_policy.cloud_transport_type.is_initialized() + ? *app_policy.cloud_transport_type + : std::string(); + out_app_properties.certificate = app_policy.certificate.is_initialized() + ? *app_policy.certificate + : std::string(); + out_app_properties.hybrid_app_preference = app_policy.hybrid_app_preference.is_initialized() ? EnumToJsonString(*app_policy.hybrid_app_preference) : std::string(); - enabled = app_policy.enabled.is_initialized() && *app_policy.enabled; + out_app_properties.enabled = + app_policy.enabled.is_initialized() && *app_policy.enabled; return true; } return false; |