docs(xmldoc): fill missing XML docs + strip tracking-ID comments across src
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.
This commit is contained in:
Joseph Doherty
2026-07-07 12:38:39 -04:00
parent 384dbd7d36
commit 9cad9ed0fc
375 changed files with 1899 additions and 2493 deletions
@@ -39,6 +39,7 @@ internal static class AlarmRefBuilder
/// <param name="fullReference">The full reference of the alarm-bearing attribute.</param>
/// <param name="initialSeverity">The initial alarm severity level.</param>
/// <param name="initialDescription">The initial alarm description.</param>
/// <returns>The populated <see cref="AlarmConditionInfo"/> with all five sub-attribute references.</returns>
public static AlarmConditionInfo Build(
string fullReference,
AlarmSeverity initialSeverity = AlarmSeverity.Medium,
@@ -14,12 +14,13 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse;
/// and encode (Boolean, Int32, Int64, Float32, Float64, String, DateTime). Without it an
/// Int64 attribute fell through to the <see cref="DriverDataType.String"/> default,
/// creating a String address-space node while runtime reads decoded a boxed <c>long</c> —
/// a metadata / coercion mismatch (Driver.Galaxy-002).
/// a metadata / coercion mismatch.
/// </remarks>
internal static class DataTypeMap
{
/// <summary>Maps an MXAccess data type ID to a driver data type.</summary>
/// <param name="mxDataType">The MXAccess data type ID.</param>
/// <returns>The corresponding <see cref="DriverDataType"/>, or <see cref="DriverDataType.String"/> for unknown codes.</returns>
public static DriverDataType Map(int mxDataType) => mxDataType switch
{
0 => DriverDataType.Boolean,
@@ -98,6 +98,7 @@ public sealed class DeployWatcher : IDisposable
}
/// <summary>Cancels the loop and waits for it to exit cleanly.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
public async Task StopAsync()
{
var cts = _cts;
@@ -44,6 +44,7 @@ public sealed class GalaxyDiscoverer
/// </summary>
/// <param name="builder">The address space builder to populate with discovery results.</param>
/// <param name="cancellationToken">The cancellation token for the operation.</param>
/// <returns>A task that represents the asynchronous operation.</returns>
public async Task DiscoverAsync(IAddressSpaceBuilder builder, CancellationToken cancellationToken)
{
ArgumentNullException.ThrowIfNull(builder);
@@ -22,10 +22,7 @@ public sealed class GatewayGalaxyDeployWatchSource : IGalaxyDeployWatchSource
_client = client ?? throw new ArgumentNullException(nameof(client));
}
/// <summary>Watches for deploy events asynchronously.</summary>
/// <param name="lastSeenDeployTime">The last deploy time that was observed.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>An async enumerable of deploy events.</returns>
/// <inheritdoc />
public IAsyncEnumerable<DeployEvent> WatchAsync(
DateTimeOffset? lastSeenDeployTime, CancellationToken cancellationToken)
=> _client.WatchDeployEventsAsync(lastSeenDeployTime, cancellationToken);
@@ -20,10 +20,7 @@ public sealed class GatewayGalaxyHierarchySource : IGalaxyHierarchySource
_client = client ?? throw new ArgumentNullException(nameof(client));
}
/// <summary>
/// Discovers the Galaxy object hierarchy asynchronously via the gateway.
/// </summary>
/// <param name="cancellationToken">Cancellation token for the operation.</param>
/// <inheritdoc />
public Task<IReadOnlyList<GalaxyObject>> GetHierarchyAsync(CancellationToken cancellationToken)
=> _client.DiscoverHierarchyAsync(cancellationToken);
}
@@ -21,6 +21,7 @@ public interface IGalaxyDeployWatchSource
/// </summary>
/// <param name="lastSeenDeployTime">The last seen deploy time, or null to receive a bootstrap event.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>An async stream of deploy events, starting with a bootstrap event unless suppressed.</returns>
IAsyncEnumerable<DeployEvent> WatchAsync(
DateTimeOffset? lastSeenDeployTime, CancellationToken cancellationToken);
}
@@ -16,5 +16,6 @@ public interface IGalaxyHierarchySource
/// callers don't reimplement paging.
/// </summary>
/// <param name="cancellationToken">Cancellation token for the operation.</param>
/// <returns>The full materialised Galaxy object hierarchy.</returns>
Task<IReadOnlyList<GalaxyObject>> GetHierarchyAsync(CancellationToken cancellationToken);
}