blob: d0c0237861c2f9656ae03dc4e262483986c6787a [file]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_ADC_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_ADC_H_
#include <memory>
#include <string>
#include <vector>
#include "bus_topology.pb.h"
#include "absl/status/statusor.h"
#include "tlbmc/hal/fru_scanner.h"
#include "status.pb.h"
namespace milotic_tlbmc {
class IpcServer;
class FruScannerAdc : public FruScanner {
public:
struct Options {
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
components;
};
static PresenceStatus GetAdcFruPresenceStatus(const std::string& name);
absl::StatusOr<std::vector<std::unique_ptr<AdcFruInfo>>> ScanAllAdcFrus()
const override;
static std::unique_ptr<FruScannerAdc> Create(const Options& options);
protected:
explicit FruScannerAdc(
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
components);
private:
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
adc_components_;
};
} // namespace milotic_tlbmc
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_ADC_H_