BridgeInteractionRouter class

Namespace Runic.Application.Views · Runic.Application 0.7.0-preview.5

public sealed class BridgeInteractionRouter : IDisposable

Inherits or implements IDisposable.

Window-owned request/reply broker for typed interaction adapters. Browser delivery is pull-based: a mounted endpoint receives input only as the reply to its own authenticated wait route.

Fields

ControlRoute

public const string ControlRoute = "__runicInteractionControl"

The route on which an endpoint reports the interaction handlers it has mounted.

ControlWaitRoute

public const string ControlWaitRoute = "__runicInteractionControlWait"

The route on which an endpoint waits for control events.

ReplyRoute

public const string ReplyRoute = "__runicInteractionReply"

The route on which an endpoint answers an interaction.

WaitRoute

public const string WaitRoute = "__runicInteractionWait"

The route on which a mounted endpoint waits for interaction input.

Methods

Dispose

public void Dispose()

Unbinds the interaction routes and cancels pending interactions.

Register

public IDisposable Register<TInput, TOutput>(string route, string name, string contract, Func<TInput, string> encodeInput, Func<JsonElement, TOutput> decodeOutput, int priority = 0, TimeSpan? timeout = null)

Registers a typed interaction surface for one generated bridge route. The route lease is normally owned by the generated bridge attachment.

TryRequest

public Task<TOutput>? TryRequest<TInput, TOutput>(string route, string name, string contract, TInput input, Func<TInput, string> encodeInput, Func<JsonElement, TOutput> decodeOutput, TimeSpan? timeout = null)

Attempts browser delivery for the current trusted bridge invocation. A null result preserves ReactiveUI fallback/unhandled behavior.