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 Observer
s 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) |
toSerialized
all, 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, zipWith
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
disposed, empty, fromAction, fromAutoCloseable, fromFuture, fromFuture, fromRunnable, fromSubscription, toAutoCloseable
public 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 Disposable
public boolean isDisposed()
isDisposed
in interface Disposable
public 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>