xref: /openbmc/phosphor-ipmi-flash/tools/net.hpp (revision 42a44c281cce08be0ca6251955f4fb73d30c8ced)
1 #pragma once
2 
3 #include "interface.hpp"
4 #include "internal/sys.hpp"
5 #include "progress.hpp"
6 
7 #include <unistd.h>
8 
9 #include <ipmiblob/blob_interface.hpp>
10 #include <stdplus/handle/managed.hpp>
11 
12 #include <cstdint>
13 #include <string>
14 
15 namespace host_tool
16 {
17 
18 class NetDataHandler : public DataInterface
19 {
20   public:
NetDataHandler(ipmiblob::BlobInterface * blob,ProgressInterface * progress,const std::string & host,const std::string & port,const internal::Sys * sys=& internal::sys_impl)21     NetDataHandler(ipmiblob::BlobInterface* blob, ProgressInterface* progress,
22                    const std::string& host, const std::string& port,
23                    const internal::Sys* sys = &internal::sys_impl) :
24         blob(blob), progress(progress), host(host), port(port), sys(sys) {};
25 
26     bool sendContents(const std::string& input, std::uint16_t session) override;
supportedType() const27     ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const override
28     {
29         return ipmi_flash::FirmwareFlags::UpdateFlags::net;
30     }
31 
32   private:
33     ipmiblob::BlobInterface* blob;
34     ProgressInterface* progress;
35     std::string host;
36     std::string port;
37     const internal::Sys* sys;
38 };
39 
40 } // namespace host_tool
41