/* // Copyright (c) 2019 Intel Corporation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. */ #pragma once #include #include #include namespace pid_control { /* * DbusPassiveRedundancy monitors the fan redundancy interface via dbus match * for changes. When the "Status" property changes to Failed, all sensors in * the interface's "Collection" property are added to the failed member. This * set can then be queried by a sensor to see if they are part of a failed * redundancy collection. When this happens, they get marked as failed. */ class DbusPassiveRedundancy { public: explicit DbusPassiveRedundancy(sdbusplus::bus_t& bus); const std::set& getFailed(void); private: void populateFailures(void); sdbusplus::bus::match_t match; std::set failed; sdbusplus::bus_t& passiveBus; }; } // namespace pid_control