#pragma once #include #include #include #include #include "timer.hpp" 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; constexpr auto targetInterfacePos = 2; using FanDefinition = std::tuple, std::string>; constexpr auto intfPos = 0; constexpr auto propPos = 1; using Group = std::map>; using Handler = std::function; using Action = std::function; constexpr auto pcPathPos = 0; constexpr auto pcIntfPos = 1; constexpr auto pcPropPos = 2; constexpr auto pcValuePos = 3; using PrecondGroup = std::tuple; constexpr auto namePos = 0; constexpr auto hasOwnerPos = 1; using Service = std::tuple; constexpr auto intervalPos = 0; constexpr auto typePos = 1; using TimerType = phosphor::fan::util::Timer::TimerType; using TimerConf = std::tuple; constexpr auto sigMatchPos = 0; constexpr auto sigHandlerPos = 1; using Signal = std::tuple; constexpr auto groupPos = 0; constexpr auto actionsPos = 1; constexpr auto timerConfPos = 2; constexpr auto signalsPos = 3; using SetSpeedEvent = std::tuple, TimerConf, std::vector>; constexpr auto eventGroupPos = 0; constexpr auto eventMatchPos = 1; constexpr auto eventHandlerPos = 2; constexpr auto eventActionsPos = 3; using EventData = std::tuple>; constexpr auto timerEventDataPos = 0; constexpr auto timerTimerPos = 1; using TimerEvent = std::tuple, std::unique_ptr>; constexpr auto signalEventDataPos = 0; constexpr auto signalMatchPos = 1; using SignalEvent = std::tuple, std::unique_ptr>; constexpr auto zoneNumPos = 0; constexpr auto fullSpeedPos = 1; constexpr auto floorSpeedPos = 2; constexpr auto incDelayPos = 3; constexpr auto decIntervalPos = 4; constexpr auto fanListPos = 5; constexpr auto setSpeedEventsPos = 6; using ZoneDefinition = std::tuple, std::vector>; constexpr auto conditionListPos = 0; constexpr auto zoneListPos = 1; using ZoneGroup = std::tuple, std::vector>; } } }