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:
@@ -11,7 +11,7 @@ namespace ZB.MOM.WW.OtOpcUa.Core.Hosting;
|
||||
/// <c>DriverInstanceId</c> + <c>DriverConfig</c> JSON.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Closes the gap surfaced by task #240 live smoke — DriverInstance rows in
|
||||
/// Closes a gap where DriverInstance rows in
|
||||
/// the central config DB had no path to materialise as registered <see cref="IDriver"/>
|
||||
/// instances. The factory registry is the seam.
|
||||
/// </remarks>
|
||||
@@ -63,6 +63,7 @@ public sealed class DriverFactoryRegistry
|
||||
/// missing-assembly deployment doesn't take down the whole server.
|
||||
/// </summary>
|
||||
/// <param name="driverType">The driver type to look up.</param>
|
||||
/// <returns>The registered factory, or <see langword="null"/> if none is registered for <paramref name="driverType"/>.</returns>
|
||||
public Func<string, string, IDriver>? TryGet(string driverType)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(driverType);
|
||||
@@ -75,6 +76,7 @@ public sealed class DriverFactoryRegistry
|
||||
/// case upstream; we don't double-surface that failure here.
|
||||
/// </summary>
|
||||
/// <param name="driverType">The driver type to look up.</param>
|
||||
/// <returns>The recorded stability tier, or <see cref="DriverTier.A"/> if unknown.</returns>
|
||||
public DriverTier GetTier(string driverType)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(driverType);
|
||||
|
||||
@@ -20,16 +20,13 @@ public sealed class DriverFactoryRegistryAdapter : IDriverFactory
|
||||
_registry = registry;
|
||||
}
|
||||
|
||||
/// <summary>Attempts to create a driver instance by type and configuration.</summary>
|
||||
/// <param name="driverType">The driver type name.</param>
|
||||
/// <param name="driverInstanceId">The driver instance identifier.</param>
|
||||
/// <param name="driverConfigJson">The driver configuration as a JSON string.</param>
|
||||
/// <inheritdoc />
|
||||
public IDriver? TryCreate(string driverType, string driverInstanceId, string driverConfigJson)
|
||||
{
|
||||
var factory = _registry.TryGet(driverType);
|
||||
return factory?.Invoke(driverInstanceId, driverConfigJson);
|
||||
}
|
||||
|
||||
/// <summary>Gets the collection of supported driver type names.</summary>
|
||||
/// <inheritdoc />
|
||||
public IReadOnlyCollection<string> SupportedTypes => _registry.RegisteredTypes;
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ using ZB.MOM.WW.OtOpcUa.Core.Abstractions;
|
||||
namespace ZB.MOM.WW.OtOpcUa.Core.Hosting;
|
||||
|
||||
/// <summary>
|
||||
/// Process-local registry + lifecycle manager for loaded <see cref="IDriver"/> instances
|
||||
/// (decision #65). Phase 1 scaffold — per-process isolation for Tier C drivers (Galaxy, FOCAS)
|
||||
/// Process-local registry + lifecycle manager for loaded <see cref="IDriver"/> instances.
|
||||
/// Phase 1 scaffold — per-process isolation for Tier C drivers (Galaxy, FOCAS)
|
||||
/// is implemented in Phase 2 via named-pipe RPC; this class handles in-process drivers today
|
||||
/// and exposes the same registration interface so the Tier C wrapper can slot in later.
|
||||
/// </summary>
|
||||
@@ -21,6 +21,7 @@ public sealed class DriverHost : IAsyncDisposable
|
||||
|
||||
/// <summary>Gets the health status of a registered driver.</summary>
|
||||
/// <param name="driverInstanceId">The driver instance identifier to query.</param>
|
||||
/// <returns>The driver's health status, or <c>null</c> when not registered.</returns>
|
||||
public DriverHealth? GetHealth(string driverInstanceId)
|
||||
{
|
||||
lock (_lock)
|
||||
@@ -33,6 +34,7 @@ public sealed class DriverHost : IAsyncDisposable
|
||||
/// startup. Returns null when the driver is not registered.
|
||||
/// </summary>
|
||||
/// <param name="driverInstanceId">The driver instance identifier to look up.</param>
|
||||
/// <returns>The registered driver, or <c>null</c> when not registered.</returns>
|
||||
public IDriver? GetDriver(string driverInstanceId)
|
||||
{
|
||||
lock (_lock)
|
||||
@@ -47,6 +49,7 @@ public sealed class DriverHost : IAsyncDisposable
|
||||
/// <param name="driver">The driver instance to register.</param>
|
||||
/// <param name="driverConfigJson">The configuration JSON for the driver.</param>
|
||||
/// <param name="ct">Cancellation token for the operation.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public async Task RegisterAsync(IDriver driver, string driverConfigJson, CancellationToken ct)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(driver);
|
||||
@@ -70,6 +73,7 @@ public sealed class DriverHost : IAsyncDisposable
|
||||
/// <summary>Unregisters a driver and calls shutdown.</summary>
|
||||
/// <param name="driverInstanceId">The driver instance identifier to unregister.</param>
|
||||
/// <param name="ct">Cancellation token for the operation.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public async Task UnregisterAsync(string driverInstanceId, CancellationToken ct)
|
||||
{
|
||||
IDriver? driver;
|
||||
@@ -84,6 +88,7 @@ public sealed class DriverHost : IAsyncDisposable
|
||||
}
|
||||
|
||||
/// <summary>Disposes the driver host and all registered drivers.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
List<IDriver> snapshot;
|
||||
|
||||
Reference in New Issue
Block a user