Changing flashall to parse fastboot-info.txt
Test: tested on Raven
Change-Id: I9f26bf6025a0a6318f84be929091f4e82bd87556
diff --git a/fastboot/task.h b/fastboot/task.h
index 801a0f6..34e3e92 100644
--- a/fastboot/task.h
+++ b/fastboot/task.h
@@ -26,10 +26,20 @@
struct Image;
using ImageEntry = std::pair<const Image*, std::string>;
+class FlashTask;
+class RebootTask;
+class UpdateSuperTask;
+class WipeTask;
+
class Task {
public:
Task() = default;
virtual void Run() = 0;
+ virtual FlashTask* AsFlashTask() { return nullptr; }
+ virtual RebootTask* AsRebootTask() { return nullptr; }
+ virtual UpdateSuperTask* AsUpdateSuperTask() { return nullptr; }
+ virtual WipeTask* AsWipeTask() { return nullptr; }
+
virtual ~Task() = default;
};
@@ -37,7 +47,12 @@
public:
FlashTask(const std::string& slot, const std::string& pname, const std::string& fname,
const bool apply_vbmeta);
+ virtual FlashTask* AsFlashTask() override { return this; }
+ std::string GetPartition() { return pname_; }
+ std::string GetImageName() { return fname_; }
+ std::string GetPartitionAndSlot();
+ std::string GetSlot() { return slot_; }
void Run() override;
private:
@@ -51,6 +66,7 @@
public:
RebootTask(const FlashingPlan* fp);
RebootTask(const FlashingPlan* fp, const std::string& reboot_target);
+ virtual RebootTask* AsRebootTask() override { return this; }
void Run() override;
private:
@@ -62,8 +78,10 @@
public:
FlashSuperLayoutTask(const std::string& super_name, std::unique_ptr<SuperFlashHelper> helper,
SparsePtr sparse_layout, uint64_t super_size);
- static std::unique_ptr<FlashSuperLayoutTask> Initialize(FlashingPlan* fp,
+ static std::unique_ptr<FlashSuperLayoutTask> Initialize(const FlashingPlan* fp,
std::vector<ImageEntry>& os_images);
+ static std::unique_ptr<FlashSuperLayoutTask> InitializeFromTasks(
+ const FlashingPlan* fp, std::vector<std::unique_ptr<Task>>& tasks);
using ImageEntry = std::pair<const Image*, std::string>;
void Run() override;
@@ -77,6 +95,8 @@
class UpdateSuperTask : public Task {
public:
UpdateSuperTask(const FlashingPlan* fp);
+ virtual UpdateSuperTask* AsUpdateSuperTask() override { return this; }
+
void Run() override;
private:
@@ -109,6 +129,8 @@
class WipeTask : public Task {
public:
WipeTask(const FlashingPlan* fp, const std::string& pname);
+ virtual WipeTask* AsWipeTask() override { return this; }
+
void Run() override;
private: