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