libpolicy.h revision 3c8d4abaa4b4798a7dbc49f5317c76b1b6332ab0
1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// found in the LICENSE file. 4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#ifndef LIBCHROMEOS_CHROMEOS_POLICY_LIBPOLICY_H_ 6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#define LIBCHROMEOS_CHROMEOS_POLICY_LIBPOLICY_H_ 7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include <string> 9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include <base/macros.h> 11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include <base/memory/scoped_ptr.h> 12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#pragma GCC visibility push(default) 14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochnamespace policy { 16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochclass DevicePolicy; 18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// This class holds device settings that are to be enforced across all users. 20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// 21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// If there is a policy on disk at creation time, we will load it at verify 22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// its signature. 23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochclass PolicyProvider { 24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch public: 25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch PolicyProvider(); 26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch virtual ~PolicyProvider(); 27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // Constructor for tests only! 29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch explicit PolicyProvider(DevicePolicy* device_policy); 30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 31b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // This function will ensure the freshness of the contents that the getters 32b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // are delivering. Normally contents are cached to prevent unnecessary load. 33b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch virtual bool Reload(); 34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch virtual bool device_policy_is_loaded() const; 36b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 37b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // Returns a value from the device policy cache. 38b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch virtual const DevicePolicy& GetDevicePolicy() const; 39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 40b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch private: 41b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch scoped_ptr<DevicePolicy> device_policy_; 42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch bool device_policy_is_loaded_; 43b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch DISALLOW_COPY_AND_ASSIGN(PolicyProvider); 45b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}; 46b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} // namespace policy 47014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch 48b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#pragma GCC visibility pop 49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#endif // LIBCHROMEOS_CHROMEOS_POLICY_LIBPOLICY_H_ 51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch