| // Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "policy/libpolicy.h" |
| |
| #include <base/logging.h> |
| |
| #include "policy/device_policy.h" |
| #ifndef __ANDROID__ |
| #include "policy/device_policy_impl.h" |
| #endif |
| |
| namespace policy { |
| |
| PolicyProvider::PolicyProvider() |
| : device_policy_(nullptr), |
| device_policy_is_loaded_(false) { |
| #ifndef __ANDROID__ |
| device_policy_.reset(new DevicePolicyImpl()); |
| #endif |
| } |
| |
| PolicyProvider::PolicyProvider(std::unique_ptr<DevicePolicy> device_policy) |
| : device_policy_(std::move(device_policy)), |
| device_policy_is_loaded_(true) {} |
| |
| PolicyProvider::~PolicyProvider() {} |
| |
| bool PolicyProvider::Reload() { |
| if (!device_policy_) |
| return false; |
| device_policy_is_loaded_ = device_policy_->LoadPolicy(); |
| if (!device_policy_is_loaded_) { |
| LOG(WARNING) << "Could not load the device policy file."; |
| } |
| return device_policy_is_loaded_; |
| } |
| |
| bool PolicyProvider::device_policy_is_loaded() const { |
| return device_policy_is_loaded_; |
| } |
| |
| const DevicePolicy& PolicyProvider::GetDevicePolicy() const { |
| if (!device_policy_is_loaded_) |
| DCHECK("Trying to get policy data but policy was not loaded!"); |
| |
| return *device_policy_; |
| } |
| |
| } // namespace policy |