T
- the value type received and emitted by this Subject subclasspublic final class UnicastSubject<T> extends Subject<T>
This subject buffers notifications and replays them to the Subscriber as requested.
This subject holds an unbounded internal buffer.
If more than one Subscriber attempts to subscribe to this Subject, they will receive an IllegalStateException if this Subject hasn't terminated yet, or the Subscribers receive the terminal event (error or completion) if this Subject has terminated.
Modifier and Type | Method and Description |
---|---|
static <T> UnicastSubject<T> |
create()
Creates an UnicastSubject with an internal buffer capacity hint 16.
|
static <T> UnicastSubject<T> |
create(boolean delayError)
Creates an UnicastSubject with an internal buffer capacity hint 16 and given delay error flag.
|
static <T> UnicastSubject<T> |
create(int capacityHint)
Creates an UnicastSubject with the given internal buffer capacity hint.
|
static <T> UnicastSubject<T> |
create(int capacityHint,
java.lang.Runnable onTerminate)
Creates an UnicastSubject with the given internal buffer capacity hint and a callback for
the case when the single Subscriber cancels its subscription.
|
static <T> UnicastSubject<T> |
create(int capacityHint,
java.lang.Runnable onTerminate,
boolean delayError)
Creates an UnicastSubject with the given internal buffer capacity hint, delay error flag and
a callback for the case when the single Subscriber cancels its subscription.
|
java.lang.Throwable |
getThrowable()
Returns the error that caused the Subject to terminate or null if the Subject
hasn't terminated yet.
|
boolean |
hasComplete()
Returns true if the subject has reached a terminal state through a complete event.
|
boolean |
hasObservers()
Returns true if the subject has any Observers.
|
boolean |
hasThrowable()
Returns true if the subject has reached a terminal state through an error event.
|
void |
onComplete()
Notifies the Observer that the
Observable has finished sending push-based notifications. |
void |
onError(java.lang.Throwable t)
Notifies the Observer that the
Observable has experienced an error condition. |
void |
onNext(T t)
Provides the Observer with a new item to observe.
|
void |
onSubscribe(Disposable s)
Provides the Observer with the means of cancelling (disposing) the
connection (channel) with the Observable in both
synchronous (from within
Observer.onNext(Object) ) and asynchronous manner. |
protected void |
subscribeActual(Observer<? super T> observer)
Operator implementations (both source and intermediate) should implement this method that
performs the necessary business logic.
|
toSerialized
all, amb, ambArray, ambWith, any, blockingFirst, blockingFirst, blockingForEach, blockingIterable, blockingIterable, blockingLast, blockingLast, blockingLatest, blockingMostRecent, blockingNext, blockingSingle, blockingSingle, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, bufferSize, cache, cacheWithInitialCapacity, cast, collect, collectInto, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatestDelayError, combineLatestDelayError, combineLatestDelayError, combineLatestDelayError, combineLatestDelayError, compose, concat, concat, concat, concat, concat, concat, concatArray, concatArrayDelayError, concatArrayEager, concatArrayEager, concatDelayError, concatDelayError, concatDelayError, concatEager, concatEager, concatEager, concatEager, concatMap, concatMap, concatMapDelayError, concatMapDelayError, concatMapEager, concatMapEager, concatMapEagerDelayError, concatMapEagerDelayError, concatMapIterable, concatMapIterable, 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, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapCompletable, flatMapCompletable, flatMapIterable, flatMapIterable, flatMapMaybe, flatMapMaybe, flatMapSingle, flatMapSingle, forEach, forEachWhile, forEachWhile, forEachWhile, fromArray, fromCallable, fromFuture, fromFuture, fromFuture, fromFuture, fromIterable, fromPublisher, 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, lift, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, mergeArray, mergeArray, mergeArrayDelayError, mergeArrayDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, never, observeOn, observeOn, observeOn, ofType, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onErrorReturnItem, onExceptionResumeNext, 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, 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, skip, skip, skip, skipLast, skipLast, skipLast, skipLast, skipLast, skipLast, skipUntil, skipWhile, sorted, sorted, startWith, startWith, startWith, startWithArray, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeWith, switchIfEmpty, switchMap, switchMap, switchMapDelayError, switchMapDelayError, 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, 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, window, window, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, wrap, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipArray, zipIterable, zipWith, zipWith, zipWith, zipWith
@CheckReturnValue public static <T> UnicastSubject<T> create()
T
- the value type@CheckReturnValue public static <T> UnicastSubject<T> create(int capacityHint)
T
- the value typecapacityHint
- the hint to size the internal unbounded buffer@CheckReturnValue public static <T> UnicastSubject<T> create(int capacityHint, java.lang.Runnable onTerminate)
The callback, if not null, is called exactly once and non-overlapped with any active replay.
T
- the value typecapacityHint
- the hint to size the internal unbounded bufferonTerminate
- the callback to run when the Subject is terminated or cancelled, null not allowed@CheckReturnValue public static <T> UnicastSubject<T> create(int capacityHint, java.lang.Runnable onTerminate, boolean delayError)
The callback, if not null, is called exactly once and non-overlapped with any active replay.
T
- the value typecapacityHint
- the hint to size the internal unbounded bufferonTerminate
- the callback to run when the Subject is terminated or cancelled, null not alloweddelayError
- deliver pending onNext events before onError@CheckReturnValue public static <T> UnicastSubject<T> create(boolean delayError)
The callback, if not null, is called exactly once and non-overlapped with any active replay.
T
- the value typedelayError
- deliver pending onNext events before onErrorprotected void subscribeActual(Observer<? super T> observer)
Observable
There is no need to call any of the plugin hooks on the current Observable instance or the Subscriber.
subscribeActual
in class Observable<T>
observer
- the incoming Observer, never nullpublic void onSubscribe(Disposable s)
Observer
Observer.onNext(Object)
) and asynchronous manner.s
- the Disposable instance whose Disposable.dispose()
can
be called anytime to cancel the connectionpublic void onNext(T t)
Observer
The Observable
may call this method 0 or more times.
The Observable
will not call this method again after it calls either Observer.onComplete()
or
Observer.onError(java.lang.Throwable)
.
t
- the item emitted by the Observablepublic void onError(java.lang.Throwable t)
Observer
Observable
has experienced an error condition.
If the Observable
calls this method, it will not thereafter call Observer.onNext(T)
or
Observer.onComplete()
.
t
- the exception encountered by the Observablepublic void onComplete()
Observer
Observable
has finished sending push-based notifications.
The Observable
will not call this method if it calls Observer.onError(java.lang.Throwable)
.
public boolean hasObservers()
Subject
The method is thread-safe.
hasObservers
in class Subject<T>
public java.lang.Throwable getThrowable()
Subject
The method is thread-safe.
getThrowable
in class Subject<T>
public boolean hasThrowable()
Subject
The method is thread-safe.
hasThrowable
in class Subject<T>
&see {@link #hasComplete()}
public boolean hasComplete()
Subject
The method is thread-safe.
hasComplete
in class Subject<T>
Subject.hasThrowable()