|  | #pragma once | 
|  |  | 
|  | #include "xyz/openbmc_project/Network/SystemConfiguration/server.hpp" | 
|  |  | 
|  | #include <sdbusplus/bus.hpp> | 
|  | #include <sdbusplus/server/object.hpp> | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | namespace phosphor | 
|  | { | 
|  | namespace network | 
|  | { | 
|  |  | 
|  | using SystemConfigIntf = | 
|  | sdbusplus::xyz::openbmc_project::Network::server::SystemConfiguration; | 
|  |  | 
|  | using Iface = | 
|  | sdbusplus::server::object::object<SystemConfigIntf>; | 
|  |  | 
|  | class Manager; // forward declaration of network manager. | 
|  |  | 
|  | /** @class SystemConfiguration | 
|  | *  @brief Network system configuration. | 
|  | *  @details A concrete implementation for the | 
|  | *  xyz.openbmc_project.Network.SystemConfiguration DBus API. | 
|  | */ | 
|  | class SystemConfiguration : public Iface | 
|  | { | 
|  | public: | 
|  | SystemConfiguration() = default; | 
|  | SystemConfiguration(const SystemConfiguration&) = delete; | 
|  | SystemConfiguration& operator=(const SystemConfiguration&) = delete; | 
|  | SystemConfiguration(SystemConfiguration&&) = delete; | 
|  | SystemConfiguration& operator=(SystemConfiguration&&) = delete; | 
|  | virtual ~SystemConfiguration() = default; | 
|  |  | 
|  | /** @brief Constructor to put object onto bus at a dbus path. | 
|  | *  @param[in] bus - Bus to attach to. | 
|  | *  @param[in] objPath - Path to attach at. | 
|  | *  @param[in] parent - Parent object. | 
|  | */ | 
|  | SystemConfiguration(sdbusplus::bus::bus& bus, | 
|  | const std::string& objPath, | 
|  | Manager& parent); | 
|  |  | 
|  | /** @brief set the hostname of the system. | 
|  | *  @param[in] name - host name of the system. | 
|  | */ | 
|  | std::string hostName(std::string name) override; | 
|  |  | 
|  | /** @brief set the default gateway of the system. | 
|  | *  @param[in] gateway - default gateway of the system. | 
|  | */ | 
|  | std::string defaultGateway(std::string gateway) override; | 
|  |  | 
|  | using SystemConfigIntf::defaultGateway; | 
|  |  | 
|  | private: | 
|  |  | 
|  | /** @brief get the hostname from the system by doing | 
|  | *         dbus call to hostnamed service. | 
|  | */ | 
|  | std::string getHostNameFromSystem() const; | 
|  |  | 
|  | /** @brief Persistent sdbusplus DBus bus connection. */ | 
|  | sdbusplus::bus::bus& bus; | 
|  |  | 
|  | /** @brief Network Manager object. */ | 
|  | Manager& manager; | 
|  |  | 
|  | }; | 
|  |  | 
|  | } // namespace network | 
|  | } // namespace phosphor |