9cad9ed0fc
v2-ci / build (push) Failing after 41s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped
Adds <summary>/<param>/<returns>/<inheritdoc> where missing and removes project bookkeeping IDs (task/tracking refs) from shipped code comments, so the docs read cleanly and CommentChecker is quiet except for known false positives (PLC/protocol terms, event/IEqualityComparer inheritdoc). Doc/comment-only; no logic changed; solution builds clean.
44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;
|
|
|
|
/// <summary>
|
|
/// Sink for driver-health state-change notifications. The runtime DI wires the
|
|
/// Akka-DistributedPubSub-backed implementation; tests and dev-stub paths use
|
|
/// <see cref="NullDriverHealthPublisher"/> to opt out without changing call sites.
|
|
/// </summary>
|
|
public interface IDriverHealthPublisher
|
|
{
|
|
/// <summary>
|
|
/// Publishes a health snapshot for one driver instance. Implementations must be
|
|
/// non-blocking and tolerant of being called from any thread.
|
|
/// </summary>
|
|
/// <param name="clusterId">The cluster the driver instance belongs to.</param>
|
|
/// <param name="driverInstanceId">The driver instance the snapshot describes.</param>
|
|
/// <param name="health">The current health snapshot.</param>
|
|
/// <param name="errorCount5Min">The number of errors observed in the trailing 5-minute window.</param>
|
|
void Publish(
|
|
string clusterId,
|
|
string driverInstanceId,
|
|
DriverHealth health,
|
|
int errorCount5Min);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Drop-in no-op for tests and dev-stub paths. Production wires the Akka-backed
|
|
/// implementation in the Runtime project.
|
|
/// </summary>
|
|
public sealed class NullDriverHealthPublisher : IDriverHealthPublisher
|
|
{
|
|
/// <summary>Singleton instance.</summary>
|
|
public static readonly NullDriverHealthPublisher Instance = new();
|
|
|
|
private NullDriverHealthPublisher() { }
|
|
|
|
/// <inheritdoc />
|
|
public void Publish(
|
|
string clusterId,
|
|
string driverInstanceId,
|
|
DriverHealth health,
|
|
int errorCount5Min)
|
|
{ /* no-op */ }
|
|
}
|