blob: 8e7412b2c3583df44690210daf3934aacf1c4ee9 [file]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_DETERMINISTIC_BMC_OFFLINE_CONFIG_PARSER_OFFLINE_CONFIG_PARSER_INTERFACE_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_DETERMINISTIC_BMC_OFFLINE_CONFIG_PARSER_OFFLINE_CONFIG_PARSER_INTERFACE_H_
#include <string>
#include "bus_topology.pb.h"
#include "offline_data.pb.h"
#include "absl/status/statusor.h"
#include "tlbmc/deterministic_bmc/offline_config_parser/proto_reader.h"
#include "fru_i2c.pb.h"
namespace deterministic_bmc {
// Interface for parsing the uhmm offline config on BMC.
class ConfigParserInterface {
public:
struct ConfigParserOptions {
std::string uhmm_offline_data_path_txtpb;
std::string uhmm_offline_data_path_pb;
ProtoFormat uhmm_offline_data_proto_format = ProtoFormat::kBinaryProto;
};
virtual ~ConfigParserInterface() = default;
virtual absl::StatusOr<uhmm::I2cRoot> GetI2cRoot() const = 0;
virtual absl::StatusOr<uhmm::BmcMonitoredComponentsResponse>
GetBmcMonitoredComponentsResponse() const = 0;
virtual bool isUhmmConfigValid() const = 0;
};
} // namespace deterministic_bmc
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_DETERMINISTIC_BMC_OFFLINE_CONFIG_PARSER_OFFLINE_CONFIG_PARSER_INTERFACE_H_