1 #include "bios_attribute.hpp" 2 3 #include "bios_config.hpp" 4 #include "common/utils.hpp" 5 6 #include <variant> 7 8 using namespace pldm::utils; 9 10 namespace pldm 11 { 12 namespace responder 13 { 14 namespace bios 15 { 16 17 BIOSAttribute::BIOSAttribute(const Json& entry, 18 DBusHandler* const dbusHandler) : 19 name(entry.at("attribute_name")), readOnly(false), 20 displayName(entry.at("display_name")), helpText(entry.at("help_text")), 21 dbusHandler(dbusHandler) 22 { 23 try 24 { 25 readOnly = entry.at("read_only"); 26 } 27 catch (const std::exception&) 28 { 29 // No action required, readOnly is initialised to false 30 } 31 32 try 33 { 34 std::string objectPath = entry.at("dbus").at("object_path"); 35 std::string interface = entry.at("dbus").at("interface"); 36 std::string propertyName = entry.at("dbus").at("property_name"); 37 std::string propertyType = entry.at("dbus").at("property_type"); 38 39 dBusMap = {objectPath, interface, propertyName, propertyType}; 40 } 41 catch (const std::exception&) 42 { 43 // No action required, dBusMap will have no value 44 } 45 } 46 47 std::optional<DBusMapping> BIOSAttribute::getDBusMap() 48 { 49 return dBusMap; 50 } 51 52 } // namespace bios 53 } // namespace responder 54 } // namespace pldm 55