finalize method
Freezes all mutable fields and returns a single-subscription ByteStream
containing the request body.
Implementation
@override
http.ByteStream finalize() {
super.finalize();
final byteStream = http.ByteStream.fromBytes(bodyBytes);
if (onProgress == null) {
return byteStream;
} else {
final total = contentLength;
var bytes = 0;
final progressTransformer =
StreamTransformer<List<int>, List<int>>.fromHandlers(
handleData: (data, sink) {
bytes += data.length;
onProgress!(bytes, total);
sink.add(data);
},
);
final stream = byteStream.transform(progressTransformer);
return http.ByteStream(stream);
}
}