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 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 * | 835 * |
836 * Internally the method cancels its subscription after these elements. This | 836 * Internally the method cancels its subscription after these elements. This |
837 * means that single-subscription (non-broadcast) streams are closed and | 837 * means that single-subscription (non-broadcast) streams are closed and |
838 * cannot be reused after a call to this method. | 838 * cannot be reused after a call to this method. |
839 * | 839 * |
840 * The returned stream is a broadcast stream if this stream is. | 840 * The returned stream is a broadcast stream if this stream is. |
841 * For a broadcast stream, the events are only counted from the time | 841 * For a broadcast stream, the events are only counted from the time |
842 * the returned stream is listened to. | 842 * the returned stream is listened to. |
843 */ | 843 */ |
844 Stream<T> take(int count) { | 844 Stream<T> take(int count) { |
845 return new _TakeStream(this, count); | 845 return new _TakeStream<T>(this, count); |
846 } | 846 } |
847 | 847 |
848 /** | 848 /** |
849 * Forwards data events while [test] is successful. | 849 * Forwards data events while [test] is successful. |
850 * | 850 * |
851 * The returned stream provides the same events as this stream as long | 851 * The returned stream provides the same events as this stream as long |
852 * as [test] returns [:true:] for the event data. The stream is done | 852 * as [test] returns [:true:] for the event data. The stream is done |
853 * when either this stream is done, or when this stream first provides | 853 * when either this stream is done, or when this stream first provides |
854 * a value that [test] doesn't accept. | 854 * a value that [test] doesn't accept. |
855 * | 855 * |
856 * Stops listening to the stream after the accepted elements. | 856 * Stops listening to the stream after the accepted elements. |
857 * | 857 * |
858 * Internally the method cancels its subscription after these elements. This | 858 * Internally the method cancels its subscription after these elements. This |
859 * means that single-subscription (non-broadcast) streams are closed and | 859 * means that single-subscription (non-broadcast) streams are closed and |
860 * cannot be reused after a call to this method. | 860 * cannot be reused after a call to this method. |
861 * | 861 * |
862 * The returned stream is a broadcast stream if this stream is. | 862 * The returned stream is a broadcast stream if this stream is. |
863 * For a broadcast stream, the events are only tested from the time | 863 * For a broadcast stream, the events are only tested from the time |
864 * the returned stream is listened to. | 864 * the returned stream is listened to. |
865 */ | 865 */ |
866 Stream<T> takeWhile(bool test(T element)) { | 866 Stream<T> takeWhile(bool test(T element)) { |
867 return new _TakeWhileStream(this, test); | 867 return new _TakeWhileStream<T>(this, test); |
868 } | 868 } |
869 | 869 |
870 /** | 870 /** |
871 * Skips the first [count] data events from this stream. | 871 * Skips the first [count] data events from this stream. |
872 * | 872 * |
873 * The returned stream is a broadcast stream if this stream is. | 873 * The returned stream is a broadcast stream if this stream is. |
874 * For a broadcast stream, the events are only counted from the time | 874 * For a broadcast stream, the events are only counted from the time |
875 * the returned stream is listened to. | 875 * the returned stream is listened to. |
876 */ | 876 */ |
877 Stream<T> skip(int count) { | 877 Stream<T> skip(int count) { |
878 return new _SkipStream(this, count); | 878 return new _SkipStream<T>(this, count); |
879 } | 879 } |
880 | 880 |
881 /** | 881 /** |
882 * Skip data events from this stream while they are matched by [test]. | 882 * Skip data events from this stream while they are matched by [test]. |
883 * | 883 * |
884 * Error and done events are provided by the returned stream unmodified. | 884 * Error and done events are provided by the returned stream unmodified. |
885 * | 885 * |
886 * Starting with the first data event where [test] returns false for the | 886 * Starting with the first data event where [test] returns false for the |
887 * event data, the returned stream will have the same events as this stream. | 887 * event data, the returned stream will have the same events as this stream. |
888 * | 888 * |
889 * The returned stream is a broadcast stream if this stream is. | 889 * The returned stream is a broadcast stream if this stream is. |
890 * For a broadcast stream, the events are only tested from the time | 890 * For a broadcast stream, the events are only tested from the time |
891 * the returned stream is listened to. | 891 * the returned stream is listened to. |
892 */ | 892 */ |
893 Stream<T> skipWhile(bool test(T element)) { | 893 Stream<T> skipWhile(bool test(T element)) { |
894 return new _SkipWhileStream(this, test); | 894 return new _SkipWhileStream<T>(this, test); |
895 } | 895 } |
896 | 896 |
897 /** | 897 /** |
898 * Skips data events if they are equal to the previous data event. | 898 * Skips data events if they are equal to the previous data event. |
899 * | 899 * |
900 * The returned stream provides the same events as this stream, except | 900 * The returned stream provides the same events as this stream, except |
901 * that it never provides two consequtive data events that are equal. | 901 * that it never provides two consequtive data events that are equal. |
902 * | 902 * |
903 * Equality is determined by the provided [equals] method. If that is | 903 * Equality is determined by the provided [equals] method. If that is |
904 * omitted, the '==' operator on the last provided data element is used. | 904 * omitted, the '==' operator on the last provided data element is used. |
905 * | 905 * |
906 * The returned stream is a broadcast stream if this stream is. | 906 * The returned stream is a broadcast stream if this stream is. |
907 * If a broadcast stream is listened to more than once, each subscription | 907 * If a broadcast stream is listened to more than once, each subscription |
908 * will individually perform the `equals` test. | 908 * will individually perform the `equals` test. |
909 */ | 909 */ |
910 Stream<T> distinct([bool equals(T previous, T next)]) { | 910 Stream<T> distinct([bool equals(T previous, T next)]) { |
911 return new _DistinctStream(this, equals); | 911 return new _DistinctStream<T>(this, equals); |
912 } | 912 } |
913 | 913 |
914 /** | 914 /** |
915 * Returns the first element of the stream. | 915 * Returns the first element of the stream. |
916 * | 916 * |
917 * Stops listening to the stream after the first element has been received. | 917 * Stops listening to the stream after the first element has been received. |
918 * | 918 * |
919 * Internally the method cancels its subscription after the first element. | 919 * Internally the method cancels its subscription after the first element. |
920 * This means that single-subscription (non-broadcast) streams are closed | 920 * This means that single-subscription (non-broadcast) streams are closed |
921 * and cannot be reused after a call to this getter. | 921 * and cannot be reused after a call to this getter. |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1735 class _ControllerEventSinkWrapper<T> implements EventSink<T> { | 1735 class _ControllerEventSinkWrapper<T> implements EventSink<T> { |
1736 EventSink _sink; | 1736 EventSink _sink; |
1737 _ControllerEventSinkWrapper(this._sink); | 1737 _ControllerEventSinkWrapper(this._sink); |
1738 | 1738 |
1739 void add(T data) { _sink.add(data); } | 1739 void add(T data) { _sink.add(data); } |
1740 void addError(error, [StackTrace stackTrace]) { | 1740 void addError(error, [StackTrace stackTrace]) { |
1741 _sink.addError(error, stackTrace); | 1741 _sink.addError(error, stackTrace); |
1742 } | 1742 } |
1743 void close() { _sink.close(); } | 1743 void close() { _sink.close(); } |
1744 } | 1744 } |
OLD | NEW |