#pragma once #include "base_port.hpp" #include #include #include namespace phosphor::modbus::rtu::port { namespace config { enum class PortType { usb, unknown }; struct PortFactoryConfig : public Config { PortType portType = PortType::unknown; virtual ~PortFactoryConfig() = default; }; } // namespace config class PortFactory { public: static auto getInterfaces() -> std::vector; static auto getConfig(sdbusplus::async::context& ctx, const sdbusplus::message::object_path& objectPath, const std::string& interfaceName) -> sdbusplus::async::task>; static auto create(sdbusplus::async::context& ctx, const config::PortFactoryConfig& config) -> std::unique_ptr; }; } // namespace phosphor::modbus::rtu::port