Class MockEmitterOptions

Namespace
Kuestenlogik.Bowire.Mocking
Assembly
Kuestenlogik.Bowire.dll

The subset of mock-server configuration that IBowireMockEmitter implementations actually consume. Kept deliberately small so plugin authors don't have to take a compile-time dependency on the full MockOptions shape — which carries server-only concerns (matchers, chaos injection, stateful-cursor bookkeeping) that don't apply to emitters.

public sealed class MockEmitterOptions
Inheritance
MockEmitterOptions
Inherited Members

Remarks

The mock server constructs an instance of this type from its own MockOptions and passes it to every emitter's StartAsync(BowireRecording, MockEmitterOptions, ILogger, CancellationToken). Downstream emitter code reads ReplaySpeed and Loop without any knowledge of the matchers / chaos knobs the server is using.

Constructors

MockEmitterOptions()

public MockEmitterOptions()

Properties

Loop

When true, proactive emitters replay their step sequence on repeat. Has no effect on request-driven replay paths — those are handled by the mock server's matcher, not by emitters.

public bool Loop { get; set; }

Property Value

bool

Remarks

An emitter that honours this is expected to bound the cycle by the recording's own duration rather than starting over the instant the last frame is out (#708): ReplaySpeed says how fast the frames go, not how often the recording repeats, and the two together must not add up to an unbounded publish rate.

LoopInterval

How long one loop cycle should take, when the operator wants to say it rather than let the recording decide (#708). null (default) means the recording's own duration under ReplaySpeed, with a floor; Zero means no pacing between cycles at all — the emitter starts over the instant the last frame is out, at whatever rate the machine manages.

public TimeSpan? LoopInterval { get; set; }

Property Value

TimeSpan?

Remarks

An unbounded publish rate is a thing to ask for, which is what this is: it used to fall out of ReplaySpeed = 0 together with Loop, where nobody had asked for it and nothing said it would happen. Ignored when Loop is false.

ReplaySpeed

Speed multiplier for streaming replay. 1.0 preserves the original cadence captured on the per-frame timestampMs; 2.0 is twice as fast; 0 emits every frame immediately. Non-positive values other than 0 are treated as 0.

public double ReplaySpeed { get; set; }

Property Value

double