using ZB.MOM.WW.ScadaBridge.HealthMonitoring;
namespace ZB.MOM.WW.ScadaBridge.AuditLog.Site;
///
/// 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;
///
/// Initializes a new backed by the given health collector.
///
/// The site health collector to increment on each audit write failure.
public HealthMetricsAuditWriteFailureCounter(ISiteHealthCollector collector)
{
_collector = collector ?? throw new ArgumentNullException(nameof(collector));
}
///
public void Increment() => _collector.IncrementSiteAuditWriteFailures();
}