BootControl exposes DynamicPartitionControl.
Add BootControlInterface::GetDynamicPartitionControl, which
exposes the internal DynamicPartitionControlInterface object.
BootControlStub / FakeBootControl / BootControlChromeOS uses
DynamicPartitionControlStub (all functions succeeds).
BootControlAndroid uses DynamicPartitionControlAndroid.
GetPartitionDevice is exposed so that BootControlAndroid can use it.
Follow-up CLs delete duplicated PreparePartitionsForUpdate
and Cleanup from BootControlInterface so that BootControlAndroid remains
a thin wrapper of the HAL (+GetPartitionDevice, which exists before
dynamic partitions.)
Test: update_engine_unittests
Change-Id: Ifc2aa2ee8a63ef581c8ebc562ec158794ac51dfd
diff --git a/common/boot_control_stub.h b/common/boot_control_stub.h
index f2973a2..3307813 100644
--- a/common/boot_control_stub.h
+++ b/common/boot_control_stub.h
@@ -17,9 +17,11 @@
#ifndef UPDATE_ENGINE_COMMON_BOOT_CONTROL_STUB_H_
#define UPDATE_ENGINE_COMMON_BOOT_CONTROL_STUB_H_
+#include <memory>
#include <string>
#include "update_engine/common/boot_control_interface.h"
+#include "update_engine/common/dynamic_partition_control_interface.h"
namespace chromeos_update_engine {
@@ -32,7 +34,7 @@
// implementation is in use.
class BootControlStub : public BootControlInterface {
public:
- BootControlStub() = default;
+ BootControlStub();
~BootControlStub() = default;
// BootControlInterface overrides.
@@ -49,8 +51,11 @@
const DeltaArchiveManifest& manifest,
bool update_metadata) override;
void Cleanup() override;
+ DynamicPartitionControlInterface* GetDynamicPartitionControl() override;
private:
+ std::unique_ptr<DynamicPartitionControlInterface> dynamic_partition_control_;
+
DISALLOW_COPY_AND_ASSIGN(BootControlStub);
};