T - the input and output value typepublic final class UnicastWorkSubject<T> extends Subject<T> implements Disposable
Subject that holds an unbounded queue of items and relays/replays it to
a single Observer at a time, making sure that when the Observer disposes,
any unconsumed items are available for the next Observer.
This Subject doesn't allow more than one Observers at a time.
The UnicastWorkSubject also allows disconnecting from the optional upstream
via dispose().
| Modifier and Type | Method and Description |
|---|---|
static <T> UnicastWorkSubject<T> |
create()
Constructs an empty
UnicastWorkSubject with the default capacity hint
(expected number of cached items) of Flowable.bufferSize() and error delaying behavior. |
static <T> UnicastWorkSubject<T> |
create(boolean delayErrors)
Constructs an empty
UnicastWorkSubject with the given capacity hint
(expected number of cached items) of Flowable.bufferSize() and
optional error delaying behavior. |
static <T> UnicastWorkSubject<T> |
create(int capacityHint)
Constructs an empty
UnicastWorkSubject with the given capacity hint
(expected number of cached items) and error delaying behavior. |
static <T> UnicastWorkSubject<T> |
create(int capacityHint,
boolean delayErrors)
Constructs an empty
UnicastWorkSubject with the given capacity hint
(expected number of cached items) and optional error delaying behavior. |
void |
dispose() |
Throwable |
getThrowable() |
boolean |
hasComplete() |
boolean |
hasObservers() |
boolean |
hasThrowable() |
boolean |
isDisposed() |
void |
onComplete() |
void |
onError(Throwable e) |
void |
onNext(T t) |
void |
onSubscribe(Disposable d) |
protected void |
subscribeActual(Observer<? super T> observer) |
toSerializedall, amb, ambArray, ambWith, any, blockingFirst, blockingFirst, blockingForEach, blockingForEach, blockingIterable, blockingIterable, blockingLast, blockingLast, blockingLatest, blockingMostRecent, blockingNext, blockingSingle, blockingSingle, blockingStream, blockingStream, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, bufferSize, cache, cacheWithInitialCapacity, cast, collect, collect, collectInto, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatestArray, combineLatestArray, combineLatestArrayDelayError, combineLatestArrayDelayError, combineLatestDelayError, combineLatestDelayError, compose, concat, concat, concat, concat, concat, concat, concatArray, concatArrayDelayError, concatArrayEager, concatArrayEager, concatArrayEagerDelayError, concatArrayEagerDelayError, concatDelayError, concatDelayError, concatDelayError, concatEager, concatEager, concatEager, concatEager, concatEagerDelayError, concatEagerDelayError, concatEagerDelayError, concatEagerDelayError, concatMap, concatMap, concatMap, concatMapCompletable, concatMapCompletable, concatMapCompletableDelayError, concatMapCompletableDelayError, concatMapCompletableDelayError, concatMapDelayError, concatMapDelayError, concatMapDelayError, concatMapEager, concatMapEager, concatMapEagerDelayError, concatMapEagerDelayError, concatMapIterable, concatMapMaybe, concatMapMaybe, concatMapMaybeDelayError, concatMapMaybeDelayError, concatMapMaybeDelayError, concatMapSingle, concatMapSingle, concatMapSingleDelayError, concatMapSingleDelayError, concatMapSingleDelayError, concatMapStream, concatWith, concatWith, concatWith, concatWith, contains, count, create, debounce, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinct, distinctUntilChanged, distinctUntilChanged, distinctUntilChanged, doAfterNext, doAfterTerminate, doFinally, doOnComplete, doOnDispose, doOnEach, doOnEach, doOnError, doOnLifecycle, doOnNext, doOnSubscribe, doOnTerminate, elementAt, elementAt, elementAtOrError, empty, error, error, filter, first, firstElement, firstOrError, firstOrErrorStage, firstStage, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapCompletable, flatMapCompletable, flatMapIterable, flatMapIterable, flatMapMaybe, flatMapMaybe, flatMapSingle, flatMapSingle, flatMapStream, forEach, forEachWhile, forEachWhile, forEachWhile, fromAction, fromArray, fromCallable, fromCompletable, fromCompletionStage, fromFuture, fromFuture, fromIterable, fromMaybe, fromOptional, fromPublisher, fromRunnable, fromSingle, fromStream, fromSupplier, generate, generate, generate, generate, generate, groupBy, groupBy, groupBy, groupBy, groupBy, groupJoin, hide, ignoreElements, interval, interval, interval, interval, intervalRange, intervalRange, isEmpty, join, just, just, just, just, just, just, just, just, just, just, last, lastElement, lastOrError, lastOrErrorStage, lastStage, lift, map, mapOptional, materialize, merge, merge, merge, merge, merge, merge, merge, merge, mergeArray, mergeArray, mergeArrayDelayError, mergeArrayDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, mergeWith, mergeWith, mergeWith, never, observeOn, observeOn, observeOn, ofType, onErrorComplete, onErrorComplete, onErrorResumeNext, onErrorResumeWith, onErrorReturn, onErrorReturnItem, onTerminateDetach, publish, publish, range, rangeLong, reduce, reduce, reduceWith, repeat, repeat, repeatUntil, repeatWhen, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, retry, retry, retry, retry, retry, retryUntil, retryWhen, safeSubscribe, sample, sample, sample, sample, sample, sample, sample, scan, scan, scanWith, sequenceEqual, sequenceEqual, sequenceEqual, sequenceEqual, serialize, share, single, singleElement, singleOrError, singleOrErrorStage, singleStage, skip, skip, skip, skipLast, skipLast, skipLast, skipLast, skipLast, skipLast, skipUntil, skipWhile, sorted, sorted, startWith, startWith, startWith, startWith, startWithArray, startWithItem, startWithIterable, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeWith, switchIfEmpty, switchMap, switchMap, switchMapCompletable, switchMapCompletableDelayError, switchMapDelayError, switchMapDelayError, switchMapMaybe, switchMapMaybeDelayError, switchMapSingle, switchMapSingleDelayError, switchOnNext, switchOnNext, switchOnNextDelayError, switchOnNextDelayError, take, take, take, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeUntil, takeUntil, takeWhile, test, test, throttleFirst, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleLast, throttleLatest, throttleLatest, throttleLatest, throttleLatest, throttleLatest, throttleWithTimeout, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timestamp, timestamp, timestamp, timestamp, to, toFlowable, toFuture, toList, toList, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toSortedList, toSortedList, toSortedList, toSortedList, unsafeCreate, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, wrap, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipArray, zipWith, zipWith, zipWith, zipWithclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdisposed, empty, fromAction, fromAutoCloseable, fromFuture, fromFuture, fromRunnable, fromSubscription, toAutoCloseablepublic static <T> UnicastWorkSubject<T> create()
UnicastWorkSubject with the default capacity hint
(expected number of cached items) of Flowable.bufferSize() and error delaying behavior.T - the input and output value typecreate(int, boolean)public static <T> UnicastWorkSubject<T> create(int capacityHint)
UnicastWorkSubject with the given capacity hint
(expected number of cached items) and error delaying behavior.T - the input and output value typecapacityHint - the number of items expected to be cached, larger number
reduces the internal allocation count if the consumer is slowcreate(int, boolean)public static <T> UnicastWorkSubject<T> create(boolean delayErrors)
UnicastWorkSubject with the given capacity hint
(expected number of cached items) of Flowable.bufferSize() and
optional error delaying behavior.T - the input and output value typedelayErrors - if true, errors are emitted lastcreate(int, boolean)public static <T> UnicastWorkSubject<T> create(int capacityHint, boolean delayErrors)
UnicastWorkSubject with the given capacity hint
(expected number of cached items) and optional error delaying behavior.T - the input and output value typecapacityHint - the number of items expected to be cached, larger number
reduces the internal allocation count if the consumer is slowdelayErrors - if true, errors are emitted lastpublic void onSubscribe(Disposable d)
onSubscribe in interface Observer<T>public void onComplete()
onComplete in interface Observer<T>protected void subscribeActual(Observer<? super T> observer)
subscribeActual in class Observable<T>public void dispose()
dispose in interface Disposablepublic boolean isDisposed()
isDisposed in interface Disposablepublic boolean hasComplete()
hasComplete in class Subject<T>public boolean hasThrowable()
hasThrowable in class Subject<T>public Throwable getThrowable()
getThrowable in class Subject<T>public boolean hasObservers()
hasObservers in class Subject<T>