Skip to content

IHex1bTerminalWorkloadFilter

Namespace: Hex1b

Assembly: Hex1b.dll

A filter that observes data flowing between the terminal and workload.

csharp
public interface IHex1bTerminalWorkloadFilter

Methods

OnFrameCompleteAsync(TimeSpan, CancellationToken)

Called when the workload output channel is drained (no more data immediately available).

Parameters:

Returns: ValueTask

csharp
ValueTask OnFrameCompleteAsync(TimeSpan elapsed, CancellationToken ct = default)

OnInputAsync(IReadOnlyList<AnsiToken>, TimeSpan, CancellationToken)

Called when input is being sent to the workload.

Parameters:

Returns: ValueTask

csharp
ValueTask OnInputAsync(IReadOnlyList<AnsiToken> tokens, TimeSpan elapsed, CancellationToken ct = default)

OnOutputAsync(IReadOnlyList<AnsiToken>, TimeSpan, CancellationToken)

Called when output data is read from the workload.

Parameters:

Returns: ValueTask

csharp
ValueTask OnOutputAsync(IReadOnlyList<AnsiToken> tokens, TimeSpan elapsed, CancellationToken ct = default)

OnResizeAsync(int, int, TimeSpan, CancellationToken)

Called when the terminal is resized.

Parameters:

Returns: ValueTask

csharp
ValueTask OnResizeAsync(int width, int height, TimeSpan elapsed, CancellationToken ct = default)

OnSessionEndAsync(TimeSpan, CancellationToken)

Called when the terminal session ends.

Parameters:

Returns: ValueTask

csharp
ValueTask OnSessionEndAsync(TimeSpan elapsed, CancellationToken ct = default)

OnSessionStartAsync(int, int, DateTimeOffset, CancellationToken)

Called when the terminal session starts.

Parameters:

Returns: ValueTask

csharp
ValueTask OnSessionStartAsync(int width, int height, DateTimeOffset timestamp, CancellationToken ct = default)

Remarks

Workload filters see: Output FROM the workload (ANSI sequences heading to display)Input TO the workload (keystrokes, mouse events)Resize eventsFrame completion signals (when the workload has finished a batch of output)

Use cases include: Recording terminal sessions (Asciinema)Logging/debuggingPerformance analysisTesting instrumentation

Released under the MIT License.