1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_POLICY_CORE_COMMON_PROXY_POLICY_PROVIDER_H_ 6 #define COMPONENTS_POLICY_CORE_COMMON_PROXY_POLICY_PROVIDER_H_ 7 8 #include "base/basictypes.h" 9 #include "components/policy/core/common/configuration_policy_provider.h" 10 #include "components/policy/policy_export.h" 11 12 namespace policy { 13 14 // A policy provider implementation that acts as a proxy for another policy 15 // provider, swappable at any point. 16 class POLICY_EXPORT ProxyPolicyProvider 17 : public ConfigurationPolicyProvider, 18 public ConfigurationPolicyProvider::Observer { 19 public: 20 ProxyPolicyProvider(); 21 virtual ~ProxyPolicyProvider(); 22 23 // Updates the provider this proxy delegates to. 24 void SetDelegate(ConfigurationPolicyProvider* delegate); 25 26 // ConfigurationPolicyProvider: 27 virtual void Shutdown() OVERRIDE; 28 virtual void RefreshPolicies() OVERRIDE; 29 30 // ConfigurationPolicyProvider::Observer: 31 virtual void OnUpdatePolicy(ConfigurationPolicyProvider* provider) OVERRIDE; 32 33 private: 34 ConfigurationPolicyProvider* delegate_; 35 36 DISALLOW_COPY_AND_ASSIGN(ProxyPolicyProvider); 37 }; 38 39 } // namespace policy 40 41 #endif // COMPONENTS_POLICY_CORE_COMMON_PROXY_POLICY_PROVIDER_H_ 42