blob: 6bfbd0ec1afea8d14cc6f5c83b49cadf86ea2dd4 [file] [log] [blame]
Alex Deymoc705cc82014-02-19 11:15:00 -08001// Copyright (c) 2014 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 "update_engine/policy_manager/chromeos_policy.h"
6#include "update_engine/policy_manager/policy_manager.h"
7#include "update_engine/policy_manager/real_random_provider.h"
8
9namespace chromeos_policy_manager {
10
11template <typename T>
12bool InitProvider(scoped_ptr<T>* handle_ptr, T* provider) {
13 handle_ptr->reset(provider);
14 return handle_ptr->get() && (*handle_ptr)->Init();
15}
16
17bool PolicyManager::Init() {
18 // TODO(deymo): Make it possible to replace this policy with a different
19 // implementation with a build-time flag.
20 policy_.reset(new ChromeOSPolicy());
21
22 bool result = true;
23
24 // Initialize all the providers.
25 result = result && InitProvider<RandomProvider>(&random_,
26 new RealRandomProvider());
27
28 return result;
29}
30
31} // namespace chromeos_policy_manager