Table of Contents

Interface IErasedPluginEventAdapter

Namespace
DotBoxD.Plugins.Runtime
Assembly
DotBoxD.Plugins.dll

A type-erased, wire-capable view of a registered IPluginEventAdapter<TEvent>. The closure is captured once at registration time (when the event type is statically known), so the host-side router (WireHook(InstalledKernel, WireOptions?) / WireSubscription(InstalledKernel, WireOptions?)) can wire an installed kernel to the correct typed pipeline terminal by event name — with no reflection at wire time.

Public as a composability seam: resolve one via TryResolveErased(string, out IErasedPluginEventAdapter) and wire a kernel your own way when the WireHook(InstalledKernel, WireOptions?) / WireSubscription(InstalledKernel, WireOptions?) defaults don't fit — without dropping all the way back to a hand-written event-name → typed-On<TEvent>() dispatch.

public interface IErasedPluginEventAdapter

Properties

EventName

The adapter's event name (the [Hook] name or the type name), used for by-name resolution.

string EventName { get; }

Property Value

string

EventType

The CLR event type this adapter handles.

Type EventType { get; }

Property Value

Type

HookResultType

The result type declared by the event's [Hook] attribute, or null when it declares none.

Type? HookResultType { get; }

Property Value

Type

Methods

WireHook(HookRegistry, InstalledKernel, KernelWireTerminal, WireCallbacks)

Wires kernel into the hook pipeline for this event using the classified terminal.

void WireHook(HookRegistry hooks, InstalledKernel kernel, KernelWireTerminal terminal, WireCallbacks callbacks)

Parameters

hooks HookRegistry
kernel InstalledKernel
terminal KernelWireTerminal
callbacks WireCallbacks

WireSubscription(SubscriptionRegistry, InstalledKernel, KernelWireTerminal, WireCallbacks, EventIndexRegistry?)

Wires kernel into the subscription pipeline for this event. A plain terminal is routed through indexRegistry first when one is supplied and the subscription carries index metadata; otherwise it falls back to the broad pipeline. A projecting terminal pushes to the plugin's native delegate; result terminals are rejected (subscriptions have no result channel).

void WireSubscription(SubscriptionRegistry subscriptions, InstalledKernel kernel, KernelWireTerminal terminal, WireCallbacks callbacks, EventIndexRegistry? indexRegistry)

Parameters

subscriptions SubscriptionRegistry
kernel InstalledKernel
terminal KernelWireTerminal
callbacks WireCallbacks
indexRegistry EventIndexRegistry