blob: 0d693a13c28c078ca84a8e25fca54a9b85dcc514 [file]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_CABLE_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_CABLE_H_
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "bus_topology.pb.h"
#include "absl/status/statusor.h"
#include "absl/time/time.h"
#include "tlbmc/hal/fru_scanner.h"
namespace milotic_tlbmc {
class FruScannerCable : public FruScanner {
public:
struct Options {
std::string root_dir = "/";
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
components;
};
static std::unique_ptr<FruScannerCable> Create(const Options& option);
absl::StatusOr<std::vector<std::unique_ptr<CableFruInfo>>> ScanAllCableFrus()
const override;
protected:
FruScannerCable(
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
components,
std::string root_dir)
: cable_components_(std::move(components)),
root_dir_(std::move(root_dir)) {}
std::vector<uhmm::BmcMonitoredComponentsResponse::MonitoredComponent>
cable_components_;
std::string root_dir_;
};
} // namespace milotic_tlbmc
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_FRU_SCANNER_CABLE_H_