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