flush method

  1. @override
Future flush([
  1. bool oneway = false
])
override

write buffer to socket

Implementation

@override
Future flush([bool oneway = false]) async {
  await _socket?.addStream(
      Stream.fromIterable(outputBuffer!.map<List<int>>((e) => e)));
  if (oneway) return;
  var inputBufferInt = [...(await _bstl?.first ?? [])];
  var total = [];
  total.addAll(inputBufferInt);
  if (inFrame) {
    var totalLenBytes = inputBufferInt
        .sublist(0, 4)
        .map<int>((e) => e?.toSigned(8) ?? 0)
        .toList();
    var len = TFramedTransport.decodeWord(Int8List.fromList(totalLenBytes));
    while (total.length < len + 4) {
      inputBufferInt = [...(await _bstl?.first ?? [])];
      total.addAll(inputBufferInt);
    }
  }
  inputBuffer = total.map<int?>((e) => e?.toSigned(8)).toList();
  outputBuffer?.clear();
}