Class FrameProber

Namespace
Kuestenlogik.Bowire.Semantics.Detectors
Assembly
Kuestenlogik.Bowire.dll

Default IFrameProber implementation — composes every registered IBowireFieldDetector with the AutoDetectorLayer and tracks the set of probed triples in a ConcurrentDictionary<TKey, TValue>.

public sealed class FrameProber : IFrameProber
Inheritance
FrameProber
Implements
Inherited Members

Remarks

Singleton-scoped in the DI container — only one prober per host, so the triple-set is shared across every concurrent stream subscription. The set carries triples as a (T1, T2, T3) so the dictionary's Default already does the right thing.

Constructors

FrameProber(IEnumerable<IBowireFieldDetector>, InMemoryAnnotationLayer)

Construct a frame prober from an explicit detector set and the auto-detector layer it should write to. Used by the DI wiring inside AddBowire(IServiceCollection, Action<BowireOptions>?) but kept public so embedded hosts can wire a custom store.

public FrameProber(IEnumerable<IBowireFieldDetector> detectors, InMemoryAnnotationLayer autoLayer)

Parameters

detectors IEnumerable<IBowireFieldDetector>

Every registered IBowireFieldDetector. May be empty — the prober still tracks novel triples (so an already-probed triple stays a single dictionary lookup) but produces no annotations.

autoLayer InMemoryAnnotationLayer

The store's AutoDetectorLayer. Detector proposals land here; resolver priority does the rest.

Properties

ProbedTripleCount

Number of distinct (serviceId, methodId, messageType) triples the prober has already classified. Exposed for tests

  • monitoring — never feeds back into the hot path.
public int ProbedTripleCount { get; }

Property Value

int

Methods

ObserveFrame(in DetectionContext)

public void ObserveFrame(in DetectionContext ctx)

Parameters

ctx DetectionContext