JsonTerminalBackend constructor
JsonTerminalBackend({
- required void sendMessage(
- String message
- required Stream<
Object?> inboundMessages, - Future<
void> flushMessages()?, - Future<
void> closeTransport()?, - TerminalDimensions initialSize = (width: 80, height: 24),
- bool supportsAnsi = true,
- bool isTerminal = true,
- ColorProfile colorProfile = ColorProfile.trueColor,
- ({bool useBackspace, bool useTabs}) movementCaps = (useTabs: false, useBackspace: true),
Creates a JSON protocol backend.
Implementation
JsonTerminalBackend({
required void Function(String message) sendMessage,
required Stream<Object?> inboundMessages,
Future<void> Function()? flushMessages,
Future<void> Function()? closeTransport,
TerminalDimensions initialSize = const (width: 80, height: 24),
this.supportsAnsi = true,
this.isTerminal = true,
this.colorProfile = ColorProfile.trueColor,
this.movementCaps = const (useTabs: false, useBackspace: true),
}) : _flushMessages = flushMessages,
_closeTransport = closeTransport,
_delegate = EmbeddedTerminalBackend(
output: (data) {
_trySendBridgeMessage(
sendMessage,
TerminalBridgeMessage.output(data).encodeJson(),
);
},
initialSize: initialSize,
supportsAnsi: supportsAnsi,
isTerminal: isTerminal,
colorProfile: colorProfile,
movementCaps: movementCaps,
) {
_inboundSubscription = inboundMessages.listen(
_handleInboundMessage,
onError: _delegate.addInputError,
onDone: _delegate.requestShutdown,
cancelOnError: false,
);
}