1 #pragma once 2 3 #include <sdbusplus/bus.hpp> 4 #include "xyz/openbmc_project/Software/Version/server.hpp" 5 #include "xyz/openbmc_project/Common/FilePath/server.hpp" 6 7 namespace openpower 8 { 9 namespace software 10 { 11 namespace updater 12 { 13 14 using VersionInherit = sdbusplus::server::object::object< 15 sdbusplus::xyz::openbmc_project::Software::server::Version, 16 sdbusplus::xyz::openbmc_project::Common::server::FilePath>; 17 18 /** @class Version 19 * @brief OpenBMC version software management implementation. 20 * @details A concrete implementation for xyz.openbmc_project.Software.Version 21 * DBus API. 22 */ 23 class Version : public VersionInherit 24 { 25 public: 26 /** @brief Constructs Version Software Manager. 27 * 28 * @param[in] bus - The Dbus bus object 29 * @param[in] objPath - The Dbus object path 30 * @param[in] versionId - The version identifier 31 * @param[in] versionPurpose - The version purpose 32 * @param[in] filePath - The image filesystem path 33 */ 34 Version(sdbusplus::bus::bus& bus, 35 const std::string& objPath, 36 const std::string& versionId, 37 VersionPurpose versionPurpose, 38 const std::string& filePath) : VersionInherit( 39 bus, (objPath).c_str(), true) 40 { 41 // Set properties. 42 purpose(versionPurpose); 43 version(versionId); 44 path(filePath); 45 46 // Emit deferred signal. 47 emit_object_added(); 48 } 49 50 /** 51 * @brief Read the manifest file to get the value of the key. 52 * 53 * @param[in] filePath - The path to file which contains the value 54 * of keys. 55 * @param[in] keys - A map of keys with empty values. 56 * 57 * @return The map of keys with filled values. 58 **/ 59 static std::map<std::string, std::string> getValue( 60 const std::string& filePath, 61 std::map<std::string, std::string> keys); 62 63 /** 64 * @brief Get the Version id. 65 * 66 * @param[in] version - The image version. 67 * 68 * @return The id. 69 */ 70 static std::string getId(const std::string& version); 71 }; 72 73 } // namespace updater 74 } // namespace software 75 } // namespace openpower 76