using ScadaLink.HealthMonitoring;
namespace ScadaLink.AuditLog.Site;
///
/// Audit Log (#23) M2 Bundle G — bridges
/// (incremented by every time the primary
/// SQLite writer throws) into so the count
/// surfaces in the site health report payload as
/// SiteHealthReport.SiteAuditWriteFailures.
///
///
///
/// Registered by ;
/// callers must register AddHealthMonitoring() first so
/// resolves. The default
/// registration keeps for nodes
/// where Site Health Monitoring is not wired (the silent-sink contract — audit
/// write failures must NEVER abort the user-facing action, alog.md §7).
///
///
public sealed class HealthMetricsAuditWriteFailureCounter : IAuditWriteFailureCounter
{
private readonly ISiteHealthCollector _collector;
public HealthMetricsAuditWriteFailureCounter(ISiteHealthCollector collector)
{
_collector = collector ?? throw new ArgumentNullException(nameof(collector));
}
///
public void Increment() => _collector.IncrementSiteAuditWriteFailures();
}