Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: sdk/lib/async/stream.dart

Issue 1815583002: Add generic annotations to more SDK APIs. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Remove generic type from _Future.then Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sdk/lib/async/future_impl.dart ('k') | sdk/lib/collection/set.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 // ------------------------------------------------------------------- 7 // -------------------------------------------------------------------
8 // Core Stream types 8 // Core Stream types
9 // ------------------------------------------------------------------- 9 // -------------------------------------------------------------------
10 10
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 * into zero or more events. 525 * into zero or more events.
526 * 526 *
527 * Each incoming event is converted to an [Iterable] of new events, 527 * Each incoming event is converted to an [Iterable] of new events,
528 * and each of these new events are then sent by the returned stream 528 * and each of these new events are then sent by the returned stream
529 * in order. 529 * in order.
530 * 530 *
531 * The returned stream is a broadcast stream if this stream is. 531 * The returned stream is a broadcast stream if this stream is.
532 * If a broadcast stream is listened to more than once, each subscription 532 * If a broadcast stream is listened to more than once, each subscription
533 * will individually call `convert` and expand the events. 533 * will individually call `convert` and expand the events.
534 */ 534 */
535 Stream/*<S>*/ expand(Iterable/*<S>*/ convert(T value)) { 535 Stream/*<S>*/ expand/*<S>*/(Iterable/*<S>*/ convert(T value)) {
536 return new _ExpandStream<T, dynamic/*=S*/>(this, convert); 536 return new _ExpandStream<T, dynamic/*=S*/>(this, convert);
537 } 537 }
538 538
539 /** 539 /**
540 * Pipe the events of this stream into [streamConsumer]. 540 * Pipe the events of this stream into [streamConsumer].
541 * 541 *
542 * The events of this stream are added to `streamConsumer` using 542 * The events of this stream are added to `streamConsumer` using
543 * [StreamConsumer.addStream]. 543 * [StreamConsumer.addStream].
544 * The `streamConsumer` is closed when this stream has been successfully added 544 * The `streamConsumer` is closed when this stream has been successfully added
545 * to it - when the future returned by `addStream` completes without an error. 545 * to it - when the future returned by `addStream` completes without an error.
(...skipping 13 matching lines...) Expand all
559 } 559 }
560 560
561 /** 561 /**
562 * Chains this stream as the input of the provided [StreamTransformer]. 562 * Chains this stream as the input of the provided [StreamTransformer].
563 * 563 *
564 * Returns the result of [:streamTransformer.bind:] itself. 564 * Returns the result of [:streamTransformer.bind:] itself.
565 * 565 *
566 * The `streamTransformer` can decide whether it wants to return a 566 * The `streamTransformer` can decide whether it wants to return a
567 * broadcast stream or not. 567 * broadcast stream or not.
568 */ 568 */
569 Stream transform(StreamTransformer<T, dynamic> streamTransformer) { 569 Stream/*<S>*/ transform/*<S>*/(
570 StreamTransformer<T, dynamic/*=S*/ > streamTransformer) {
570 return streamTransformer.bind(this); 571 return streamTransformer.bind(this);
571 } 572 }
572 573
573 /** 574 /**
574 * Reduces a sequence of values by repeatedly applying [combine]. 575 * Reduces a sequence of values by repeatedly applying [combine].
575 */ 576 */
576 Future<T> reduce(T combine(T previous, T element)) { 577 Future<T> reduce(T combine(T previous, T element)) {
577 _Future<T> result = new _Future<T>(); 578 _Future<T> result = new _Future<T>();
578 bool seenFirst = false; 579 bool seenFirst = false;
579 T value; 580 T value;
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1689 * }, 1690 * },
1690 * onPause: () { subscription.pause(); }, 1691 * onPause: () { subscription.pause(); },
1691 * onResume: () { subscription.resume(); }, 1692 * onResume: () { subscription.resume(); },
1692 * onCancel: () { subscription.cancel(); }, 1693 * onCancel: () { subscription.cancel(); },
1693 * sync: true); 1694 * sync: true);
1694 * return controller.stream.listen(null); 1695 * return controller.stream.listen(null);
1695 * }); 1696 * });
1696 */ 1697 */
1697 const factory StreamTransformer( 1698 const factory StreamTransformer(
1698 StreamSubscription<T> transformer(Stream<S> stream, bool cancelOnError)) 1699 StreamSubscription<T> transformer(Stream<S> stream, bool cancelOnError))
1699 = _StreamSubscriptionTransformer; 1700 = _StreamSubscriptionTransformer<S, T>;
1700 1701
1701 /** 1702 /**
1702 * Creates a [StreamTransformer] that delegates events to the given functions. 1703 * Creates a [StreamTransformer] that delegates events to the given functions.
1703 * 1704 *
1704 * Example use of a duplicating transformer: 1705 * Example use of a duplicating transformer:
1705 * 1706 *
1706 * stringStream.transform(new StreamTransformer<String, String>.fromHandle rs( 1707 * stringStream.transform(new StreamTransformer<String, String>.fromHandle rs(
1707 * handleData: (String value, EventSink<String> sink) { 1708 * handleData: (String value, EventSink<String> sink) {
1708 * sink.add(value); 1709 * sink.add(value);
1709 * sink.add(value); // Duplicate the incoming events. 1710 * sink.add(value); // Duplicate the incoming events.
1710 * })); 1711 * }));
1711 */ 1712 */
1712 factory StreamTransformer.fromHandlers({ 1713 factory StreamTransformer.fromHandlers({
1713 void handleData(S data, EventSink<T> sink), 1714 void handleData(S data, EventSink<T> sink),
1714 void handleError(Object error, StackTrace stackTrace, EventSink<T> sink), 1715 void handleError(Object error, StackTrace stackTrace, EventSink<T> sink),
1715 void handleDone(EventSink<T> sink)}) 1716 void handleDone(EventSink<T> sink)})
1716 = _StreamHandlerTransformer; 1717 = _StreamHandlerTransformer<S, T>;
1717 1718
1718 /** 1719 /**
1719 * Transform the incoming [stream]'s events. 1720 * Transform the incoming [stream]'s events.
1720 * 1721 *
1721 * Creates a new stream. 1722 * Creates a new stream.
1722 * When this stream is listened to, it will start listening on [stream], 1723 * When this stream is listened to, it will start listening on [stream],
1723 * and generate events on the new stream based on the events from [stream]. 1724 * and generate events on the new stream based on the events from [stream].
1724 * 1725 *
1725 * Subscriptions on the returned stream should propagate pause state 1726 * Subscriptions on the returned stream should propagate pause state
1726 * to the subscription on [stream]. 1727 * to the subscription on [stream].
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1800 class _ControllerEventSinkWrapper<T> implements EventSink<T> { 1801 class _ControllerEventSinkWrapper<T> implements EventSink<T> {
1801 EventSink _sink; 1802 EventSink _sink;
1802 _ControllerEventSinkWrapper(this._sink); 1803 _ControllerEventSinkWrapper(this._sink);
1803 1804
1804 void add(T data) { _sink.add(data); } 1805 void add(T data) { _sink.add(data); }
1805 void addError(error, [StackTrace stackTrace]) { 1806 void addError(error, [StackTrace stackTrace]) {
1806 _sink.addError(error, stackTrace); 1807 _sink.addError(error, stackTrace);
1807 } 1808 }
1808 void close() { _sink.close(); } 1809 void close() { _sink.close(); }
1809 } 1810 }
OLDNEW
« no previous file with comments | « sdk/lib/async/future_impl.dart ('k') | sdk/lib/collection/set.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698