Class HookSubscriptionManifest
Namespace: DotBoxD.Plugins
Assembly: DotBoxD.Plugins.dll
public sealed record HookSubscriptionManifest : IEquatable<HookSubscriptionManifest>Inheritance
Section titled “Inheritance”object ← HookSubscriptionManifest
Implements
Section titled “Implements”IEquatable<HookSubscriptionManifest>
Inherited Members
Section titled “Inherited Members”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()
Constructors
Section titled “Constructors”HookSubscriptionManifest(string, string)
Section titled “ HookSubscriptionManifest(string, string)”public HookSubscriptionManifest(string Event, string Kernel)Parameters
Section titled “Parameters”Event string
Kernel string
Properties
Section titled “Properties”public string Event { get; init; }Property Value
Section titled “Property Value”IndexCoversPredicate
Section titled “ IndexCoversPredicate”true only when the entire lowered predicate is exactly the conjunction of
DotBoxD.Plugins.HookSubscriptionManifest.IndexedPredicates — i.e. the index fully covers it, so a host whose index check passes
MAY skip the verified IR. false (the conservative default) means the index is a prefilter
only and the verified IR predicate must still run after the host’s index check accepts an event.
public bool IndexCoversPredicate { get; init; }Property Value
Section titled “Property Value”IndexedPredicates
Section titled “ IndexedPredicates”Host-readable, index-eligible constraints DotBoxD extracted from the lowered .Where(…)
chain — each a single event-property <op> constant comparison that the host may compile
into an equality/range dispatch bucket to prefilter events before the verified IR predicate
runs. Always a subset of the real predicate (every entry is a necessary AND condition), so rejecting
on any entry is safe regardless of DotBoxD.Plugins.HookSubscriptionManifest.IndexCoversPredicate. Optional; empty when the
predicate had no index-eligible leaves. Set via object initializer.
public IReadOnlyList<IndexedPredicate> IndexedPredicates { get; init; }Property Value
Section titled “Property Value”IReadOnlyList<IndexedPredicate>
Kernel
Section titled “ Kernel”public string Kernel { get; init; }Property Value
Section titled “Property Value”LocalTerminal
Section titled “ LocalTerminal”true when this subscription is a lowered local-terminal chain (a remote
RunLocal): the Where/Select filter and projection run server-side as verified IR
and the Handle entrypoint returns the projected value (rather than performing a host
send) so the host pushes it across the IPC boundary to the plugin’s native delegate. The default
false is an ordinary side-effecting chain whose Handle result is discarded.
public bool LocalTerminal { get; init; }Property Value
Section titled “Property Value”Priority
Section titled “ Priority”The host dispatch priority for a lowered result-returning hook chain. Higher values run first, with install order preserving ties. Optional; defaults to zero.
public int Priority { get; init; }Property Value
Section titled “Property Value”ProjectedType
Section titled “ ProjectedType”For a DotBoxD.Plugins.HookSubscriptionManifest.LocalTerminal chain, the manifest type name of the projected value the
Handle entrypoint returns (e.g. “string”, “int”) — the value the host encodes and
pushes to the plugin. null for ordinary chains. Additive; defaults to null.
public string? ProjectedType { get; init; }Property Value
Section titled “Property Value”ResultLocalTerminal
Section titled “ ResultLocalTerminal”true for a remote RegisterLocal result hook: the server evaluates the lowered filter and
requests the result from the plugin process. false for sandbox Register, where the sandbox
Handle entrypoint returns the result directly.
public bool ResultLocalTerminal { get; init; }Property Value
Section titled “Property Value”ResultType
Section titled “ ResultType”The fully qualified result type declared by the hook context’s DotBoxD.Abstractions.HookAttribute for a lowered
Register/RegisterLocal chain. null for ordinary notification hooks.
public string? ResultType { get; init; }