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