#pragma once #include #include #include namespace phosphor { namespace fan { namespace control { class Zone; constexpr auto propertyNamePos = 0; constexpr auto propertyInterfacePos = 1; constexpr auto propertyPathPos = 2; constexpr auto propertyValuePos = 3; // TODO openbmc/openbmc#1769: Support more property types. using ConditionProperty = std::tuple; constexpr auto conditionTypePos = 0; constexpr auto conditionPropertyListPos = 1; using Condition = std::tuple>; using PropertyVariantType = sdbusplus::message::variant; constexpr auto fanNamePos = 0; constexpr auto sensorListPos = 1; using FanDefinition = std::tuple>; constexpr auto intfPos = 0; constexpr auto propPos = 1; using Group = std::map>; using Handler = std::function; using Action = std::function; constexpr auto signaturePos = 0; constexpr auto handlerObjPos = 1; using PropertyChange = std::tuple; constexpr auto groupPos = 0; constexpr auto actionPos = 1; constexpr auto propChangeListPos = 2; using SetSpeedEvent = std::tuple>; constexpr auto eventGroupPos = 0; constexpr auto eventHandlerPos = 1; constexpr auto eventActionPos = 2; using EventData = std::tuple; constexpr auto zoneNumPos = 0; constexpr auto fullSpeedPos = 1; constexpr auto floorSpeedPos = 2; constexpr auto fanListPos = 3; constexpr auto setSpeedEventsPos = 4; using ZoneDefinition = std::tuple, std::vector>; constexpr auto conditionListPos = 0; constexpr auto zoneListPos = 1; using ZoneGroup = std::tuple, std::vector>; } } }