blob: 7349d587508fe92720c74a60ba5cbb41e509aec2 [file] [log] [blame]
David Zeuthen4e89e2c2014-04-24 11:47:00 -07001// 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#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_REAL_STATE_H_
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_REAL_STATE_H_
7
8#include <base/memory/scoped_ptr.h>
9
10#include "update_engine/policy_manager/state.h"
11
12namespace chromeos_policy_manager {
13
14// State concrete implementation.
15class RealState : public State {
16 public:
17 virtual ~RealState() {}
18
19 RealState(ConfigProvider* config_provider,
20 DevicePolicyProvider* device_policy_provider,
21 RandomProvider* random_provider,
22 ShillProvider* shill_provider,
23 SystemProvider* system_provider,
24 TimeProvider* time_provider,
25 UpdaterProvider* updater_provider) :
26 config_provider_(config_provider),
27 device_policy_provider_(device_policy_provider),
28 random_provider_(random_provider),
29 shill_provider_(shill_provider),
30 system_provider_(system_provider),
31 time_provider_(time_provider),
32 updater_provider_(updater_provider) {}
33
34 // These methods return the given provider.
35 virtual ConfigProvider* config_provider() override {
36 return config_provider_.get();
37 }
38 virtual DevicePolicyProvider* device_policy_provider() override {
39 return device_policy_provider_.get();
40 }
41 virtual RandomProvider* random_provider() override {
42 return random_provider_.get();
43 }
44 virtual ShillProvider* shill_provider() override {
45 return shill_provider_.get();
46 }
47 virtual SystemProvider* system_provider() override {
48 return system_provider_.get();
49 }
50 virtual TimeProvider* time_provider() override {
51 return time_provider_.get();
52 }
53 virtual UpdaterProvider* updater_provider() override {
54 return updater_provider_.get();
55 }
56
57 private:
58 // Instances of the providers.
59 scoped_ptr<ConfigProvider> config_provider_;
60 scoped_ptr<DevicePolicyProvider> device_policy_provider_;
61 scoped_ptr<RandomProvider> random_provider_;
62 scoped_ptr<ShillProvider> shill_provider_;
63 scoped_ptr<SystemProvider> system_provider_;
64 scoped_ptr<TimeProvider> time_provider_;
65 scoped_ptr<UpdaterProvider> updater_provider_;
66};
67
68} // namespace chromeos_policy_manager
69
70#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_REAL_STATE_H_