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