#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_H_
#include <cstdint>
#include <memory>
#include <vector>

#include "absl/status/statusor.h"
#include "absl/time/time.h"

namespace milotic_tlbmc {

// FRU data read from I2C.
struct I2cFruInfo {
  // I2C bus number.
  uint32_t bus;
  // FRU address.
  uint32_t address;
  // Raw FRU data.
  std::vector<uint8_t> data;
};

// Interface for reading FRU data.
class FruScanner {
 public:
  virtual ~FruScanner() = default;
  // Reads all FRU data from I2C.
  virtual absl::StatusOr<std::vector<std::unique_ptr<I2cFruInfo>>>
  ScanAllI2cFrus() = 0;
  virtual absl::StatusOr<std::unique_ptr<I2cFruInfo>> GetI2cFruInfoFromBus(
      int bus, int address, absl::Duration delay_between_reads) = 0;
};

}  // namespace milotic_tlbmc

#endif  // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_H_
