9cad9ed0fc
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.
30 lines
1.6 KiB
C#
30 lines
1.6 KiB
C#
namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;
|
|
|
|
/// <summary>
|
|
/// Optional driver capability — drivers whose backend has a native change signal
|
|
/// (Galaxy <c>time_of_last_deploy</c>, OPC UA server change notifications, TwinCAT
|
|
/// symbol-version-changed) implement this to tell Core when to re-run discovery.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Per <c>docs/v2/plan.md</c> — static drivers (Modbus, S7, etc. whose tags
|
|
/// only change via a published config generation) don't implement <c>IRediscoverable</c>.
|
|
/// The Core just sees absence of the interface and skips change-detection wiring for that driver.
|
|
/// </remarks>
|
|
public interface IRediscoverable
|
|
{
|
|
/// <summary>
|
|
/// Fired when the driver's backend signals that the address space may have changed.
|
|
/// The Core's response is to re-run <see cref="ITagDiscovery.DiscoverAsync"/> and
|
|
/// diff the result against the current address space.
|
|
/// </summary>
|
|
event EventHandler<RediscoveryEventArgs>? OnRediscoveryNeeded;
|
|
}
|
|
|
|
/// <summary>Event payload for <see cref="IRediscoverable.OnRediscoveryNeeded"/>.</summary>
|
|
/// <param name="Reason">Driver-supplied reason string for the diagnostic log (e.g. "Galaxy time_of_last_deploy advanced", "TwinCAT symbol-version-changed 0x0702").</param>
|
|
/// <param name="ScopeHint">
|
|
/// Optional hint about which subtree changed. Null means "the whole address space may have changed".
|
|
/// A non-null value (e.g. a folder path) lets the Core scope the rebuild surgically.
|
|
/// </param>
|
|
public sealed record RediscoveryEventArgs(string Reason, string? ScopeHint);
|