16a3f9906SP Arun Kumar Reddy #pragma once 26a3f9906SP Arun Kumar Reddy 36a3f9906SP Arun Kumar Reddy #include <xyz/openbmc_project/Software/ApplyTime/server.hpp> 4*11085f1bSRajeev Ranjan #include <xyz/openbmc_project/Software/MultipartUpdate/server.hpp> 56a3f9906SP Arun Kumar Reddy #include <xyz/openbmc_project/Software/Update/server.hpp> 66a3f9906SP Arun Kumar Reddy 76a3f9906SP Arun Kumar Reddy namespace pldm 86a3f9906SP Arun Kumar Reddy { 96a3f9906SP Arun Kumar Reddy 106a3f9906SP Arun Kumar Reddy namespace fw_update 116a3f9906SP Arun Kumar Reddy { 126a3f9906SP Arun Kumar Reddy 136a3f9906SP Arun Kumar Reddy class UpdateManager; 146a3f9906SP Arun Kumar Reddy 156a3f9906SP Arun Kumar Reddy using UpdateIntf = sdbusplus::server::object_t< 16*11085f1bSRajeev Ranjan sdbusplus::xyz::openbmc_project::Software::server::Update, 17*11085f1bSRajeev Ranjan sdbusplus::xyz::openbmc_project::Software::server::MultipartUpdate>; 186a3f9906SP Arun Kumar Reddy using ApplyTimeIntf = 196a3f9906SP Arun Kumar Reddy sdbusplus::xyz::openbmc_project::Software::server::ApplyTime; 206a3f9906SP Arun Kumar Reddy 216a3f9906SP Arun Kumar Reddy /** @class Update 226a3f9906SP Arun Kumar Reddy * 236a3f9906SP Arun Kumar Reddy * Concrete implementation of xyz.openbmc_project.Software.Update D-Bus 246a3f9906SP Arun Kumar Reddy * interface 256a3f9906SP Arun Kumar Reddy */ 266a3f9906SP Arun Kumar Reddy class Update : public UpdateIntf 276a3f9906SP Arun Kumar Reddy { 286a3f9906SP Arun Kumar Reddy public: 296a3f9906SP Arun Kumar Reddy /** @brief Constructor 306a3f9906SP Arun Kumar Reddy * 316a3f9906SP Arun Kumar Reddy * @param[in] bus - Bus to attach to 326a3f9906SP Arun Kumar Reddy * @param[in] objPath - D-Bus object path 336a3f9906SP Arun Kumar Reddy * @param[in] updateManager - Reference to FW update manager 346a3f9906SP Arun Kumar Reddy */ Update(sdbusplus::bus_t & bus,const std::string & path,UpdateManager * updateManager)3577435baaSPatrick Williams Update(sdbusplus::bus_t& bus, const std::string& path, 366a3f9906SP Arun Kumar Reddy UpdateManager* updateManager) : 376a3f9906SP Arun Kumar Reddy UpdateIntf(bus, path.c_str()), updateManager(updateManager), 386a3f9906SP Arun Kumar Reddy objPath(path) 396a3f9906SP Arun Kumar Reddy {} 406a3f9906SP Arun Kumar Reddy 416a3f9906SP Arun Kumar Reddy virtual sdbusplus::message::object_path startUpdate( 426a3f9906SP Arun Kumar Reddy sdbusplus::message::unix_fd image, 436a3f9906SP Arun Kumar Reddy ApplyTimeIntf::RequestedApplyTimes applyTime) override; 446a3f9906SP Arun Kumar Reddy 456a3f9906SP Arun Kumar Reddy ~Update() noexcept override = default; 466a3f9906SP Arun Kumar Reddy 476a3f9906SP Arun Kumar Reddy private: 486a3f9906SP Arun Kumar Reddy UpdateManager* updateManager; 496a3f9906SP Arun Kumar Reddy const std::string objPath; 506a3f9906SP Arun Kumar Reddy std::stringstream imageStream; 516a3f9906SP Arun Kumar Reddy }; 526a3f9906SP Arun Kumar Reddy 536a3f9906SP Arun Kumar Reddy } // namespace fw_update 546a3f9906SP Arun Kumar Reddy 556a3f9906SP Arun Kumar Reddy } // namespace pldm 56