blob: 6bad7db1c9c70a585d81345dbc91469ff81248b7 [file] [log] [blame]
Patrick Venturecf2d1b12018-12-11 18:22:36 -08001#pragma once
2
3#include <cstdint>
4#include <vector>
5
Patrick Venture9b534f02018-12-13 16:10:02 -08006namespace host_tool
7{
8
Patrick Venturecf2d1b12018-12-11 18:22:36 -08009class IpmiInterface
10{
11 public:
12 virtual ~IpmiInterface() = default;
13
14 /**
15 * Send an IPMI packet to the BMC.
16 *
17 * @param[in] data - a vector of the IPMI packet contents.
Patrick Venture035bbbb2018-12-12 14:59:52 -080018 * @return the bytes returned.
19 * @throws IpmiException on failure.
Patrick Venturecf2d1b12018-12-11 18:22:36 -080020 */
Patrick Venture035bbbb2018-12-12 14:59:52 -080021 virtual std::vector<std::uint8_t>
Patrick Ventureecfd3002018-12-14 13:57:28 -080022 sendPacket(std::vector<std::uint8_t>& data) = 0;
Patrick Venturecf2d1b12018-12-11 18:22:36 -080023};
Patrick Venture9b534f02018-12-13 16:10:02 -080024
25} // namespace host_tool