blob: d13e18cee2805854520d809a5bd5867051ef0df5 [file] [log] [blame]
Jay Srinivasan43488792012-06-19 00:25:31 -07001// Copyright (c) 2012 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 <base/file_util.h>
6
7#include "update_engine/system_state.h"
8
9namespace chromeos_update_engine {
10
11static const char kOOBECompletedMarker[] = "/home/chronos/.oobe_completed";
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080012static const char kPrefsDirectory[] = "/var/lib/update_engine/prefs";
Jay Srinivasan43488792012-06-19 00:25:31 -070013
Jay Srinivasan34b5d862012-07-23 11:43:22 -070014RealSystemState::RealSystemState()
15 : device_policy_(NULL),
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080016 connection_manager_(this) {}
17
18bool RealSystemState::Initialize() {
19 metrics_lib_.Init();
20
21 if (!prefs_.Init(FilePath(kPrefsDirectory))) {
22 LOG(ERROR) << "Failed to initialize preferences.";
23 return false;
24 }
25
26 if (!payload_state_.Initialize(&prefs_))
27 return false;
28
29 // All is well. Initialization successful.
30 return true;
31}
Jay Srinivasan43488792012-06-19 00:25:31 -070032
33bool RealSystemState::IsOOBEComplete() {
34 return file_util::PathExists(FilePath(kOOBECompletedMarker));
35}
36
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080037void RealSystemState::set_device_policy(
Jay Srinivasan43488792012-06-19 00:25:31 -070038 const policy::DevicePolicy* device_policy) {
39 device_policy_ = device_policy;
40}
41
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080042const policy::DevicePolicy* RealSystemState::device_policy() const {
Jay Srinivasan43488792012-06-19 00:25:31 -070043 return device_policy_;
44}
45
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080046ConnectionManager* RealSystemState::connection_manager() {
Jay Srinivasan43488792012-06-19 00:25:31 -070047 return &connection_manager_;
48}
49
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080050MetricsLibraryInterface* RealSystemState::metrics_lib() {
51 return &metrics_lib_;
Jay Srinivasanf0572052012-10-23 18:12:56 -070052}
53
Jay Srinivasan6f6ea002012-12-14 11:26:28 -080054PrefsInterface* RealSystemState::prefs() {
55 return &prefs_;
56}
57
58PayloadState* RealSystemState::payload_state() {
59 return &payload_state_;
Jay Srinivasanf0572052012-10-23 18:12:56 -070060}
61
Jay Srinivasan43488792012-06-19 00:25:31 -070062} // namespace chromeos_update_engine