finalize method

ByteStream finalize()

Freezes all mutable fields and returns a single-subscription ByteStream that will emit the request body.

Implementation

HTTP.ByteStream finalize() {
  final byteStream = super.finalize();
  if (onProgress == null) return byteStream;

  final total = this.contentLength;
  int bytes = 0;

  final t = StreamTransformer.fromHandlers(
      handleData: (List<int> data, EventSink<List<int>> sink) {
    bytes += data.length;
    onProgress!(bytes, total);
    sink.add(data);
  });
  final stream = byteStream.transform(t);
  return HTTP.ByteStream(stream);
}