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 using namespace pldm::utils;
12 
13 namespace pldm
14 {
15 namespace responder
16 {
17 namespace bios
18 {
19 
20 BIOSAttribute::BIOSAttribute(const Json& entry,
21                              DBusHandler* const dbusHandler) :
22     name(entry.at("attribute_name")),
23     readOnly(false), displayName(entry.at("displayName")),
24     helpText(entry.at("helpText")), dbusHandler(dbusHandler)
25 {
26     try
27     {
28         readOnly = entry.at("readOnly");
29     }
30     catch (const std::exception& e)
31     {
32         // No action required, readOnly is initialised to false
33     }
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 std::optional<DBusMapping> BIOSAttribute::getDBusMap()
51 {
52     return dBusMap;
53 }
54 
55 } // namespace bios
56 } // namespace responder
57 } // namespace pldm
58