blob: c613f0e6a21a58e6df6e5e084f235299b9d6431f [file] [log] [blame]
#pragma once
#include "flags.hpp"
#include "progress.hpp"
#include <cstdint>
#include <string>
namespace host_tool
{
class DataInterface
{
public:
virtual ~DataInterface() = default;
/**
* Given an open session to either /flash/image, /flash/tarball, or
* /flash/hash, this method will configure, and send the data, but not close
* the session.
*
* @param[in] input - path to file to send.
* @param[in] session - the session ID to use.
* @return bool on success.
*/
virtual bool sendContents(const std::string& input,
std::uint16_t session) = 0;
/**
* Return the supported data interface for this.
*
* @return the enum value corresponding to the supported type.
*/
virtual ipmi_flash::FirmwareFlags::UpdateFlags supportedType() const = 0;
};
} // namespace host_tool