ОС
class GZipIOSink implements IOSink {
GZipIOSink(this.sink, this.gzip, {this.encoding = utf8});
final IOSink sink;
final GZipCodec gzip;
@override
Encoding encoding;
@override
void add(List<int> data) {
sink.add(gzip.encode(data));
}
@override
void addError(Object error, [StackTrace stackTrace]) {
sink.addError(error, stackTrace);
}
@override
Future<void> addStream(Stream<List<int>> stream) {
return sink.addStream(stream.transform(gzip.encoder));
}
@override
Future<void> close() {
return sink.close();
}
@override
Future<void> get done {
return sink.done;
}
@override
Future<void> flush() {
return sink.flush();
}
@override
void write(Object obj) {
add(encoding.encode('$obj'));
}
@override
void writeAll(Iterable<Object> objects, [String separator = '']) {
write(objects.join(separator));
}
@override
void writeCharCode(int charCode) {}
@override
void writeln([Object obj = '']) {
write('$obj\n');
}
}