feat: thread BrowseNext continuation token through actor + BrowseService (T15)

This commit is contained in:
Joseph Doherty
2026-06-18 02:43:25 -04:00
parent d5e7e897c0
commit 9ec2450ad5
5 changed files with 79 additions and 5 deletions
@@ -15,14 +15,30 @@ namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management;
/// </remarks>
/// <param name="ConnectionName">Name of the site-local data connection to browse against.</param>
/// <param name="ParentNodeId">Node to browse, or null to browse from the server root (ObjectsFolder).</param>
/// <param name="ContinuationToken">
/// Opaque adapter cursor for fetching the NEXT page of children under
/// <see cref="ParentNodeId"/>. Null on the first request; on a subsequent
/// request carry back the token from the prior <see cref="BrowseNodeResult.ContinuationToken"/>.
/// Additive (appended last) so positional construction stays source-compatible.
/// </param>
public record BrowseNodeCommand(
string ConnectionName,
string? ParentNodeId);
string? ParentNodeId,
string? ContinuationToken = null);
/// <param name="Children">Immediate children resolved for the browsed node (this page only).</param>
/// <param name="Truncated">True when the result was clipped (frame-budget cap or adapter-reported truncation).</param>
/// <param name="Failure">Structured failure, or null on success.</param>
/// <param name="ContinuationToken">
/// Opaque adapter cursor for the NEXT page when more children remain, or null
/// when this is the final page. Surface it back in a follow-up
/// <see cref="BrowseNodeCommand.ContinuationToken"/>. Additive (appended last).
/// </param>
public record BrowseNodeResult(
IReadOnlyList<BrowseNode> Children,
bool Truncated,
BrowseFailure? Failure);
BrowseFailure? Failure,
string? ContinuationToken = null);
public record BrowseFailure(
BrowseFailureKind Kind,