Class PluginLoadResultStore

Namespace
Kuestenlogik.Bowire.PluginLoading
Assembly
Kuestenlogik.Bowire.dll

Process-wide store of the most recent PluginLoadResult set the plugin loader produced. Lives in the core (Kuestenlogik.Bowire) so endpoints under Kuestenlogik.Bowire.Endpoints can read it without taking a dependency on the CLI assembly (Kuestenlogik.Bowire.Tool) where the PluginManager lives. The loader publishes results via Publish(IReadOnlyList<PluginLoadResult>) on every LoadPlugins call; the /api/plugins/health endpoint reads Latest.

public static class PluginLoadResultStore
Inheritance
PluginLoadResultStore
Inherited Members

Remarks

Lock-free reads: assignment is reference-only and the published collection is treated as immutable (callers freeze it before handing it over). Empty list before the first Publish(IReadOnlyList<PluginLoadResult>) — endpoints surface that as an empty array, which is the right no-op shape for a host that hasn't loaded any plugins yet.

Properties

Latest

Most recent results, or an empty list before the first publish.

public static IReadOnlyList<PluginLoadResult> Latest { get; }

Property Value

IReadOnlyList<PluginLoadResult>

Methods

Publish(IReadOnlyList<PluginLoadResult>)

Publish a fresh result set. Callers should pass a frozen collection — AsReadOnly() over the loader's internal list is the conventional shape.

public static void Publish(IReadOnlyList<PluginLoadResult> results)

Parameters

results IReadOnlyList<PluginLoadResult>