xref: /openbmc/phosphor-ipmi-flash/tools/interface.hpp (revision 84778b8d630ecfb7dbac7ca98ae3e9778ae8cdde)
1 #pragma once
2 
3 #include "flags.hpp"
4 
5 #include <cstdint>
6 #include <string>
7 
8 namespace host_tool
9 {
10 
11 class DataInterface
12 {
13   public:
14     virtual ~DataInterface() = default;
15 
16     /**
17      * Given an open session to either /flash/image, /flash/tarball, or
18      * /flash/hash, this method will configure, and send the data, but not close
19      * the session.
20      *
21      * @param[in] input - path to file to send.
22      * @param[in] session - the session ID to use.
23      * @return bool on success.
24      */
25     virtual bool sendContents(const std::string& input,
26                               std::uint16_t session) = 0;
27 
28     /**
29      * Return the supported data interface for this.
30      *
31      * @return the enum value corresponding to the supported type.
32      */
33     virtual ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const = 0;
34 };
35 
36 } // namespace host_tool
37