Allow null SystemState in the DownloadAction.
The SystemState is only defined in the libupdate_engine library, so
it may not be defined for other users of libpayload_consumer. This
patch allows to pass a nullptr for the SystemState while explicitly
passing the other classes defined in libpayload_consumer upon
construction.
Bug: None
TEST=FEATURES=test emerge-link update_engine
TEST=`mmma system/update_engine` on aosp_arm-eng and edison-eng
Change-Id: I535d0184a85e0a167ac65875f6e7c07832efbf40
diff --git a/payload_consumer/download_action.h b/payload_consumer/download_action.h
index 4074fdd..d000c67 100644
--- a/payload_consumer/download_action.h
+++ b/payload_consumer/download_action.h
@@ -27,6 +27,7 @@
#include <curl/curl.h>
#include "update_engine/common/action.h"
+#include "update_engine/common/boot_control_interface.h"
#include "update_engine/common/http_fetcher.h"
#include "update_engine/payload_consumer/delta_performer.h"
#include "update_engine/payload_consumer/install_plan.h"
@@ -69,8 +70,11 @@
public:
// Takes ownership of the passed in HttpFetcher. Useful for testing.
// A good calling pattern is:
- // DownloadAction(prefs, system_state, new WhateverHttpFetcher);
+ // DownloadAction(prefs, boot_contol, hardware, system_state,
+ // new WhateverHttpFetcher);
DownloadAction(PrefsInterface* prefs,
+ BootControlInterface* boot_control,
+ HardwareInterface* hardware,
SystemState* system_state,
HttpFetcher* http_fetcher);
~DownloadAction() override;
@@ -128,8 +132,10 @@
// The InstallPlan passed in
InstallPlan install_plan_;
- // Update Engine preference store.
+ // SystemState required pointers.
PrefsInterface* prefs_;
+ BootControlInterface* boot_control_;
+ HardwareInterface* hardware_;
// Global context for the system.
SystemState* system_state_;