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")),
20     readOnly(false), displayName(entry.at("displayName")),
21     helpText(entry.at("helpText")), dbusHandler(dbusHandler)
22 {
23     try
24     {
25         readOnly = entry.at("readOnly");
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 whill 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