docs(galaxy): rewrite stale PR-4.W/legacy-host forward-ref comments to shipped reality (#13)
This commit is contained in:
@@ -49,11 +49,11 @@ public sealed class GalaxyDriver
|
|||||||
private IGalaxyHierarchySource? _hierarchySource;
|
private IGalaxyHierarchySource? _hierarchySource;
|
||||||
private GalaxyRepositoryClient? _ownedRepositoryClient;
|
private GalaxyRepositoryClient? _ownedRepositoryClient;
|
||||||
|
|
||||||
// PR 4.2 — IGalaxyDataReader is the test seam for IReadable. PR 4.4 supplies the
|
// IGalaxyDataReader is the test seam for IReadable. Production ReadAsync calls
|
||||||
// production implementation that wraps GalaxyMxSession's SubscribeBulk + StreamEvents
|
// ReadViaSubscribeOnceAsync (SubscribeBulk + first-event wait + Unsubscribe) through
|
||||||
// pump; until then ReadAsync throws NotSupportedException when the reader is null
|
// the live GalaxyMxSession built by InitializeAsync; no legacy-host backend exists.
|
||||||
// (legacy-host backend handles reads in production via DriverNodeManager's
|
// When a test injects a reader via the internal ctor, that injected reader is used
|
||||||
// capability-routing).
|
// instead so capability flow can be exercised without a real gRPC round-trip.
|
||||||
private IGalaxyDataReader? _dataReader;
|
private IGalaxyDataReader? _dataReader;
|
||||||
|
|
||||||
// PR 4.3 — IGalaxyDataWriter is the test seam for IWritable. Production wraps
|
// PR 4.3 — IGalaxyDataWriter is the test seam for IWritable. Production wraps
|
||||||
@@ -90,9 +90,10 @@ public sealed class GalaxyDriver
|
|||||||
// handles are added/removed (Driver.Galaxy-006 fix: HashSet.First() is unstable).
|
// handles are added/removed (Driver.Galaxy-006 fix: HashSet.First() is unstable).
|
||||||
private readonly List<GalaxyAlarmSubscriptionHandle> _alarmSubscriptions = new();
|
private readonly List<GalaxyAlarmSubscriptionHandle> _alarmSubscriptions = new();
|
||||||
|
|
||||||
// PR 4.W — production runtime owned by InitializeAsync. The driver builds these
|
// Production runtime owned by InitializeAsync (BuildProductionRuntimeAsync). The
|
||||||
// when it opens a real gw session; tests bypass them by injecting seams via the
|
// driver builds these when it opens a real gw session; tests bypass them by
|
||||||
// internal ctor.
|
// injecting seams via the internal ctor, which leaves both fields null and skips
|
||||||
|
// BuildProductionRuntimeAsync entirely.
|
||||||
private GalaxyMxSession? _ownedMxSession;
|
private GalaxyMxSession? _ownedMxSession;
|
||||||
private MxGatewayClient? _ownedMxClient;
|
private MxGatewayClient? _ownedMxClient;
|
||||||
|
|
||||||
@@ -666,9 +667,10 @@ public sealed class GalaxyDriver
|
|||||||
ObjectDisposedException.ThrowIf(_disposed, this);
|
ObjectDisposedException.ThrowIf(_disposed, this);
|
||||||
ArgumentNullException.ThrowIfNull(builder);
|
ArgumentNullException.ThrowIfNull(builder);
|
||||||
|
|
||||||
// PR 4.3 — capture SecurityClassification per attribute. PR 4.W — also refresh
|
// Wrap the builder with a SecurityCapturingBuilder so each discovered attribute's
|
||||||
// the per-platform probe watcher's membership after discovery so newly-added
|
// SecurityClassification is recorded in _securityByFullRef for write-time routing.
|
||||||
// $WinPlatform / $AppEngine objects start advising their ScanState attribute.
|
// After discovery, SyncPlatformsAsync refreshes the probe watcher's membership so
|
||||||
|
// newly added $WinPlatform / $AppEngine objects start advising their ScanState attribute.
|
||||||
var capturingBuilder = new SecurityCapturingBuilder(builder, _securityByFullRef);
|
var capturingBuilder = new SecurityCapturingBuilder(builder, _securityByFullRef);
|
||||||
var source = _hierarchySource ??= BuildDefaultHierarchySource();
|
var source = _hierarchySource ??= BuildDefaultHierarchySource();
|
||||||
var discoverer = new GalaxyDiscoverer(source);
|
var discoverer = new GalaxyDiscoverer(source);
|
||||||
|
|||||||
@@ -14,10 +14,9 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy;
|
|||||||
/// <see cref="DriverTypeName"/> into live <see cref="GalaxyDriver"/> instances.
|
/// <see cref="DriverTypeName"/> into live <see cref="GalaxyDriver"/> instances.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// The driver-type name <c>"GalaxyMxGateway"</c> is intentionally distinct from the
|
/// <c>"GalaxyMxGateway"</c> is the sole Galaxy driver-type name. The legacy
|
||||||
/// legacy proxy's <c>"Galaxy"</c> so both factories can be registered simultaneously
|
/// <c>"Galaxy"</c> proxy type (retired in PR 7.2) no longer exists; there is no
|
||||||
/// during parity testing (Phase 5). PR 4.W will add a server-side <c>Galaxy:Backend</c>
|
/// server-side backend switch — every Galaxy DriverInstance row uses this type name.
|
||||||
/// switch that materialises a Galaxy DriverInstance under one or the other type name.
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public static class GalaxyDriverFactoryExtensions
|
public static class GalaxyDriverFactoryExtensions
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Health;
|
|||||||
/// (<see cref="HostConnectivityForwarder"/>) both feed this aggregator; the
|
/// (<see cref="HostConnectivityForwarder"/>) both feed this aggregator; the
|
||||||
/// <see cref="GalaxyDriver"/> consumes <see cref="Snapshot"/> from
|
/// <see cref="GalaxyDriver"/> consumes <see cref="Snapshot"/> from
|
||||||
/// <c>IHostConnectivityProbe.GetHostStatuses()</c> and re-raises
|
/// <c>IHostConnectivityProbe.GetHostStatuses()</c> and re-raises
|
||||||
/// <see cref="OnHostStatusChanged"/> as the driver-level event (wired in PR 4.W).
|
/// <see cref="OnHostStatusChanged"/> as the driver-level event (v1's
|
||||||
|
/// <c>GalaxyProxyDriver.OnHostConnectivityUpdate</c> equivalent).
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public sealed class HostStatusAggregator
|
public sealed class HostStatusAggregator
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user