xref: /openbmc/pldm/common/types.hpp (revision a2b964f2)
1 #pragma once
2 
3 #include <stdint.h>
4 
5 #include <set>
6 #include <string>
7 #include <variant>
8 #include <vector>
9 
10 namespace pldm
11 {
12 
13 using Request = std::vector<uint8_t>;
14 using Response = std::vector<uint8_t>;
15 
16 namespace dbus
17 {
18 
19 using ObjectPath = std::string;
20 using Service = std::string;
21 using Interface = std::string;
22 using Interfaces = std::vector<std::string>;
23 using Property = std::string;
24 using PropertyType = std::string;
25 using Value = std::variant<bool, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
26                            int64_t, uint64_t, double, std::string>;
27 
28 } // namespace dbus
29 
30 namespace pdr
31 {
32 
33 using EID = uint8_t;
34 using TerminusHandle = uint16_t;
35 using TerminusID = uint8_t;
36 using SensorID = uint16_t;
37 using EntityType = uint16_t;
38 using EntityInstance = uint16_t;
39 using ContainerID = uint16_t;
40 using StateSetId = uint16_t;
41 using CompositeCount = uint8_t;
42 using SensorOffset = uint8_t;
43 using EventState = uint8_t;
44 
45 //!< Subset of the State Set that is supported by a effecter/sensor
46 using PossibleStates = std::set<uint8_t>;
47 //!< Subset of the State Set that is supported by each effecter/sensor in a
48 //!< composite efffecter/sensor
49 using CompositeSensorStates = std::vector<PossibleStates>;
50 using EntityInfo = std::tuple<ContainerID, EntityType, EntityInstance>;
51 using SensorInfo = std::tuple<EntityInfo, CompositeSensorStates>;
52 
53 } // namespace pdr
54 
55 } // namespace pldm
56