blob: 05774093408bb53e01808e7473574a19fc3e80b9 [file] [log] [blame]
// Copyright 2021 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 MINIOS_RECOVERY_INSTALLER_H_
#define MINIOS_RECOVERY_INSTALLER_H_
#include <string>
#include "minios/process_manager.h"
#include "minios/recovery_installer_interface.h"
namespace minios {
class RecoveryInstaller : public RecoveryInstallerInterface {
public:
explicit RecoveryInstaller(ProcessManagerInterface* process_manager)
: repartition_completed_(false), process_manager_(process_manager) {}
virtual ~RecoveryInstaller() = default;
RecoveryInstaller(const RecoveryInstaller&) = delete;
RecoveryInstaller& operator=(const RecoveryInstaller&) = delete;
bool RepartitionDisk() override;
private:
// Only repartition the disk once per recovery attempt.
bool repartition_completed_;
ProcessManagerInterface* process_manager_;
};
} // namespace minios
#endif // MINIOS_RECOVERY_INSTALLER_H_