Table of Contents

Class HookSubscriptionManifest

Namespace
DotBoxD.Plugins
Assembly
DotBoxD.Plugins.dll
public sealed record HookSubscriptionManifest : IEquatable<HookSubscriptionManifest>
Inheritance
HookSubscriptionManifest
Implements
Inherited Members

Constructors

HookSubscriptionManifest(string, string)

public HookSubscriptionManifest(string Event, string Kernel)

Parameters

Event string
Kernel string

Properties

Event

public string Event { get; init; }

Property Value

string

IndexCoversPredicate

true only when the entire lowered predicate is exactly the conjunction of 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

bool

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 IndexCoversPredicate. Optional; empty when the predicate had no index-eligible leaves. Set via object initializer.

public IReadOnlyList<IndexedPredicate> IndexedPredicates { get; init; }

Property Value

IReadOnlyList<IndexedPredicate>

Kernel

public string Kernel { get; init; }

Property Value

string

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

bool

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

int

ProjectedType

For a 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

string

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

bool

ResultType

The fully qualified result type declared by the hook context's HookAttribute for a lowered Register/RegisterLocal chain. null for ordinary notification hooks.

public string? ResultType { get; init; }

Property Value

string