53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
// 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(DevicePolicy* device_policy)
|
|
: device_policy_(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
|