1 #pragma once
2 
3 #include "xyz/openbmc_project/Common/TFTP/server.hpp"
4 
5 #include <sdbusplus/bus.hpp>
6 
7 #include <string>
8 
9 namespace phosphor
10 {
11 namespace software
12 {
13 namespace manager
14 {
15 
16 using DownloadInherit = sdbusplus::server::object::object<
17     sdbusplus::xyz::openbmc_project::Common::server::TFTP>;
18 
19 /** @class Download
20  *  @brief OpenBMC download software management implementation.
21  *  @details A concrete implementation for xyz.openbmc_project.Common.TFTP
22  *  DBus API.
23  */
24 class Download : public DownloadInherit
25 {
26   public:
27     /** @brief Constructs Download Software Manager
28      *
29      * @param[in] bus       - The Dbus bus object
30      * @param[in] objPath   - The Dbus object path
31      */
32     Download(sdbusplus::bus::bus& bus, const std::string& objPath) :
33         DownloadInherit(bus, (objPath).c_str()){};
34 
35     /**
36      * @brief Download the specified image via TFTP
37      *
38      * @param[in] fileName      - The name of the file to transfer.
39      * @param[in] serverAddress - The TFTP Server IP Address.
40      **/
41     void downloadViaTFTP(std::string fileName,
42                          std::string serverAddress) override;
43 };
44 
45 } // namespace manager
46 } // namespace software
47 } // namespace phosphor
48