Files
whetstone_RSA/include/whetstone_rsa/diagnosis_engine.h

26 lines
1001 B
C
Raw Normal View History

#pragma once
#include "whetstone_rsa/probe_registry.h"
namespace whetstone::rsa {
class DiagnosisEngine {
public:
explicit DiagnosisEngine(ProbeRegistry probe_registry);
[[nodiscard]] GateDiagnosis diagnose(const GateDefinition& gate_definition,
const GateEvidence& evidence,
const PolicyContext& policy_context) const;
private:
[[nodiscard]] static PolicyRecommendation recommend_policy(const GateDefinition& gate_definition,
const GateEvidence& evidence,
const PolicyContext& policy_context,
FailureClass primary_failure_class,
const std::vector<Intervention>& interventions);
ProbeRegistry probe_registry_;
};
} // namespace whetstone::rsa