Namespace DotBoxD.Plugins.Runtime.Hooks
Classes
Section titled “Classes”HookStage<TEvent, TCurrent, TContext>
A re-typed stage in a hook chain after a HookPipeline<TEvent>.Select. It
carries a composed projection of the original event to the element currently flowing
(TCurrent) plus a short-circuit flag, so Where/Select compose
without re-keying the pipeline (it stays keyed by TEvent). Terminals
re-run the projection per publish and short-circuit when a Where rejected the element.
Every fluent method offers both the (element, context) and element-only lambda arities, chosen
independently per stage.
RemoteHookStage<TEvent, TCurrent, TContext>
RemoteHookStage<TEvent, TCurrent>
Client-side registry for remote RunLocal terminals. A remote
server.Hooks.On<TEvent>().Where(..).Select(..).RunLocal(λ) chain lowers only its
Where/Select stages to verified IR that filters and projects server-side; the projected
value is pushed back over the control-plane callback per passing event. This registry holds the native
RunLocal delegate (real host C#, never lowered), keyed by the subscription id returned at install
time, and decodes each pushed payload back to the projected CLR type before invoking that delegate.
Delegates
Section titled “Delegates”Delivers an encoded, filtered+projected value to the plugin’s native RunLocal delegate across the
control-plane callback. The server-side pipeline invokes this once per event that passes the lowered filter;
the implementation forwards projectedValue over the IPC boundary keyed by
subscriptionId. Transport-agnostic so the pipeline does not depend on the RPC layer.