OLD | NEW |
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 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
896 * that the future will complete with the first error on the stream and then | 896 * that the future will complete with the first error on the stream and then |
897 * cancel the subscription. | 897 * cancel the subscription. |
898 * | 898 * |
899 * In case of a `done` event the future completes with the given | 899 * In case of a `done` event the future completes with the given |
900 * [futureValue]. | 900 * [futureValue]. |
901 */ | 901 */ |
902 Future/*<E>*/ drain/*<E>*/([/*=E*/ futureValue]) | 902 Future/*<E>*/ drain/*<E>*/([/*=E*/ futureValue]) |
903 => listen(null, cancelOnError: true).asFuture/*<E>*/(futureValue); | 903 => listen(null, cancelOnError: true).asFuture/*<E>*/(futureValue); |
904 | 904 |
905 /** | 905 /** |
906 * Provides at most the first [count] data events of this stream. | 906 * Provides at most the first [n] values of this stream. |
907 * | 907 * |
908 * Forwards all events of this stream to the returned stream | 908 * Forwards the first [n] data events of this stream, and all error |
909 * until [count] data events have been forwarded or this stream ends, | 909 * events, to the returned stream, and ends with a done event. |
910 * then ends the returned stream with a done event. | |
911 * | 910 * |
912 * If this stream produces fewer than [count] data events before it's done, | 911 * If this stream produces fewer than [count] values before it's done, |
913 * so will the returned stream. | 912 * so will the returned stream. |
914 * | 913 * |
915 * Starts listening to this stream when the returned stream is listened to | 914 * Stops listening to the stream after the first [n] elements have been |
916 * and stops listening when the first [count] data events have been received. | 915 * received. |
917 * | 916 * |
918 * This means that if this is a single-subscription (non-broadcast) streams | 917 * Internally the method cancels its subscription after these elements. This |
919 * it cannot be reused after the returned stream has been listened to. | 918 * means that single-subscription (non-broadcast) streams are closed and |
| 919 * cannot be reused after a call to this method. |
920 * | 920 * |
921 * If this is a broadcast stream, the returned stream is a broadcast stream. | 921 * The returned stream is a broadcast stream if this stream is. |
922 * In that case, the events are only counted from the time | 922 * For a broadcast stream, the events are only counted from the time |
923 * the returned stream is listened to. | 923 * the returned stream is listened to. |
924 */ | 924 */ |
925 Stream<T> take(int count) { | 925 Stream<T> take(int count) { |
926 return new _TakeStream<T>(this, count); | 926 return new _TakeStream<T>(this, count); |
927 } | 927 } |
928 | 928 |
929 /** | 929 /** |
930 * Forwards data events while [test] is successful. | 930 * Forwards data events while [test] is successful. |
931 * | 931 * |
932 * The returned stream provides the same events as this stream as long | 932 * The returned stream provides the same events as this stream as long |
933 * as [test] returns `true` for the event data. The stream is done | 933 * as [test] returns [:true:] for the event data. The stream is done |
934 * when either this stream is done, or when this stream first provides | 934 * when either this stream is done, or when this stream first provides |
935 * a value that [test] doesn't accept. | 935 * a value that [test] doesn't accept. |
936 * | 936 * |
937 * Stops listening to the stream after the accepted elements. | 937 * Stops listening to the stream after the accepted elements. |
938 * | 938 * |
939 * Internally the method cancels its subscription after these elements. This | 939 * Internally the method cancels its subscription after these elements. This |
940 * means that single-subscription (non-broadcast) streams are closed and | 940 * means that single-subscription (non-broadcast) streams are closed and |
941 * cannot be reused after a call to this method. | 941 * cannot be reused after a call to this method. |
942 * | 942 * |
943 * The returned stream is a broadcast stream if this stream is. | 943 * The returned stream is a broadcast stream if this stream is. |
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1827 class _ControllerEventSinkWrapper<T> implements EventSink<T> { | 1827 class _ControllerEventSinkWrapper<T> implements EventSink<T> { |
1828 EventSink _sink; | 1828 EventSink _sink; |
1829 _ControllerEventSinkWrapper(this._sink); | 1829 _ControllerEventSinkWrapper(this._sink); |
1830 | 1830 |
1831 void add(T data) { _sink.add(data); } | 1831 void add(T data) { _sink.add(data); } |
1832 void addError(error, [StackTrace stackTrace]) { | 1832 void addError(error, [StackTrace stackTrace]) { |
1833 _sink.addError(error, stackTrace); | 1833 _sink.addError(error, stackTrace); |
1834 } | 1834 } |
1835 void close() { _sink.close(); } | 1835 void close() { _sink.close(); } |
1836 } | 1836 } |
OLD | NEW |