docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
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>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -27,6 +27,10 @@ public sealed class HostConnectivityForwarder : IDisposable
private readonly ILogger _logger;
private bool _disposed;
/// <summary>Initializes a new instance of HostConnectivityForwarder with the given client name, aggregator, and optional logger.</summary>
/// <param name="clientName">The client name for the MxAccess connection.</param>
/// <param name="aggregator">The host status aggregator to push connectivity state to.</param>
/// <param name="logger">The optional logger for diagnostic messages.</param>
public HostConnectivityForwarder(string clientName, HostStatusAggregator aggregator, ILogger? logger = null)
{
ArgumentException.ThrowIfNullOrWhiteSpace(clientName);
@@ -39,6 +43,7 @@ public sealed class HostConnectivityForwarder : IDisposable
/// Push a transport state into the aggregator. Idempotent at the aggregator layer —
/// repeated calls with the same state don't fan out duplicate transitions.
/// </summary>
/// <param name="state">The host connectivity state to push.</param>
public void SetTransport(HostState state)
{
ObjectDisposedException.ThrowIf(_disposed, this);
@@ -49,6 +54,7 @@ public sealed class HostConnectivityForwarder : IDisposable
_clientName, state);
}
/// <summary>Disposes the forwarder and marks it as disposed.</summary>
public void Dispose()
{
// No-op today; reserved for the eventual gw-6 StreamSessionHealth consumer that
@@ -53,6 +53,7 @@ public sealed class HostStatusAggregator
/// state value differs from the last cached entry. Re-asserting the same
/// state is silent.
/// </summary>
/// <param name="status">The host connectivity status to upsert.</param>
public void Update(HostConnectivityStatus status)
{
ArgumentNullException.ThrowIfNull(status);
@@ -87,6 +88,8 @@ public sealed class HostStatusAggregator
/// is fired — observers only react to live transitions, not topology
/// reductions. Returns <c>true</c> when the host was tracked.
/// </summary>
/// <param name="hostName">The name of the host to remove.</param>
/// <returns>True if the host was tracked and removed; false if it was not tracked.</returns>
public bool Remove(string hostName)
{
ArgumentException.ThrowIfNullOrWhiteSpace(hostName);
@@ -45,6 +45,11 @@ public sealed class PerPlatformProbeWatcher : IDisposable
private readonly Lock _syncLock = new();
private bool _disposed;
/// <summary>Initializes a new instance of the PerPlatformProbeWatcher class.</summary>
/// <param name="subscriber">The Galaxy subscriber for managing probe subscriptions.</param>
/// <param name="aggregator">The host status aggregator for tracking platform connectivity.</param>
/// <param name="logger">Optional logger for diagnostic messages.</param>
/// <param name="bufferedUpdateIntervalMs">Buffered update interval in milliseconds; must be >= 0.</param>
public PerPlatformProbeWatcher(
IGalaxySubscriber subscriber,
HostStatusAggregator aggregator,
@@ -70,6 +75,8 @@ public sealed class PerPlatformProbeWatcher : IDisposable
/// Subscribes new entries, unsubscribes dropped ones. Calling with the same set is
/// a no-op.
/// </summary>
/// <param name="platformTagNames">The platform tag names to synchronize.</param>
/// <param name="cancellationToken">A cancellation token to cancel the operation.</param>
public async Task SyncPlatformsAsync(
IEnumerable<string> platformTagNames, CancellationToken cancellationToken)
{
@@ -149,6 +156,9 @@ public sealed class PerPlatformProbeWatcher : IDisposable
/// <see cref="ProbeSuffix"/>, or a probe for a platform we're not tracking) are
/// silently dropped.
/// </summary>
/// <param name="fullReference">The full reference path of the probe attribute.</param>
/// <param name="value">The probe value to decode.</param>
/// <param name="qualityByte">The quality byte for the value.</param>
public void OnProbeValueChanged(string fullReference, object? value, byte qualityByte)
{
if (_disposed) return;
@@ -166,6 +176,9 @@ public sealed class PerPlatformProbeWatcher : IDisposable
/// Decode a ScanState value + raw quality byte to a <see cref="HostState"/>.
/// Public for tests that want to pin the decoding table.
/// </summary>
/// <param name="value">The probe value to decode.</param>
/// <param name="qualityByte">The quality byte for the value.</param>
/// <returns>The decoded host state.</returns>
public static HostState DecodeState(object? value, byte qualityByte)
{
if (qualityByte < 192) return HostState.Unknown;
@@ -182,6 +195,7 @@ public sealed class PerPlatformProbeWatcher : IDisposable
};
}
/// <summary>Disposes the probe watcher and unsubscribes all tracked platforms.</summary>
public void Dispose()
{
if (_disposed) return;