blob: 6ab46055eafcbf786ef7d1798214611ba74bcfbb [file] [log] [blame]
/* Copyright 2019 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef HARDWARE_VERIFIER_VERIFIER_H_
#define HARDWARE_VERIFIER_VERIFIER_H_
#include <base/optional.h>
#include <runtime_probe/proto_bindings/runtime_probe.pb.h>
#include "hardware_verifier/hardware_verifier.pb.h"
namespace hardware_verifier {
// Interface for the class that verifies if the probe result is compliant.
class Verifier {
public:
virtual ~Verifier() = default;
// Verifies if the given probe result matches the verification spec or not.
//
// @param probe_result: The probe result to be checked.
// @param hw_verification_spec: The device spec which contains the
// expectation of the probe result.
//
// @return Instance of |HwVerificationReport| if it succeeds.
virtual base::Optional<HwVerificationReport> Verify(
const runtime_probe::ProbeResult& probe_result,
const HwVerificationSpec& hw_verification_spec) const = 0;
};
} // namespace hardware_verifier
#endif // HARDWARE_VERIFIER_VERIFIER_H_