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
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:
@@ -22,10 +22,10 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
private volatile bool _disposed;
|
||||
private IReadOnlyList<LazyBrowseNode>? _roots;
|
||||
|
||||
/// <summary>Opaque token identifying this session in the AdminUI registry.</summary>
|
||||
/// <inheritdoc />
|
||||
public Guid Token { get; } = Guid.NewGuid();
|
||||
|
||||
/// <summary>Wall-clock time of the most recent successful Root/Expand/Attributes call.</summary>
|
||||
/// <inheritdoc />
|
||||
public DateTime LastUsedUtc { get; private set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
@@ -40,11 +40,7 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
_client = client ?? throw new ArgumentNullException(nameof(client));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the top-level <see cref="LazyBrowseNode"/>s from the gateway and
|
||||
/// returns them as <see cref="BrowseNode"/>s. Result is cached; a second call
|
||||
/// returns the cached roots without a re-fetch.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public async Task<IReadOnlyList<BrowseNode>> RootAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
ObjectDisposedException.ThrowIf(_disposed, this);
|
||||
@@ -63,12 +59,7 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the direct children of the cached node identified by
|
||||
/// <paramref name="nodeId"/> (the object's <c>TagName</c>) via
|
||||
/// <see cref="LazyBrowseNode.ExpandAsync"/>. Throws <see cref="ArgumentException"/>
|
||||
/// if the tag hasn't been handed out by a prior Root/Expand call.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public async Task<IReadOnlyList<BrowseNode>> ExpandAsync(string nodeId, CancellationToken cancellationToken)
|
||||
{
|
||||
ObjectDisposedException.ThrowIf(_disposed, this);
|
||||
@@ -84,11 +75,7 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
return Project(node.Children);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the attributes of the Galaxy object identified by <paramref name="nodeId"/>
|
||||
/// via <c>DiscoverHierarchyAsync(MaxDepth=0, RootTagName=nodeId, IncludeAttributes=true)</c>.
|
||||
/// Returns an empty list if the gateway has no matching object.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public async Task<IReadOnlyList<AttributeInfo>> AttributesAsync(string nodeId, CancellationToken cancellationToken)
|
||||
{
|
||||
ObjectDisposedException.ThrowIf(_disposed, this);
|
||||
@@ -151,6 +138,8 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
/// 0=FreeAccess, 1=Operate, 2=SecuredWrite, 3=VerifiedWrite,
|
||||
/// 4=Tune, 5=Configure, 6=ViewOnly; anything else surfaces as <c>Unknown(N)</c>.
|
||||
/// </summary>
|
||||
/// <param name="raw">The raw Galaxy security-classification integer.</param>
|
||||
/// <returns>The display string for the classification, or <c>Unknown(N)</c> if unrecognized.</returns>
|
||||
// internal for unit-test access (InternalsVisibleTo on the src project).
|
||||
internal static string MapSecurityClass(int raw) => raw switch
|
||||
{
|
||||
@@ -170,6 +159,7 @@ internal sealed class GalaxyBrowseSession : IBrowseSession
|
||||
/// Both <see cref="SemaphoreSlim.Dispose"/> and the client dispose are wrapped
|
||||
/// in try/catch so a concurrent second dispose call never propagates.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed) return;
|
||||
|
||||
Reference in New Issue
Block a user