feat(opcua): add ISurgicalAddressSpaceSink + node-manager in-place tag-attribute update (F10b)

This commit is contained in:
Joseph Doherty
2026-06-18 13:32:53 -04:00
parent acc6a64b26
commit 3fc258bd42
3 changed files with 59 additions and 4 deletions
@@ -0,0 +1,13 @@
namespace ZB.MOM.WW.OtOpcUa.Commons.OpcUa;
/// <summary>Optional capability on an address-space sink: surgical in-place attribute updates on an
/// EXISTING variable node, used by Phase7Applier to avoid a full RebuildAddressSpace for pure-property
/// tag changes (Writable / Historizing). A sink that does not implement it ⇒ caller falls back to a
/// full rebuild (safe default).</summary>
public interface ISurgicalAddressSpaceSink
{
/// <summary>Update an existing variable node's Writable (AccessLevel + inbound-write handler) and
/// Historizing (+ historian-tagname binding) IN PLACE, notifying subscribers (ClearChangeMasks)
/// without a rebuild. Returns false if the node does not exist (caller should rebuild instead).</summary>
bool UpdateTagAttributes(string variableNodeId, bool writable, string? historianTagname);
}