OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.async; | 5 part of dart.async; |
6 | 6 |
7 /** Abstract and private interface for a place to put events. */ | 7 /** Abstract and private interface for a place to put events. */ |
8 abstract class _EventSink<T> { | 8 abstract class _EventSink<T> { |
9 void _add(T data); | 9 void _add(T data); |
10 void _addError(Object error, StackTrace stackTrace); | 10 void _addError(Object error, StackTrace stackTrace); |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 */ | 505 */ |
506 _GeneratedStreamImpl(this._pending); | 506 _GeneratedStreamImpl(this._pending); |
507 | 507 |
508 StreamSubscription _createSubscription( | 508 StreamSubscription _createSubscription( |
509 void onData(T data), | 509 void onData(T data), |
510 Function onError, | 510 Function onError, |
511 void onDone(), | 511 void onDone(), |
512 bool cancelOnError) { | 512 bool cancelOnError) { |
513 if (_isUsed) throw new StateError("Stream has already been listened to."); | 513 if (_isUsed) throw new StateError("Stream has already been listened to."); |
514 _isUsed = true; | 514 _isUsed = true; |
515 return new _BufferingStreamSubscription( | 515 return new _BufferingStreamSubscription<T>( |
516 onData, onError, onDone, cancelOnError).._setPendingEvents(_pending()); | 516 onData, onError, onDone, cancelOnError).._setPendingEvents(_pending()); |
517 } | 517 } |
518 } | 518 } |
519 | 519 |
520 | 520 |
521 /** Pending events object that gets its events from an [Iterable]. */ | 521 /** Pending events object that gets its events from an [Iterable]. */ |
522 class _IterablePendingEvents<T> extends _PendingEvents { | 522 class _IterablePendingEvents<T> extends _PendingEvents { |
523 // The iterator providing data for data events. | 523 // The iterator providing data for data events. |
524 // Set to null when iteration has completed. | 524 // Set to null when iteration has completed. |
525 Iterator<T> _iterator; | 525 Iterator<T> _iterator; |
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 class _EmptyStream<T> extends Stream<T> { | 1086 class _EmptyStream<T> extends Stream<T> { |
1087 const _EmptyStream() : super._internal(); | 1087 const _EmptyStream() : super._internal(); |
1088 bool get isBroadcast => true; | 1088 bool get isBroadcast => true; |
1089 StreamSubscription<T> listen(void onData(T data), | 1089 StreamSubscription<T> listen(void onData(T data), |
1090 {Function onError, | 1090 {Function onError, |
1091 void onDone(), | 1091 void onDone(), |
1092 bool cancelOnError}) { | 1092 bool cancelOnError}) { |
1093 return new _DoneStreamSubscription<T>(onDone); | 1093 return new _DoneStreamSubscription<T>(onDone); |
1094 } | 1094 } |
1095 } | 1095 } |
OLD | NEW |