xref: /openbmc/phosphor-logging/extensions/openpower-pels/dbus_types.hpp (revision 931cafee49133223a66352d6a0571e60c288746b)
1 #pragma once
2 
3 #include <sdbusplus/message.hpp>
4 
5 #include <cstdint>
6 #include <map>
7 #include <string>
8 #include <variant>
9 #include <vector>
10 
11 namespace openpower::pels
12 {
13 
14 using BiosAttributes = std::map<
15     std::string,
16     std::tuple<
17         std::string, bool, std::string, std::string, std::string,
18         std::variant<int64_t, std::string>, std::variant<int64_t, std::string>,
19         std::vector<std::tuple<std::string, std::variant<int64_t, std::string>,
20                                std::string>>>>;
21 
22 using DBusValue = std::variant<
23     std::string, bool, std::vector<uint8_t>, std::vector<std::string>,
24     std::vector<std::tuple<std::string, std::string, std::string>>,
25     std::tuple<std::vector<uint8_t>, std::vector<uint8_t>>, BiosAttributes>;
26 using DBusProperty = std::string;
27 using DBusInterface = std::string;
28 using DBusService = std::string;
29 using DBusPath = std::string;
30 using DBusInterfaceList = std::vector<DBusInterface>;
31 using DBusPathList = std::vector<DBusPath>;
32 using DBusPropertyMap = std::map<DBusProperty, DBusValue>;
33 using DBusInterfaceMap = std::map<DBusInterface, DBusPropertyMap>;
34 using DBusObjectMap =
35     std::map<sdbusplus::message::object_path, DBusInterfaceMap>;
36 using DBusSubTree =
37     std::map<DBusPath, std::map<DBusService, DBusInterfaceList>>;
38 
39 } // namespace openpower::pels
40