OLD | NEW |
| (Empty) |
1 part of dart.convert; | |
2 typedef void _ChunkedConversionCallback<T>(T accumulated); | |
3 abstract class ChunkedConversionSink<T> implements Sink<T> {ChunkedConversionSi
nk(); | |
4 factory ChunkedConversionSink.withCallback(void callback(List<T> accumulated))
= _SimpleCallbackSink; | |
5 void add(T chunk); | |
6 void close(); | |
7 } | |
8 class _SimpleCallbackSink<T> extends ChunkedConversionSink<T> {final _ChunkedCo
nversionCallback<List<T>> _callback; | |
9 final List<T> _accumulated = <T> []; | |
10 _SimpleCallbackSink(this._callback); | |
11 void add(T chunk) { | |
12 _accumulated.add(chunk); | |
13 } | |
14 void close() { | |
15 _callback(_accumulated); | |
16 } | |
17 } | |
18 class _EventSinkAdapter<T> implements ChunkedConversionSink<T> {final EventSink
<T> _sink; | |
19 _EventSinkAdapter(this._sink); | |
20 void add(T data) => _sink.add(data); | |
21 void close() => _sink.close(); | |
22 } | |
23 class _ConverterStreamEventSink<S, T> implements EventSink<S> {final EventSink<
T> _eventSink; | |
24 ChunkedConversionSink _chunkedSink; | |
25 _ConverterStreamEventSink(Converter converter, EventSink<T> sink) : this._event
Sink = sink, _chunkedSink = converter.startChunkedConversion(sink); | |
26 void add(S o) => _chunkedSink.add(o); | |
27 void addError(Object error, [StackTrace stackTrace]) { | |
28 _eventSink.addError(error, stackTrace); | |
29 } | |
30 void close() => _chunkedSink.close(); | |
31 } | |
OLD | NEW |