bmc: firmware handler owns update mechanism
The firmware handler owns the update mechanism object. The update
mechanism is currently unused.
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I5051ee6597f66de941ad7c1f209f6cb7e3d5a835
diff --git a/firmware_handler.hpp b/firmware_handler.hpp
index e997c71..73a0668 100644
--- a/firmware_handler.hpp
+++ b/firmware_handler.hpp
@@ -4,6 +4,7 @@
#include "data_handler.hpp"
#include "image_handler.hpp"
+#include "update.hpp"
#include "util.hpp"
#include "verify.hpp"
@@ -105,11 +106,13 @@
* @param[in] firmwares - list of firmware blob_ids to support.
* @param[in] transports - list of transports to support.
* @param[in] verification - pointer to object for triggering verification
+ * @param[in] update - point to object for triggering the update
*/
static std::unique_ptr<GenericBlobInterface> CreateFirmwareBlobHandler(
const std::vector<HandlerPack>& firmwares,
const std::vector<DataHandlerPack>& transports,
- std::unique_ptr<VerificationInterface> verification);
+ std::unique_ptr<VerificationInterface> verification,
+ std::unique_ptr<UpdateInterface> update);
/**
* Create a FirmwareBlobHandler.
@@ -119,17 +122,19 @@
* @param[in] transports - list of transport types and their handlers
* @param[in] bitmask - bitmask of transports to support
* @param[in] verification - pointer to object for triggering verification
+ * @param[in] update - point to object for triggering the update
*/
FirmwareBlobHandler(const std::vector<HandlerPack>& firmwares,
const std::vector<std::string>& blobs,
const std::vector<DataHandlerPack>& transports,
std::uint16_t bitmask,
- std::unique_ptr<VerificationInterface> verification) :
+ std::unique_ptr<VerificationInterface> verification,
+ std::unique_ptr<UpdateInterface> update) :
handlers(firmwares),
blobIDs(blobs), transports(transports), bitmask(bitmask),
activeImage(activeImageBlobId), activeHash(activeHashBlobId),
verifyImage(verifyBlobId), lookup(), state(UpdateState::notYetStarted),
- verification(std::move(verification))
+ verification(std::move(verification)), update(std::move(update))
{
}
~FirmwareBlobHandler() = default;
@@ -193,6 +198,8 @@
std::unique_ptr<VerificationInterface> verification;
+ std::unique_ptr<UpdateInterface> update;
+
/** Temporary variable to track whether a blob is open. */
bool fileOpen = false;
};