IHex1bTerminalWorkloadFilter
Namespace: Hex1b
Assembly: Hex1b.dll
A filter that observes data flowing between the terminal and workload.
public interface IHex1bTerminalWorkloadFilterMethods
OnFrameCompleteAsync(TimeSpan, CancellationToken)
Called when the workload output channel is drained (no more data immediately available).
Parameters:
elapsed(TimeSpan): Time elapsed since session start.ct(CancellationToken): Cancellation token.
Returns: ValueTask
ValueTask OnFrameCompleteAsync(TimeSpan elapsed, CancellationToken ct = default)OnInputAsync(IReadOnlyList<AnsiToken>, TimeSpan, CancellationToken)
Called when input is being sent to the workload.
Parameters:
tokens(IReadOnlyList<AnsiToken>): The parsed ANSI tokens from the input.elapsed(TimeSpan): Time elapsed since session start.ct(CancellationToken): Cancellation token.
Returns: ValueTask
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:
tokens(IReadOnlyList<AnsiToken>): The parsed ANSI tokens from the workload output.elapsed(TimeSpan): Time elapsed since session start.ct(CancellationToken): Cancellation token.
Returns: ValueTask
ValueTask OnOutputAsync(IReadOnlyList<AnsiToken> tokens, TimeSpan elapsed, CancellationToken ct = default)OnResizeAsync(int, int, TimeSpan, CancellationToken)
Called when the terminal is resized.
Parameters:
width(Int32): New width in columns.height(Int32): New height in rows.elapsed(TimeSpan): Time elapsed since session start.ct(CancellationToken): Cancellation token.
Returns: ValueTask
ValueTask OnResizeAsync(int width, int height, TimeSpan elapsed, CancellationToken ct = default)OnSessionEndAsync(TimeSpan, CancellationToken)
Called when the terminal session ends.
Parameters:
elapsed(TimeSpan): Total duration of the session.ct(CancellationToken): Cancellation token.
Returns: ValueTask
ValueTask OnSessionEndAsync(TimeSpan elapsed, CancellationToken ct = default)OnSessionStartAsync(int, int, DateTimeOffset, CancellationToken)
Called when the terminal session starts.
Parameters:
width(Int32): Initial terminal width.height(Int32): Initial terminal height.timestamp(DateTimeOffset): When the session started.ct(CancellationToken): Cancellation token.
Returns: ValueTask
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