| OLD | NEW |
| (Empty) |
| 1 part of dart.async; | |
| 2 class _EventSinkWrapper<T> implements EventSink<T> {_EventSink _sink; | |
| 3 _EventSinkWrapper(this._sink); | |
| 4 void add(T data) { | |
| 5 _sink._add(data); | |
| 6 } | |
| 7 void addError(error, [StackTrace stackTrace]) { | |
| 8 _sink._addError(error, stackTrace); | |
| 9 } | |
| 10 void close() { | |
| 11 _sink._close(); | |
| 12 } | |
| 13 } | |
| 14 class _SinkTransformerStreamSubscription<S, T> extends _BufferingStreamSubscrip
tion<T> {EventSink _transformerSink; | |
| 15 StreamSubscription<S> _subscription; | |
| 16 _SinkTransformerStreamSubscription(Stream<S> source, _SinkMapper<S, T> mapper,
void onData(T data), Function onError, void onDone(), bool cancelOnError) : supe
r(onData, onError, onDone, cancelOnError) { | |
| 17 _EventSinkWrapper<T> eventSink = new _EventSinkWrapper<T>(this); | |
| 18 _transformerSink = mapper(eventSink); | |
| 19 _subscription = source.listen(_handleData, onError: _handleError, onDone: _hand
leDone); | |
| 20 } | |
| 21 bool get _isSubscribed => _subscription != null; | |
| 22 void _add(T data) { | |
| 23 if (_isClosed) { | |
| 24 throw new StateError("Stream is already closed"); | |
| 25 } | |
| 26 super._add(data); | |
| 27 } | |
| 28 void _addError(Object error, StackTrace stackTrace) { | |
| 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, DEVC$RT.cast(stackTrace, dynamic, StackTrace,
"DynamicCast", """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, DEVC$RT.cast(stackTrace, dynamic, StackTrace, "DynamicCast"
, """line 130, column 26 of dart:async/stream_transformers.dart: """, stackTrace
is StackTrace, true)); | |
| 69 } | |
| 70 else { | |
| 71 _addError(e, s); | |
| 72 } | |
| 73 } | |
| 74 } | |
| 75 void _handleDone() { | |
| 76 try { | |
| 77 _subscription = null; | |
| 78 _transformerSink.close(); | |
| 79 } | |
| 80 catch (e, s) { | |
| 81 _addError(e, s); | |
| 82 } | |
| 83 } | |
| 84 } | |
| 85 typedef EventSink<S> _SinkMapper<S, T>(EventSink<T> output); | |
| 86 class _StreamSinkTransformer<S, T> implements StreamTransformer<S, T> {final _S
inkMapper<S, T> _sinkMapper; | |
| 87 const _StreamSinkTransformer(this._sinkMapper); | |
| 88 Stream<T> bind(Stream<S> stream) => new _BoundSinkStream<S, T>(stream, _sinkMap
per); | |
| 89 } | |
| 90 class _BoundSinkStream<S, T> extends Stream<T> {final _SinkMapper<S, T> _sinkMa
pper; | |
| 91 final Stream<S> _stream; | |
| 92 bool get isBroadcast => _stream.isBroadcast; | |
| 93 _BoundSinkStream(this._stream, this._sinkMapper); | |
| 94 StreamSubscription<T> listen(void onData(T event), { | |
| 95 Function onError, void onDone(), bool cancelOnError} | |
| 96 ) { | |
| 97 cancelOnError = identical(true, cancelOnError); | |
| 98 StreamSubscription<T> subscription = new _SinkTransformerStreamSubscription<dyn
amic, T>(_stream, DEVC$RT.cast(_sinkMapper, DEVC$RT.type((_SinkMapper<S, T> _) { | |
| 99 } | |
| 100 ), DEVC$RT.type((_SinkMapper<dynamic, dynamic> _) { | |
| 101 } | |
| 102 ), "CompositeCast", """line 187, column 18 of dart:async/stream_transformers.dar
t: """, _sinkMapper is _SinkMapper<dynamic, dynamic>, false), onData, onError, o
nDone, cancelOnError); | |
| 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(((__x61) => DEVC$RT.cast(__x61, DEVC$RT.type((__CastType59<T> _) { | |
| 121 } | |
| 122 ), DEVC$RT.type((_SinkMapper<S, T> _) { | |
| 123 } | |
| 124 ), "InferableClosure", """line 233, column 15 of dart:async/stream_transformers.
dart: """, __x61 is _SinkMapper<S, T>, false))((EventSink<T> outputSink) { | |
| 125 if (handleData == null) handleData = DEVC$RT.cast(_defaultHandleData, __CastType
65, DEVC$RT.type((__CastType62<S, T> _) { | |
| 126 } | |
| 127 ), "CompositeCast", """line 234, column 48 of dart:async/stream_transformers.dar
t: """, _defaultHandleData is __CastType62<S, T>, false); | |
| 128 if (handleError == null) handleError = DEVC$RT.cast(_defaultHandleError, __Cast
Type72, DEVC$RT.type((__CastType68<T> _) { | |
| 129 } | |
| 130 ), "CompositeCast", """line 235, column 50 of dart:async/stream_transformers.dar
t: """, _defaultHandleError is __CastType68<T>, false); | |
| 131 if (handleDone == null) handleDone = _defaultHandleDone; | |
| 132 return new _HandlerEventSink<S, T>(handleData, handleError, handleDone, outputS
ink); | |
| 133 } | |
| 134 )); | |
| 135 Stream<T> bind(Stream<S> stream) { | |
| 136 return super.bind(stream); | |
| 137 } | |
| 138 static void _defaultHandleData(var data, EventSink sink) { | |
| 139 sink.add(data); | |
| 140 } | |
| 141 static void _defaultHandleError(error, StackTrace stackTrace, EventSink sink) { | |
| 142 sink.addError(error); | |
| 143 } | |
| 144 static void _defaultHandleDone(EventSink sink) { | |
| 145 sink.close(); | |
| 146 } | |
| 147 } | |
| 148 typedef StreamSubscription<T> _SubscriptionTransformer<S, T>(Stream<S> stream,
bool cancelOnError); | |
| 149 class _StreamSubscriptionTransformer<S, T> implements StreamTransformer<S, T> {
final _SubscriptionTransformer<S, T> _transformer; | |
| 150 const _StreamSubscriptionTransformer(this._transformer); | |
| 151 Stream<T> bind(Stream<S> stream) => new _BoundSubscriptionStream<S, T>(stream,
_transformer); | |
| 152 } | |
| 153 class _BoundSubscriptionStream<S, T> extends Stream<T> {final _SubscriptionTran
sformer<S, T> _transformer; | |
| 154 final Stream<S> _stream; | |
| 155 _BoundSubscriptionStream(this._stream, this._transformer); | |
| 156 StreamSubscription<T> listen(void onData(T event), { | |
| 157 Function onError, void onDone(), bool cancelOnError} | |
| 158 ) { | |
| 159 cancelOnError = identical(true, cancelOnError); | |
| 160 StreamSubscription<T> result = _transformer(_stream, cancelOnError); | |
| 161 result.onData(onData); | |
| 162 result.onError(onError); | |
| 163 result.onDone(onDone); | |
| 164 return result; | |
| 165 } | |
| 166 } | |
| 167 typedef dynamic __CastType59<T>(EventSink<T> __u60); | |
| 168 typedef void __CastType62<S, T>(S __u63, EventSink<T> __u64); | |
| 169 typedef void __CastType65(dynamic __u66, EventSink<dynamic> __u67); | |
| 170 typedef void __CastType68<T>(Object __u69, StackTrace __u70, EventSink<T> __u71
); | |
| 171 typedef void __CastType72(dynamic __u73, StackTrace __u74, EventSink<dynamic> _
_u75); | |
| OLD | NEW |