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