xref: /openbmc/phosphor-ipmi-flash/tools/bt.hpp (revision 42a44c281cce08be0ca6251955f4fb73d30c8ced)
1 #pragma once
2 
3 #include "interface.hpp"
4 #include "internal/sys.hpp"
5 #include "progress.hpp"
6 
7 #include <ipmiblob/blob_interface.hpp>
8 
9 namespace host_tool
10 {
11 
12 class BtDataHandler : public DataInterface
13 {
14   public:
BtDataHandler(ipmiblob::BlobInterface * blob,ProgressInterface * progress,const internal::Sys * sys=& internal::sys_impl)15     BtDataHandler(ipmiblob::BlobInterface* blob, ProgressInterface* progress,
16                   const internal::Sys* sys = &internal::sys_impl) :
17         blob(blob), progress(progress), sys(sys) {};
18 
19     bool sendContents(const std::string& input, std::uint16_t session) override;
supportedType() const20     ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const override
21     {
22         return ipmi_flash::FirmwareFlags::UpdateFlags::ipmi;
23     }
24 
25   private:
26     ipmiblob::BlobInterface* blob;
27     ProgressInterface* progress;
28     const internal::Sys* sys;
29 };
30 
31 } // namespace host_tool
32