| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef OOBE_CONFIG_OOBE_CONFIG_RESTORE_SERVICE_H_ |
| #define OOBE_CONFIG_OOBE_CONFIG_RESTORE_SERVICE_H_ |
| |
| #include <memory> |
| #include <utility> |
| #include <vector> |
| |
| #include "oobe_config/proto_bindings/oobe_config.pb.h" |
| |
| #include <brillo/dbus/async_event_sequencer.h> |
| #include <dbus_adaptors/org.chromium.OobeConfigRestore.h> |
| #include <power_manager-client/power_manager/dbus-proxies.h> |
| |
| namespace oobe_config { |
| |
| // Implementation of OobeConfigRestore D-Bus interface. |
| class OobeConfigRestoreService |
| : public org::chromium::OobeConfigRestoreAdaptor, |
| public org::chromium::OobeConfigRestoreInterface { |
| public: |
| explicit OobeConfigRestoreService( |
| std::unique_ptr<brillo::dbus_utils::DBusObject> dbus_object, |
| bool allow_unencrypted, |
| bool skip_reboot_for_testing); |
| ~OobeConfigRestoreService() override; |
| |
| // Registers the D-Bus object and interfaces. |
| void RegisterAsync( |
| const brillo::dbus_utils::AsyncEventSequencer::CompletionAction& |
| completion_callback); |
| |
| // org::chromium::OobeConfigRestoreInterface |
| // - See org.chromium.OobeConfigRestoreInterface.xml |
| void ProcessAndGetOobeAutoConfig(int32_t* error, |
| OobeRestoreData* oobe_config_blob) override; |
| |
| private: |
| std::unique_ptr<brillo::dbus_utils::DBusObject> dbus_object_; |
| std::unique_ptr<org::chromium::PowerManagerProxy> power_manager_proxy_; |
| bool allow_unencrypted_; |
| bool skip_reboot_for_testing_; |
| |
| DISALLOW_COPY_AND_ASSIGN(OobeConfigRestoreService); |
| }; |
| |
| } // namespace oobe_config |
| |
| #endif // OOBE_CONFIG_OOBE_CONFIG_RESTORE_SERVICE_H_ |