1 // Copyright (c) 2011 The Chromium OS 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 #include "policy/libpolicy.h" 6 7 #include <base/logging.h> 8 9 #include "policy/device_policy.h" 10 #ifndef __ANDROID__ 11 #include "policy/device_policy_impl.h" 12 #endif 13 14 namespace policy { 15 16 PolicyProvider::PolicyProvider() 17 : device_policy_(nullptr), 18 device_policy_is_loaded_(false) { 19 #ifndef __ANDROID__ 20 device_policy_.reset(new DevicePolicyImpl()); 21 #endif 22 } 23 24 PolicyProvider::PolicyProvider(std::unique_ptr<DevicePolicy> device_policy) 25 : device_policy_(std::move(device_policy)), 26 device_policy_is_loaded_(true) {} 27 28 PolicyProvider::~PolicyProvider() {} 29 30 bool PolicyProvider::Reload() { 31 if (!device_policy_) 32 return false; 33 device_policy_is_loaded_ = device_policy_->LoadPolicy(); 34 if (!device_policy_is_loaded_) { 35 LOG(WARNING) << "Could not load the device policy file."; 36 } 37 return device_policy_is_loaded_; 38 } 39 40 bool PolicyProvider::device_policy_is_loaded() const { 41 return device_policy_is_loaded_; 42 } 43 44 const DevicePolicy& PolicyProvider::GetDevicePolicy() const { 45 if (!device_policy_is_loaded_) 46 DCHECK("Trying to get policy data but policy was not loaded!"); 47 48 return *device_policy_; 49 } 50 51 } // namespace policy 52