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