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