Package hu.akarnokd.rxjava3.subjects
Class UnicastWorkSubject<T>
- java.lang.Object
-
- io.reactivex.rxjava3.core.Observable<T>
-
- io.reactivex.rxjava3.subjects.Subject<T>
-
- hu.akarnokd.rxjava3.subjects.UnicastWorkSubject<T>
-
- Type Parameters:
T- the input and output value type
- All Implemented Interfaces:
ObservableSource<T>,Observer<T>,Disposable
public final class UnicastWorkSubject<T> extends Subject<T> implements Disposable
ASubjectthat holds an unbounded queue of items and relays/replays it to a singleObserverat a time, making sure that when theObserverdisposes, any unconsumed items are available for the nextObserver.This
Subjectdoesn't allow more than oneObservers at a time.The
UnicastWorkSubjectalso allows disconnecting from the optional upstream viadispose().- Since:
- 0.18.8
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> UnicastWorkSubject<T>create()Constructs an emptyUnicastWorkSubjectwith the default capacity hint (expected number of cached items) ofFlowable.bufferSize()and error delaying behavior.static <T> UnicastWorkSubject<T>create(boolean delayErrors)Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) ofFlowable.bufferSize()and optional error delaying behavior.static <T> UnicastWorkSubject<T>create(int capacityHint)Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) and error delaying behavior.static <T> UnicastWorkSubject<T>create(int capacityHint, boolean delayErrors)Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) and optional error delaying behavior.voiddispose()java.lang.ThrowablegetThrowable()booleanhasComplete()booleanhasObservers()booleanhasThrowable()booleanisDisposed()voidonComplete()voidonError(java.lang.Throwable e)voidonNext(T t)voidonSubscribe(Disposable d)protected voidsubscribeActual(Observer<? super T> observer)-
Methods inherited from class io.reactivex.rxjava3.subjects.Subject
toSerialized
-
Methods inherited from class io.reactivex.rxjava3.core.Observable
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, 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, 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, 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, throttleLast, throttleLast, throttleLatest, throttleLatest, throttleLatest, throttleLatest, 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
-
-
-
-
Method Detail
-
create
public static <T> UnicastWorkSubject<T> create()
Constructs an emptyUnicastWorkSubjectwith the default capacity hint (expected number of cached items) ofFlowable.bufferSize()and error delaying behavior.- Type Parameters:
T- the input and output value type- Returns:
- the new UnicastWorkSubject instance
- See Also:
create(int, boolean)
-
create
public static <T> UnicastWorkSubject<T> create(int capacityHint)
Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) and error delaying behavior.- Type Parameters:
T- the input and output value type- Parameters:
capacityHint- the number of items expected to be cached, larger number reduces the internal allocation count if the consumer is slow- Returns:
- the new UnicastWorkSubject instance
- See Also:
create(int, boolean)
-
create
public static <T> UnicastWorkSubject<T> create(boolean delayErrors)
Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) ofFlowable.bufferSize()and optional error delaying behavior.- Type Parameters:
T- the input and output value type- Parameters:
delayErrors- if true, errors are emitted last- Returns:
- the new UnicastWorkSubject instance
- See Also:
create(int, boolean)
-
create
public static <T> UnicastWorkSubject<T> create(int capacityHint, boolean delayErrors)
Constructs an emptyUnicastWorkSubjectwith the given capacity hint (expected number of cached items) and optional error delaying behavior.- Type Parameters:
T- the input and output value type- Parameters:
capacityHint- 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 last- Returns:
- the new UnicastWorkSubject instance
-
onSubscribe
public void onSubscribe(Disposable d)
- Specified by:
onSubscribein interfaceObserver<T>
-
onComplete
public void onComplete()
- Specified by:
onCompletein interfaceObserver<T>
-
subscribeActual
protected void subscribeActual(Observer<? super T> observer)
- Specified by:
subscribeActualin classObservable<T>
-
dispose
public void dispose()
- Specified by:
disposein interfaceDisposable
-
isDisposed
public boolean isDisposed()
- Specified by:
isDisposedin interfaceDisposable
-
hasComplete
public boolean hasComplete()
- Specified by:
hasCompletein classSubject<T>
-
hasThrowable
public boolean hasThrowable()
- Specified by:
hasThrowablein classSubject<T>
-
getThrowable
public java.lang.Throwable getThrowable()
- Specified by:
getThrowablein classSubject<T>
-
hasObservers
public boolean hasObservers()
- Specified by:
hasObserversin classSubject<T>
-
-