blob: d1e20beedde551a3c5464ddba131906420659c22 [file] [log] [blame]
Alex Deymobd04b142014-03-18 15:00:05 -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
Gilad Arnold48415f12014-06-27 07:10:58 -07005#ifndef UPDATE_ENGINE_UPDATE_MANAGER_REAL_SYSTEM_PROVIDER_H_
6#define UPDATE_ENGINE_UPDATE_MANAGER_REAL_SYSTEM_PROVIDER_H_
Alex Deymobd04b142014-03-18 15:00:05 -07007
Alex Deymo1f012912014-04-24 19:08:04 -07008#include <base/memory/scoped_ptr.h>
9
Alex Deymobd04b142014-03-18 15:00:05 -070010#include <string>
11
Gilad Arnold48e13612014-05-16 10:18:05 -070012#include "update_engine/hardware_interface.h"
Alex Deymo63784a52014-05-28 10:46:14 -070013#include "update_engine/update_manager/system_provider.h"
Alex Deymobd04b142014-03-18 15:00:05 -070014
Alex Deymo63784a52014-05-28 10:46:14 -070015namespace chromeos_update_manager {
Alex Deymobd04b142014-03-18 15:00:05 -070016
17// SystemProvider concrete implementation.
18class RealSystemProvider : public SystemProvider {
19 public:
Gilad Arnold48e13612014-05-16 10:18:05 -070020 explicit RealSystemProvider(
21 chromeos_update_engine::HardwareInterface* hardware)
22 : hardware_(hardware) {}
Alex Deymobd04b142014-03-18 15:00:05 -070023
Alex Deymo42c30c32014-04-24 18:41:18 -070024 // Initializes the provider and returns whether it succeeded.
25 bool Init();
26
David Zeuthen21716e22014-04-23 15:42:05 -070027 virtual Variable<bool>* var_is_normal_boot_mode() override {
28 return var_is_normal_boot_mode_.get();
29 }
30
31 virtual Variable<bool>* var_is_official_build() override {
32 return var_is_official_build_.get();
33 }
34
Gilad Arnold48e13612014-05-16 10:18:05 -070035 virtual Variable<bool>* var_is_oobe_complete() override {
36 return var_is_oobe_complete_.get();
37 }
38
Gilad Arnoldbfc44f72014-07-09 14:41:39 -070039 virtual Variable<bool>* var_is_boot_device_removable() override {
40 return var_is_boot_device_removable_.get();
41 }
42
Alex Deymobd04b142014-03-18 15:00:05 -070043 private:
David Zeuthen21716e22014-04-23 15:42:05 -070044 scoped_ptr<Variable<bool>> var_is_normal_boot_mode_;
45 scoped_ptr<Variable<bool>> var_is_official_build_;
Gilad Arnold48e13612014-05-16 10:18:05 -070046 scoped_ptr<Variable<bool>> var_is_oobe_complete_;
Gilad Arnoldbfc44f72014-07-09 14:41:39 -070047 scoped_ptr<Variable<bool>> var_is_boot_device_removable_;
Gilad Arnold48e13612014-05-16 10:18:05 -070048
49 chromeos_update_engine::HardwareInterface* hardware_;
David Zeuthen21716e22014-04-23 15:42:05 -070050
Alex Deymobd04b142014-03-18 15:00:05 -070051 DISALLOW_COPY_AND_ASSIGN(RealSystemProvider);
52};
53
Alex Deymo63784a52014-05-28 10:46:14 -070054} // namespace chromeos_update_manager
Alex Deymobd04b142014-03-18 15:00:05 -070055
Gilad Arnold48415f12014-06-27 07:10:58 -070056#endif // UPDATE_ENGINE_UPDATE_MANAGER_REAL_SYSTEM_PROVIDER_H_