540b1632c5
R08 3.6: BrowseAsync no longer issues one HasChildren Browse per Object child; an Object reports HasChildren (may have children) and is confirmed when expanded or recursed. ISessionAdapter.HasChildrenAsync is removed. The UI subscriptions panel routes each notification through a NodeId index kept in step with ActiveSubscriptions (add/remove/replace/reset) instead of scanning every row. Refs #747 Claude-Session: https://claude.ai/code/session_01Ub9hGmYLQvn9XETzw7CMsT
42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Models;
|
|
|
|
/// <summary>
|
|
/// Represents a single node in the browse result set.
|
|
/// </summary>
|
|
public sealed class BrowseResult
|
|
{
|
|
/// <summary>Initializes a new instance of the BrowseResult class.</summary>
|
|
/// <param name="nodeId">The string representation of the node's NodeId.</param>
|
|
/// <param name="displayName">The display name of the node.</param>
|
|
/// <param name="nodeClass">The node class (e.g., "Object", "Variable", "Method").</param>
|
|
/// <param name="hasChildren">Whether the node has child references.</param>
|
|
public BrowseResult(string nodeId, string displayName, string nodeClass, bool hasChildren)
|
|
{
|
|
NodeId = nodeId;
|
|
DisplayName = displayName;
|
|
NodeClass = nodeClass;
|
|
HasChildren = hasChildren;
|
|
}
|
|
|
|
/// <summary>
|
|
/// The string representation of the node's NodeId.
|
|
/// </summary>
|
|
public string NodeId { get; }
|
|
|
|
/// <summary>
|
|
/// The display name of the node.
|
|
/// </summary>
|
|
public string DisplayName { get; }
|
|
|
|
/// <summary>
|
|
/// The node class (e.g., "Object", "Variable", "Method").
|
|
/// </summary>
|
|
public string NodeClass { get; }
|
|
|
|
/// <summary>
|
|
/// Whether the node MAY have child references: <see langword="true"/> for every Object, confirmed lazily when the
|
|
/// caller browses it (an expanded empty folder simply yields no children). Variables and Methods report
|
|
/// <see langword="false"/>.
|
|
/// </summary>
|
|
public bool HasChildren { get; }
|
|
} |