xref: /openbmc/phosphor-modbus/rtu/device/reservoir_pump_unit.hpp (revision 7184805ae4ede906935133e3e0f8ee2468bc781b)
1 #pragma once
2 
3 #include "base_device.hpp"
4 
5 #include <unordered_set>
6 
7 namespace phosphor::modbus::rtu::device
8 {
9 
10 namespace config
11 {
12 
13 struct DeviceFactoryConfig;
14 
15 } // namespace config
16 
17 class ReservoirPumpUnit : public BaseDevice
18 {
19   public:
20     explicit ReservoirPumpUnit(sdbusplus::async::context& ctx,
21                                const config::Config& config,
22                                PortIntf& serialPort, EventIntf::Events& events);
23 
24     static auto getInterfaces() -> std::unordered_set<std::string>;
25 
26     static auto getConfig(sdbusplus::async::context& ctx,
27                           const sdbusplus::message::object_path& objectPath,
28                           const std::string& interfaceName)
29         -> sdbusplus::async::task<std::optional<config::DeviceFactoryConfig>>;
30 };
31 
32 } // namespace phosphor::modbus::rtu::device
33