xref: /openbmc/phosphor-ipmi-flash/tools/bt.hpp (revision cf9b2195)
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:
15     BtDataHandler(ipmiblob::BlobInterface* blob, ProgressInterface* progress,
16                   const internal::Sys* sys = &internal::sys_impl) :
17         blob(blob),
18         progress(progress), sys(sys){};
19 
20     bool sendContents(const std::string& input, std::uint16_t session) override;
21     ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const override
22     {
23         return ipmi_flash::FirmwareFlags::UpdateFlags::ipmi;
24     }
25 
26   private:
27     ipmiblob::BlobInterface* blob;
28     ProgressInterface* progress;
29     const internal::Sys* sys;
30 };
31 
32 } // namespace host_tool
33