@@ -4708,15 +4708,6 @@ public final void forEach(final Action1<? super T> onNext, final Action1<Throwab
47084708 * is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those
47094709 * {@code GroupedObservable}s that do not concern you. Instead, you can signal to them that they may
47104710 * discard their buffers by applying an operator like {@link #take}{@code (0)} to them.
4711- * <dl>
4712- * <dt><b>Backpressure Support:</b></dt>
4713- * <dd>This operator does not support backpressure as splitting a stream effectively turns it into a "hot
4714- * observable" and blocking any one group would block the entire parent stream. If you need
4715- * backpressure on individual groups then you should use operators such as {@link #onBackpressureDrop}
4716- * or {@link #onBackpressureBuffer}.</dd>
4717- * <dt><b>Scheduler:</b></dt>
4718- * <dd>{@code groupBy} does not operate by default on a particular {@link Scheduler}.</dd>
4719- * </dl>
47204711 *
47214712 * @param keySelector
47224713 * a function that extracts the key for each item
@@ -4746,15 +4737,6 @@ public final <K, R> Observable<GroupedObservable<K, R>> groupBy(final Func1<? su
47464737 * is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those
47474738 * {@code GroupedObservable}s that do not concern you. Instead, you can signal to them that they may
47484739 * discard their buffers by applying an operator like {@link #take}{@code (0)} to them.
4749- * <dl>
4750- * <dt><b>Backpressure Support:</b></dt>
4751- * <dd>This operator does not support backpressure as splitting a stream effectively turns it into a "hot
4752- * observable" and blocking any one group would block the entire parent stream. If you need
4753- * backpressure on individual groups then you should use operators such as {@link #onBackpressureDrop}
4754- * or {@link #onBackpressureBuffer}.</dd>
4755- * <dt><b>Scheduler:</b></dt>
4756- * <dd>{@code groupBy} does not operate by default on a particular {@link Scheduler}.</dd>
4757- * </dl>
47584740 *
47594741 * @param keySelector
47604742 * a function that extracts the key for each item
@@ -4770,77 +4752,6 @@ public final <K> Observable<GroupedObservable<K, T>> groupBy(final Func1<? super
47704752 return lift (new OperatorGroupBy <T , K , T >(keySelector ));
47714753 }
47724754
4773- /**
4774- * Groups the items emitted by an {@code Observable} according to a specified key selector function until
4775- * the duration {@code Observable} expires for the key.
4776- * <p>
4777- * <img width="640" height="375" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/groupByUntil.png" alt="">
4778- * <p>
4779- * <em>Note:</em> A {@link GroupedObservable} will cache the items it is to emit until such time as it
4780- * is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those
4781- * {@code GroupedObservable}s that do not concern you. Instead, you can signal to them that they may
4782- * discard their buffers by applying an operator like {@link #take}{@code (0)} to them.
4783- * <dl>
4784- * <dt><b>Backpressure Support:</b></dt>
4785- * <dd>This operator does not support backpressure as splitting a stream effectively turns it into a "hot
4786- * observable" and blocking any one group would block the entire parent stream. If you need
4787- * backpressure on individual groups then you should use operators such as {@link #onBackpressureDrop}
4788- * or {@link #onBackpressureBuffer}.</dd>
4789- * <dt><b>Scheduler:</b></dt>
4790- * <dd>{@code groupByUntil} does not operate by default on a particular {@link Scheduler}.</dd>
4791- * </dl>
4792- *
4793- * @param keySelector
4794- * a function to extract the key for each item
4795- * @param durationSelector
4796- * a function to signal the expiration of a group
4797- * @return an {@code Observable} that emits {@link GroupedObservable}s, each of which corresponds to a key
4798- * value and each of which emits all items emitted by the source {@code Observable} during that
4799- * key's duration that share that same key value
4800- * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Transforming-Observables#groupby-and-groupbyuntil">RxJava wiki: groupByUntil</a>
4801- * @see <a href="http://msdn.microsoft.com/en-us/library/hh211932.aspx">MSDN: Observable.GroupByUntil</a>
4802- */
4803- public final <TKey, TDuration> Observable<GroupedObservable<TKey, T>> groupByUntil(Func1<? super T, ? extends TKey> keySelector, Func1<? super GroupedObservable<TKey, T>, ? extends Observable<? extends TDuration>> durationSelector) {
4804- return groupByUntil(keySelector, Functions.<T> identity(), durationSelector);
4805- }
4806-
4807- /**
4808- * Groups the items emitted by an {@code Observable} (transformed by a selector) according to a specified
4809- * key selector function until the duration Observable expires for the key.
4810- * <p>
4811- * <img width="640" height="375" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/groupByUntil.png" alt="">
4812- * <p>
4813- * <em>Note:</em> A {@link GroupedObservable} will cache the items it is to emit until such time as it
4814- * is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those
4815- * {@code GroupedObservable}s that do not concern you. Instead, you can signal to them that they may
4816- * discard their buffers by applying an operator like {@link #take}{@code (0)} to them.
4817- * <dl>
4818- * <dt><b>Backpressure Support:</b></dt>
4819- * <dd>This operator does not support backpressure as splitting a stream effectively turns it into a "hot
4820- * observable" and blocking any one group would block the entire parent stream. If you need
4821- * backpressure on individual groups then you should use operators such as {@link #onBackpressureDrop}
4822- * or {@link #onBackpressureBuffer}.</dd>
4823- * <dt><b>Scheduler:</b></dt>
4824- * <dd>{@code groupByUntil} does not operate by default on a particular {@link Scheduler}.</dd>
4825- * </dl>
4826- *
4827- * @param keySelector
4828- * a function to extract the key for each item
4829- * @param valueSelector
4830- * a function to map each item emitted by the source {@code Observable} to an item emitted by one
4831- * of the resulting {@link GroupedObservable}s
4832- * @param durationSelector
4833- * a function to signal the expiration of a group
4834- * @return an {@code Observable} that emits {@link GroupedObservable}s, each of which corresponds to a key
4835- * value and each of which emits all items emitted by the source {@code Observable} during that
4836- * key's duration that share that same key value, transformed by the value selector
4837- * @see <a href="https://github.com/ReactiveX/RxJava/wiki/Transforming-Observables#groupby-and-groupbyuntil">RxJava wiki: groupByUntil</a>
4838- * @see <a href="http://msdn.microsoft.com/en-us/library/hh229433.aspx">MSDN: Observable.GroupByUntil</a>
4839- */
4840- public final <TKey, TValue, TDuration> Observable<GroupedObservable<TKey, TValue>> groupByUntil(Func1<? super T, ? extends TKey> keySelector, Func1<? super T, ? extends TValue> valueSelector, Func1<? super GroupedObservable<TKey, TValue>, ? extends Observable<? extends TDuration>> durationSelector) {
4841- return lift(new OperatorGroupByUntil<T, TKey, TValue, TDuration>(keySelector, valueSelector, durationSelector));
4842- }
4843-
48444755 /**
48454756 * Returns an Observable that correlates two Observables when they overlap in time and groups the results.
48464757 * <p>
0 commit comments