1 #pragma once
2 
3 #include <sdbusplus/bus.hpp>
4 #include <xyz/openbmc_project/Control/Host/server.hpp>
5 
6 namespace phosphor
7 {
8 namespace host
9 {
10 
11 /** @class Host
12  *  @brief OpenBMC control host interface implementation.
13  *  @details A concrete implementation for xyz.openbmc_project.Control.Host
14  *  DBus API.
15  */
16 class Host : public sdbusplus::server::object::object<
17                 sdbusplus::xyz::openbmc_project::Control::server::Host>
18 {
19     public:
20         /** @brief Constructs Host Control Interface
21          *
22          * @param[in] bus       - The Dbus bus object
23          * @param[in] objPath   - The Dbus object path
24          */
25         Host(sdbusplus::bus::bus& bus,
26              const char* objPath) :
27              sdbusplus::server::object::object<
28                 sdbusplus::xyz::openbmc_project::Control::server::Host>(
29                         bus, objPath)
30         {}
31 
32         /** @brief Send input command to host
33          *
34          * Note that the command will be queued in a FIFO if other commands
35          * to the host have yet to be run
36          *
37          * @param[in] command       - Input command to execute
38          */
39         void execute(Command command) override;
40 };
41 
42 } // namespace host
43 } // namespace phosphor
44