| OLD | NEW |
| 1 part of dart.async; | 1 part of dart.async; |
| 2 | 2 class _EventSinkWrapper<T> implements EventSink<T> {_EventSink _sink; |
| 3 class _EventSinkWrapper<T> implements EventSink<T> { | 3 _EventSinkWrapper(this._sink); |
| 4 _EventSink _sink; | 4 void add(T data) { |
| 5 _EventSinkWrapper(this._sink); | 5 _sink._add(data); |
| 6 void add(T data) { | |
| 7 _sink._add(data); | |
| 8 } | 6 } |
| 9 void addError(error, [StackTrace stackTrace]) { | 7 void addError(error, [StackTrace stackTrace]) { |
| 10 _sink._addError(error, stackTrace); | 8 _sink._addError(error, stackTrace); |
| 11 } | 9 } |
| 12 void close() { | 10 void close() { |
| 13 _sink._close(); | 11 _sink._close(); |
| 14 } | 12 } |
| 15 } | 13 } |
| 16 class _SinkTransformerStreamSubscription<S, T> | 14 class _SinkTransformerStreamSubscription<S, T> extends _BufferingStreamSubscrip
tion<T> {EventSink _transformerSink; |
| 17 extends _BufferingStreamSubscription<T> { | 15 StreamSubscription<S> _subscription; |
| 18 EventSink _transformerSink; | 16 _SinkTransformerStreamSubscription(Stream<S> source, _SinkMapper mapper, void o
nData(T data), Function onError, void onDone(), bool cancelOnError) : super(onDa
ta, onError, onDone, cancelOnError) { |
| 19 StreamSubscription<S> _subscription; | 17 _EventSinkWrapper<T> eventSink = new _EventSinkWrapper<T>(this); |
| 20 _SinkTransformerStreamSubscription(Stream<S> source, _SinkMapper mapper, | 18 _transformerSink = mapper(eventSink); |
| 21 void onData(T data), Function onError, void onDone(), bool cancelOnError) | 19 _subscription = source.listen(_handleData, onError: _handleError, onDone: _hand
leDone); |
| 22 : super(onData, onError, onDone, cancelOnError) { | 20 } |
| 23 _EventSinkWrapper<T> eventSink = new _EventSinkWrapper<T>(this); | 21 bool get _isSubscribed => _subscription != null; |
| 24 _transformerSink = mapper(eventSink); | 22 void _add(T data) { |
| 25 _subscription = | 23 if (_isClosed) { |
| 26 source.listen(_handleData, onError: _handleError, onDone: _handleDone); | 24 throw new StateError("Stream is already closed"); |
| 27 } | 25 } |
| 28 bool get _isSubscribed => _subscription != null; | 26 super._add(data); |
| 29 void _add(T data) { | 27 } |
| 30 if (_isClosed) { | 28 void _addError(Object error, StackTrace stackTrace) { |
| 31 throw new StateError("Stream is already closed"); | 29 if (_isClosed) { |
| 30 throw new StateError("Stream is already closed"); |
| 31 } |
| 32 super._addError(error, stackTrace); |
| 33 } |
| 34 void _close() { |
| 35 if (_isClosed) { |
| 36 throw new StateError("Stream is already closed"); |
| 37 } |
| 38 super._close(); |
| 39 } |
| 40 void _onPause() { |
| 41 if (_isSubscribed) _subscription.pause(); |
| 42 } |
| 43 void _onResume() { |
| 44 if (_isSubscribed) _subscription.resume(); |
| 45 } |
| 46 Future _onCancel() { |
| 47 if (_isSubscribed) { |
| 48 StreamSubscription subscription = _subscription; |
| 49 _subscription = null; |
| 50 subscription.cancel(); |
| 51 } |
| 52 return null; |
| 53 } |
| 54 void _handleData(S data) { |
| 55 try { |
| 56 _transformerSink.add(data); |
| 57 } |
| 58 catch (e, s) { |
| 59 _addError(e, s); |
| 60 } |
| 61 } |
| 62 void _handleError(error, [stackTrace]) { |
| 63 try { |
| 64 _transformerSink.addError(error, DDC$RT.cast(stackTrace, dynamic, StackTrace,
"CastGeneral", """line 127, column 40 of dart:async/stream_transformers.dart: ""
", stackTrace is StackTrace, true)); |
| 65 } |
| 66 catch (e, s) { |
| 67 if (identical(e, error)) { |
| 68 _addError(error, DDC$RT.cast(stackTrace, dynamic, StackTrace, "CastGeneral",
"""line 130, column 26 of dart:async/stream_transformers.dart: """, stackTrace
is StackTrace, true)); |
| 32 } | 69 } |
| 33 super._add(data); | 70 else { |
| 34 } | 71 _addError(e, s); |
| 35 void _addError(Object error, StackTrace stackTrace) { | |
| 36 if (_isClosed) { | |
| 37 throw new StateError("Stream is already closed"); | |
| 38 } | |
| 39 super._addError(error, stackTrace); | |
| 40 } | |
| 41 void _close() { | |
| 42 if (_isClosed) { | |
| 43 throw new StateError("Stream is already closed"); | |
| 44 } | |
| 45 super._close(); | |
| 46 } | |
| 47 void _onPause() { | |
| 48 if (_isSubscribed) _subscription.pause(); | |
| 49 } | |
| 50 void _onResume() { | |
| 51 if (_isSubscribed) _subscription.resume(); | |
| 52 } | |
| 53 Future _onCancel() { | |
| 54 if (_isSubscribed) { | |
| 55 StreamSubscription subscription = _subscription; | |
| 56 _subscription = null; | |
| 57 subscription.cancel(); | |
| 58 } | |
| 59 return null; | |
| 60 } | |
| 61 void _handleData(S data) { | |
| 62 try { | |
| 63 _transformerSink.add(data); | |
| 64 } catch (e, s) { | |
| 65 _addError(e, s); | |
| 66 } | |
| 67 } | |
| 68 void _handleError(error, [stackTrace]) { | |
| 69 try { | |
| 70 _transformerSink.addError(error, DDC$RT.cast(stackTrace, dynamic, | |
| 71 StackTrace, "CastGeneral", | |
| 72 """line 127, column 40 of dart:async/stream_transformers.dart: """, | |
| 73 stackTrace is StackTrace, true)); | |
| 74 } catch (e, s) { | |
| 75 if (identical(e, error)) { | |
| 76 _addError(error, DDC$RT.cast(stackTrace, dynamic, StackTrace, | |
| 77 "CastGeneral", | |
| 78 """line 130, column 26 of dart:async/stream_transformers.dart: """, | |
| 79 stackTrace is StackTrace, true)); | |
| 80 } else { | |
| 81 _addError(e, s); | |
| 82 } | |
| 83 } | |
| 84 } | |
| 85 void _handleDone() { | |
| 86 try { | |
| 87 _subscription = null; | |
| 88 _transformerSink.close(); | |
| 89 } catch (e, s) { | |
| 90 _addError(e, s); | |
| 91 } | 72 } |
| 92 } | 73 } |
| 93 } | 74 } |
| 94 typedef EventSink<S> _SinkMapper<S, T>(EventSink<T> output); | 75 void _handleDone() { |
| 95 class _StreamSinkTransformer<S, T> implements StreamTransformer<S, T> { | 76 try { |
| 96 final _SinkMapper<S, T> _sinkMapper; | 77 _subscription = null; |
| 97 const _StreamSinkTransformer(this._sinkMapper); | 78 _transformerSink.close(); |
| 98 Stream<T> bind(Stream<S> stream) => | 79 } |
| 99 new _BoundSinkStream<S, T>(stream, _sinkMapper); | 80 catch (e, s) { |
| 100 } | 81 _addError(e, s); |
| 101 class _BoundSinkStream<S, T> extends Stream<T> { | |
| 102 final _SinkMapper<S, T> _sinkMapper; | |
| 103 final Stream<S> _stream; | |
| 104 bool get isBroadcast => _stream.isBroadcast; | |
| 105 _BoundSinkStream(this._stream, this._sinkMapper); | |
| 106 StreamSubscription<T> listen(void onData(T event), | |
| 107 {Function onError, void onDone(), bool cancelOnError}) { | |
| 108 cancelOnError = identical(true, cancelOnError); | |
| 109 StreamSubscription<T> subscription = ((__x118) => DDC$RT.cast(__x118, | |
| 110 DDC$RT.type( | |
| 111 (_SinkTransformerStreamSubscription<dynamic, dynamic> _) {}), | |
| 112 DDC$RT.type((StreamSubscription<T> _) {}), "CastExact", | |
| 113 """line 186, column 42 of dart:async/stream_transformers.dart: """, | |
| 114 __x118 is StreamSubscription<T>, false))( | |
| 115 new _SinkTransformerStreamSubscription( | |
| 116 _stream, _sinkMapper, onData, onError, onDone, cancelOnError)); | |
| 117 return subscription; | |
| 118 } | 82 } |
| 119 } | 83 } |
| 120 typedef void _TransformDataHandler<S, T>(S data, EventSink<T> sink); | |
| 121 typedef void _TransformErrorHandler<T>( | |
| 122 Object error, StackTrace stackTrace, EventSink<T> sink); | |
| 123 typedef void _TransformDoneHandler<T>(EventSink<T> sink); | |
| 124 class _HandlerEventSink<S, T> implements EventSink<S> { | |
| 125 final _TransformDataHandler<S, T> _handleData; | |
| 126 final _TransformErrorHandler<T> _handleError; | |
| 127 final _TransformDoneHandler<T> _handleDone; | |
| 128 final EventSink<T> _sink; | |
| 129 _HandlerEventSink( | |
| 130 this._handleData, this._handleError, this._handleDone, this._sink); | |
| 131 void add(S data) => _handleData(data, _sink); | |
| 132 void addError(Object error, [StackTrace stackTrace]) => | |
| 133 _handleError(error, stackTrace, _sink); | |
| 134 void close() => _handleDone(_sink); | |
| 135 } | 84 } |
| 136 class _StreamHandlerTransformer<S, T> extends _StreamSinkTransformer<S, T> { | 85 typedef EventSink<S> _SinkMapper<S, T>(EventSink<T> output); |
| 137 _StreamHandlerTransformer({void handleData(S data, EventSink<T> sink), | 86 class _StreamSinkTransformer<S, T> implements StreamTransformer<S, T> {final _S
inkMapper<S, T> _sinkMapper; |
| 138 void handleError(Object error, StackTrace stackTrace, EventSink<T> sink), | 87 const _StreamSinkTransformer(this._sinkMapper); |
| 139 void handleDone(EventSink<T> sink)}) | 88 Stream<T> bind(Stream<S> stream) => new _BoundSinkStream<S, T>(stream, _sinkMap
per); |
| 140 : super(((__x125) => DDC$RT.wrap((dynamic f(EventSink<T> __u120)) { | |
| 141 dynamic c(EventSink<T> x0) => ((__x119) => DDC$RT.cast(__x119, dynamic, | |
| 142 DDC$RT.type((EventSink<S> _) {}), "CastResult", | |
| 143 """line 233, column 15 of dart:async/stream_transformers.dart: """, | |
| 144 __x119 is EventSink<S>, false))(f(x0)); | |
| 145 return f == null ? null : c; | |
| 146 }, __x125, DDC$RT.type((__t123<T> _) {}), | |
| 147 DDC$RT.type((__t121<T, S> _) {}), "WrapLiteral", | |
| 148 """line 233, column 15 of dart:async/stream_transformers.dart: """, | |
| 149 __x125 is __t121<T, S>))((EventSink<T> outputSink) { | |
| 150 if (handleData == null) handleData = _defaultHandleData; | |
| 151 if (handleError == null) handleError = _defaultHandleError; | |
| 152 if (handleDone == null) handleDone = _defaultHandleDone; | |
| 153 return new _HandlerEventSink<S, T>( | |
| 154 handleData, handleError, handleDone, outputSink); | |
| 155 })); | |
| 156 Stream<T> bind(Stream<S> stream) { | |
| 157 return super.bind(stream); | |
| 158 } | |
| 159 static void _defaultHandleData(var data, EventSink sink) { | |
| 160 sink.add(data); | |
| 161 } | |
| 162 static void _defaultHandleError( | |
| 163 error, StackTrace stackTrace, EventSink sink) { | |
| 164 sink.addError(error); | |
| 165 } | |
| 166 static void _defaultHandleDone(EventSink sink) { | |
| 167 sink.close(); | |
| 168 } | |
| 169 } | 89 } |
| 170 typedef StreamSubscription<T> _SubscriptionTransformer<S, T>( | 90 class _BoundSinkStream<S, T> extends Stream<T> {final _SinkMapper<S, T> _sinkMa
pper; |
| 171 Stream<S> stream, bool cancelOnError); | 91 final Stream<S> _stream; |
| 172 class _StreamSubscriptionTransformer<S, T> implements StreamTransformer<S, T> { | 92 bool get isBroadcast => _stream.isBroadcast; |
| 173 final _SubscriptionTransformer<S, T> _transformer; | 93 _BoundSinkStream(this._stream, this._sinkMapper); |
| 174 const _StreamSubscriptionTransformer(this._transformer); | 94 StreamSubscription<T> listen(void onData(T event), { |
| 175 Stream<T> bind(Stream<S> stream) => | 95 Function onError, void onDone(), bool cancelOnError} |
| 176 new _BoundSubscriptionStream<S, T>(stream, _transformer); | 96 ) { |
| 97 cancelOnError = identical(true, cancelOnError); |
| 98 StreamSubscription<T> subscription = ((__x118) => DDC$RT.cast(__x118, DDC$RT.ty
pe((_SinkTransformerStreamSubscription<dynamic, dynamic> _) { |
| 177 } | 99 } |
| 178 class _BoundSubscriptionStream<S, T> extends Stream<T> { | 100 ), DDC$RT.type((StreamSubscription<T> _) { |
| 179 final _SubscriptionTransformer<S, T> _transformer; | |
| 180 final Stream<S> _stream; | |
| 181 _BoundSubscriptionStream(this._stream, this._transformer); | |
| 182 StreamSubscription<T> listen(void onData(T event), | |
| 183 {Function onError, void onDone(), bool cancelOnError}) { | |
| 184 cancelOnError = identical(true, cancelOnError); | |
| 185 StreamSubscription<T> result = _transformer(_stream, cancelOnError); | |
| 186 result.onData(onData); | |
| 187 result.onError(onError); | |
| 188 result.onDone(onDone); | |
| 189 return result; | |
| 190 } | |
| 191 } | 101 } |
| 192 typedef EventSink<S> __t121<T, S>(EventSink<T> __u122); | 102 ), "CastExact", """line 186, column 42 of dart:async/stream_transformers.dart: "
"", __x118 is StreamSubscription<T>, false))(new _SinkTransformerStreamSubscript
ion(_stream, _sinkMapper, onData, onError, onDone, cancelOnError)); |
| 193 typedef dynamic __t123<T>(EventSink<T> __u124); | 103 return subscription; |
| 104 } |
| 105 } |
| 106 typedef void _TransformDataHandler<S, T>(S data, EventSink<T> sink); |
| 107 typedef void _TransformErrorHandler<T>(Object error, StackTrace stackTrace, Eve
ntSink<T> sink); |
| 108 typedef void _TransformDoneHandler<T>(EventSink<T> sink); |
| 109 class _HandlerEventSink<S, T> implements EventSink<S> {final _TransformDataHand
ler<S, T> _handleData; |
| 110 final _TransformErrorHandler<T> _handleError; |
| 111 final _TransformDoneHandler<T> _handleDone; |
| 112 final EventSink<T> _sink; |
| 113 _HandlerEventSink(this._handleData, this._handleError, this._handleDone, this._
sink); |
| 114 void add(S data) => _handleData(data, _sink); |
| 115 void addError(Object error, [StackTrace stackTrace]) => _handleError(error, sta
ckTrace, _sink); |
| 116 void close() => _handleDone(_sink); |
| 117 } |
| 118 class _StreamHandlerTransformer<S, T> extends _StreamSinkTransformer<S, T> {_St
reamHandlerTransformer({ |
| 119 void handleData(S data, EventSink<T> sink), void handleError(Object error, Stack
Trace stackTrace, EventSink<T> sink), void handleDone(EventSink<T> sink)} |
| 120 ) : super(((__x125) => DDC$RT.wrap((dynamic f(EventSink<T> __u120)) { |
| 121 dynamic c(EventSink<T> x0) => ((__x119) => DDC$RT.cast(__x119, dynamic, DDC$RT.t
ype((EventSink<S> _) { |
| 122 } |
| 123 ), "CastResult", """line 233, column 15 of dart:async/stream_transformers.dart:
""", __x119 is EventSink<S>, false))(f(x0)); |
| 124 return f == null ? null : c; |
| 125 } |
| 126 , __x125, DDC$RT.type((__t123<T> _) { |
| 127 } |
| 128 ), DDC$RT.type((__t121<T, S> _) { |
| 129 } |
| 130 ), "WrapLiteral", """line 233, column 15 of dart:async/stream_transformers.dart:
""", __x125 is __t121<T, S>))((EventSink<T> outputSink) { |
| 131 if (handleData == null) handleData = _defaultHandleData; |
| 132 if (handleError == null) handleError = _defaultHandleError; |
| 133 if (handleDone == null) handleDone = _defaultHandleDone; |
| 134 return new _HandlerEventSink<S, T>(handleData, handleError, handleDone, outputS
ink); |
| 135 } |
| 136 )); |
| 137 Stream<T> bind(Stream<S> stream) { |
| 138 return super.bind(stream); |
| 139 } |
| 140 static void _defaultHandleData(var data, EventSink sink) { |
| 141 sink.add(data); |
| 142 } |
| 143 static void _defaultHandleError(error, StackTrace stackTrace, EventSink sink) { |
| 144 sink.addError(error); |
| 145 } |
| 146 static void _defaultHandleDone(EventSink sink) { |
| 147 sink.close(); |
| 148 } |
| 149 } |
| 150 typedef StreamSubscription<T> _SubscriptionTransformer<S, T>(Stream<S> stream,
bool cancelOnError); |
| 151 class _StreamSubscriptionTransformer<S, T> implements StreamTransformer<S, T> {
final _SubscriptionTransformer<S, T> _transformer; |
| 152 const _StreamSubscriptionTransformer(this._transformer); |
| 153 Stream<T> bind(Stream<S> stream) => new _BoundSubscriptionStream<S, T>(stream,
_transformer); |
| 154 } |
| 155 class _BoundSubscriptionStream<S, T> extends Stream<T> {final _SubscriptionTran
sformer<S, T> _transformer; |
| 156 final Stream<S> _stream; |
| 157 _BoundSubscriptionStream(this._stream, this._transformer); |
| 158 StreamSubscription<T> listen(void onData(T event), { |
| 159 Function onError, void onDone(), bool cancelOnError} |
| 160 ) { |
| 161 cancelOnError = identical(true, cancelOnError); |
| 162 StreamSubscription<T> result = _transformer(_stream, cancelOnError); |
| 163 result.onData(onData); |
| 164 result.onError(onError); |
| 165 result.onDone(onDone); |
| 166 return result; |
| 167 } |
| 168 } |
| 169 typedef EventSink<S> __t121<T, S>(EventSink<T> __u122); |
| 170 typedef dynamic __t123<T>(EventSink<T> __u124); |
| OLD | NEW |