63c16d6912
Phase 4 of the ClusterClient -> gRPC migration deleted the Akka transports but left the naming behind: `ClusterClientSiteAuditClient` was transport- agnostic and worked unchanged, so it survived the deletion under a name that now describes a transport the repo no longer has. Same for a scatter of doc-comments still framing gRPC as "the new transport" beside an Akka one that is gone. Renames it to `SiteCommunicationAuditClient` (and its test file) and rewrites the stale comments to describe the single transport that exists. Also tightens CLAUDE.md: drops the self-describing directory listing and the 27-component enumeration in favour of the non-obvious parts only. Behaviour-neutral: names and prose only. Recorded as the Phase 4 follow-up in docs/plans/2026-07-22-clusterclient-to-grpc-plan.md.
25 lines
1.2 KiB
C#
25 lines
1.2 KiB
C#
using ZB.MOM.WW.ScadaBridge.Commons.Messages.Health;
|
|
|
|
namespace ZB.MOM.WW.ScadaBridge.HealthMonitoring;
|
|
|
|
/// <summary>
|
|
/// Abstraction for sending health reports to central.
|
|
/// In production, implemented over the gRPC central transport with an acked round-trip
|
|
/// (review 01 [Medium]): the transport Asks and awaits a
|
|
/// <see cref="SiteHealthReportAck"/>, so a lost/rejected report surfaces as a
|
|
/// fault the sender can observe (and its per-interval counter-restore fires).
|
|
/// </summary>
|
|
public interface IHealthReportTransport
|
|
{
|
|
/// <summary>
|
|
/// Sends a health report to central and completes only once central has
|
|
/// acknowledged processing. MUST THROW on non-delivery (Ask timeout, actor
|
|
/// system not started, or a not-accepted ack) — the sender's counter-restore
|
|
/// path in <c>HealthReportSender</c> depends on that exception.
|
|
/// </summary>
|
|
/// <param name="report">The site health report to send.</param>
|
|
/// <param name="cancellationToken">Cancels the in-flight send.</param>
|
|
/// <returns>A task that represents the asynchronous operation.</returns>
|
|
Task SendAsync(SiteHealthReport report, CancellationToken cancellationToken);
|
|
}
|