Home | History | Annotate | Download | only in policy
      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(DevicePolicy* device_policy)
     25     : device_policy_(device_policy),
     26       device_policy_is_loaded_(true) {
     27 }
     28 
     29 PolicyProvider::~PolicyProvider() {
     30 }
     31 
     32 bool PolicyProvider::Reload() {
     33   if (!device_policy_)
     34     return false;
     35   device_policy_is_loaded_ = device_policy_->LoadPolicy();
     36   if (!device_policy_is_loaded_) {
     37     LOG(WARNING) << "Could not load the device policy file.";
     38   }
     39   return device_policy_is_loaded_;
     40 }
     41 
     42 bool PolicyProvider::device_policy_is_loaded() const {
     43   return device_policy_is_loaded_;
     44 }
     45 
     46 const DevicePolicy& PolicyProvider::GetDevicePolicy() const {
     47   if (!device_policy_is_loaded_)
     48     DCHECK("Trying to get policy data but policy was not loaded!");
     49 
     50   return *device_policy_;
     51 }
     52 
     53 }  // namespace policy
     54