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