Chromium Code Reviews| Index: sdk/lib/convert/chunked_conversion.dart |
| diff --git a/sdk/lib/convert/chunked_conversion.dart b/sdk/lib/convert/chunked_conversion.dart |
| index 95e561c47d2941f1478e361dff1fe9908b7162fe..ee71f4f2b570fbaac029fbec9932f9817883cc39 100644 |
| --- a/sdk/lib/convert/chunked_conversion.dart |
| +++ b/sdk/lib/convert/chunked_conversion.dart |
| @@ -6,55 +6,14 @@ part of dart.convert; |
| typedef void _ChunkedConversionCallback<T>(T accumulated); |
| -/** |
| - * A converter that supports chunked conversions. |
| - * |
| - * In addition to immediate conversions from [S] to [T], a chunked converter |
| - * also supports longer-running conversions from [S2] to [T2]. |
| - * |
| - * Frequently, the source and target types are the same, but this is not a |
| - * requirement. In particular, converters that work with lists in the |
| - * immediate conversion, could flatten the type for the chunked conversion. |
| - * |
| - * For example, the [LineSplitter] class returns a `List<String>` for the |
| - * immediate conversion, but returns individual `String`s in the chunked |
| - * conversion. |
| - */ |
| +/// This class is deprecated. Extend [Converter] directly. |
| +@deprecated |
| abstract class ChunkedConverter<S, T, S2, T2> extends Converter<S, T> { |
| + const ChunkedConverter(): super(); |
| - const ChunkedConverter(); |
| - |
| - /** |
| - * Starts a chunked conversion. |
| - * |
| - * The returned sink serves as input for the long-running conversion. The |
| - * given [sink] serves as output. |
| - */ |
| - ChunkedConversionSink<S2> startChunkedConversion(Sink<T2> sink) { |
| - throw new UnsupportedError( |
| - "This converter does not support chunked conversions: $this"); |
| - } |
| - |
| - Stream<T2> bind(Stream<S2> stream) { |
| - return new Stream<T2>.eventTransformed( |
| - stream, |
| - (EventSink<T2> sink) => |
| - new _ConverterStreamEventSink<S2, T2>(this, sink)); |
| - } |
| - |
| - /** |
| - * Fuses this instance with the given [other] converter. |
| - * |
| - * If [other] is a ChunkedConverter (with matching generic types), returns a |
| - * [ChunkedConverter]. |
| - */ |
| - Converter<S, dynamic> fuse(Converter<T, dynamic> other) { |
| - if (other is ChunkedConverter<T, dynamic, T2, dynamic>) { |
| - return new _FusedChunkedConverter<S, T, dynamic, S2, T2, dynamic>( |
| - this, other); |
| - } |
| - return super.fuse(other); |
| - } |
| + dynamic bind(dynamic other) => super.bind(other); |
| + dynamic startChunkedConversion(dynamic sink) => |
| + super.startChunkedConversion(sink); |
| } |
| /** |
| @@ -65,13 +24,13 @@ abstract class ChunkedConverter<S, T, S2, T2> extends Converter<S, T> { |
| * work with a plain `Sink`, but may work more efficiently with certain |
| * specialized types of `ChunkedConversionSink`. |
| * |
| - * It is recommended that implementations of `ChunkedConversionSink` extends |
| + * It is recommended that implementations of `ChunkedConversionSink` extend |
| * this class, to inherit any further methods that may be added to the class. |
| */ |
| abstract class ChunkedConversionSink<T> implements Sink<T> { |
| ChunkedConversionSink(); |
| factory ChunkedConversionSink.withCallback( |
| - void callback(List<T> accumulated)) = _SimpleCallbackSink; |
| + void callback(List<T> accumulated)) = _SimpleCallbackSink<T>; |
| /** |
| * Adds chunked data to this sink. |
| @@ -122,10 +81,10 @@ class _ConverterStreamEventSink<S, T> implements EventSink<S> { |
| * The input sink for new data. All data that is received with |
| * [handleData] is added into this sink. |
| */ |
| - final ChunkedConversionSink<S> _chunkedSink; |
| + final Sink<S> _chunkedSink; |
| _ConverterStreamEventSink( |
| - Converter/*=ChunkedConverter<dynamic, dynamic, S, T>*/ converter, |
| + Converter/*=Converter<S, T>*/ converter, |
|
Lasse Reichstein Nielsen
2016/05/11 09:06:14
Why not Converter<S,T> in all cases?
floitsch
2016/05/11 11:20:44
Because "S, T" in non-strong mode are not connecte
|
| EventSink<T> sink) |
| : this._eventSink = sink, |
| _chunkedSink = converter.startChunkedConversion(sink); |
| @@ -136,20 +95,3 @@ class _ConverterStreamEventSink<S, T> implements EventSink<S> { |
| } |
| void close() { _chunkedSink.close(); } |
| } |
| - |
| -/** |
| - * Fuses two chunked converters. |
| - */ |
| -class _FusedChunkedConverter<S, M, T, S2, M2, T2> extends |
| - ChunkedConverter<S, T, S2, T2> { |
| - final ChunkedConverter<S, M, S2, M2> _first; |
| - final ChunkedConverter<M, T, M2, T2> _second; |
| - |
| - _FusedChunkedConverter(this._first, this._second); |
| - |
| - T convert(S input) => _second.convert(_first.convert(input)); |
| - |
| - ChunkedConversionSink<S2> startChunkedConversion(Sink<T2> sink) { |
| - return _first.startChunkedConversion(_second.startChunkedConversion(sink)); |
| - } |
| -} |