T - the type of the items to be bufferedpublic class BufferUntilSubscriber<T> extends Subject<T,T>
groupBy and pivot.
This currently has temporary unbounded buffers. It needs to become bounded and then do one of two things:
Generally the buffer should be very short lived (milliseconds) and then stops being involved. It can become a
memory leak though if a GroupedObservable backed by this class is emitted but never subscribed to
(such as filtered out). In that case, either a time-bomb to throw away the buffer, or just blowing up and
making the user do something about it is needed.
For example, to filter out GroupedObservables, perhaps they need a silent subscribe() on them
to just blackhole the data.
This is an initial start at solving this problem and solves the immediate problem of groupBy and
pivot and trades off the possibility of memory leak for deterministic functionality.
Observable.OnSubscribe<T>, Observable.OnSubscribeFunc<T>, Observable.Operator<R,T>, Observable.Transformer<T,R>| Modifier and Type | Method and Description |
|---|---|
static <T> BufferUntilSubscriber<T> |
create() |
void |
onCompleted()
Notifies the Observer that the
Observable has finished sending push-based notifications. |
void |
onError(java.lang.Throwable e)
Notifies the Observer that the
Observable has experienced an error condition. |
void |
onNext(T t)
Provides the Observer with a new item to observe.
|
all, amb, amb, amb, amb, amb, amb, amb, amb, amb, ambWith, asObservable, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, cache, cache, cast, collect, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, compose, concat, concat, concat, concat, concat, concat, concat, concat, concat, concatMap, concatWith, contains, count, create, create, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinctUntilChanged, distinctUntilChanged, doOnCompleted, doOnEach, doOnEach, doOnError, doOnNext, doOnSubscribe, doOnTerminate, doOnUnsubscribe, elementAt, elementAtOrDefault, empty, empty, error, error, exists, filter, finallyDo, first, first, firstOrDefault, firstOrDefault, flatMap, flatMap, flatMap, flatMapIterable, flatMapIterable, forEach, forEach, forEach, from, from, from, from, from, from, from, from, from, from, from, from, from, from, from, from, from, groupBy, groupBy, groupByUntil, groupByUntil, groupJoin, ignoreElements, interval, interval, isEmpty, join, just, just, just, just, just, just, just, just, just, just, last, last, lastOrDefault, lastOrDefault, lift, limit, longCount, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeMap, mergeMap, mergeMap, mergeMapIterable, mergeMapIterable, mergeWith, multicast, multicast, multicast, nest, never, observeOn, ofType, onBackpressureBuffer, onBackpressureDrop, onErrorFlatMap, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onExceptionResumeNext, parallel, parallel, parallelMerge, parallelMerge, publish, publish, publish, publish, publishLast, publishLast, range, range, reduce, reduce, repeat, repeat, repeat, repeat, repeatWhen, repeatWhen, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, retry, retry, retry, retryWhen, retryWhen, sample, sample, sample, scan, scan, sequenceEqual, sequenceEqual, serialize, share, single, single, singleOrDefault, singleOrDefault, skip, skip, skip, skipLast, skipLast, skipLast, skipUntil, skipWhile, skipWhileWithIndex, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, switchMap, switchOnNext, take, take, take, takeFirst, takeLast, takeLast, takeLast, takeLast, takeLast, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeUntil, takeWhile, takeWhileWithIndex, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timer, timer, timestamp, timestamp, toBlocking, toBlockingObservable, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toSortedList, toSortedList, unsafeSubscribe, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWithpublic static <T> BufferUntilSubscriber<T> create()
public void onCompleted()
ObserverObservable has finished sending push-based notifications.
The Observable will not call this method if it calls Observer.onError(java.lang.Throwable).
public void onError(java.lang.Throwable e)
ObserverObservable has experienced an error condition.
If the Observable calls this method, it will not thereafter call Observer.onNext(T) or
Observer.onCompleted().
e - the exception encountered by the Observablepublic void onNext(T t)
Observer
The Observable may call this closure 0 or more times.
The Observable will not call this closure again after it calls either Observer.onCompleted() or
Observer.onError(java.lang.Throwable).
t - the item emitted by the Observable