T - the value type multicast to Subscribers.public final class PublishSubject<T> extends Subject<T,T>
The subject does not coordinate backpressure for its subscribers and implements a weaker onSubscribe which calls requests Long.MAX_VALUE from the incoming Subscriptions. This makes it possible to subscribe the PublishSubject to multiple sources (note on serialization though) unlike the standard contract on Subscriber. Child subscribers, however, are not overflown but receive an IllegalStateException in case their requested amount is zero.
The implementation of onXXX methods are technically thread-safe but non-serialized calls to them may lead to undefined state in the currently subscribed Subscribers.
Due to the nature Observables are constructed, the PublishSubject can't be instantiated through
new but must be created via the create() method.
Observable.Operator<Downstream,Upstream>, Observable.Transformer<T,R>| Modifier | Constructor and Description |
|---|---|
protected |
PublishSubject(hu.akarnokd.rxjava2.subjects.PublishSubject.State<T> state) |
| Modifier and Type | Method and Description |
|---|---|
static <T> PublishSubject<T> |
create()
Constructs a PublishSubject.
|
java.lang.Throwable |
getThrowable()
Returns the error that caused the Subject to terminate or null if the Subject
hasn't terminated yet.
|
T |
getValue()
Returns a single value the Subject currently has or null if no such value exists.
|
T[] |
getValues(T[] array)
Returns a typed array containing a snapshot of all values of the Subject.
|
boolean |
hasComplete()
Returns true if the subject has reached a terminal state through a complete event.
|
boolean |
hasSubscribers()
Returns true if the subject has subscribers.
|
boolean |
hasThrowable()
Returns true if the subject has reached a terminal state through an error event.
|
boolean |
hasValue()
Returns true if the subject has any value.
|
void |
onComplete() |
void |
onError(java.lang.Throwable t) |
void |
onNext(T t) |
void |
onSubscribe(org.reactivestreams.Subscription s) |
getValues, toSerializedall, amb, amb, ambWith, any, asObservable, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, bufferSize, cache, cache, cast, collect, collectInto, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, compose, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concatArray, concatArray, concatMap, concatMap, concatMapIterable, concatMapIterable, concatWith, contains, count, create, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinct, distinctUntilChanged, distinctUntilChanged, doOnCancel, doOnComplete, doOnEach, doOnEach, doOnError, doOnLifecycle, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, elementAt, elementAt, empty, endWith, endWith, endWith, endWithArray, error, error, filter, finallyDo, first, first, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapIterable, flatMapIterable, flatMapIterable, forEach, forEachWhile, forEachWhile, forEachWhile, fromArray, fromCallable, fromFuture, fromFuture, fromFuture, fromFuture, fromIterable, fromPublisher, generate, generate, generate, generate, generate, groupBy, groupBy, groupBy, groupBy, groupBy, ignoreElements, interval, interval, interval, interval, intervalRange, intervalRange, isEmpty, just, just, just, just, just, just, just, just, just, last, last, lift, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, nest, never, observeOn, observeOn, observeOn, ofType, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureLatest, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onErrorReturnValue, onExceptionResumeNext, publish, publish, publish, publish, range, 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, scan, scan, scanWith, sequenceEqual, sequenceEqual, sequenceEqual, sequenceEqual, serialize, share, single, single, skip, skip, skipLast, skipLast, skipLast, skipLast, skipLast, skipLast, skipUntil, skipWhile, startWith, startWith, startWith, startWithArray, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeOn, switchIfEmpty, switchMap, switchMap, switchOnNext, switchOnNext, take, take, takeFirst, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLast, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeUntil, takeUntil, takeWhile, 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, toBlocking, toList, toList, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toNbpObservable, toSingle, toSortedList, toSortedList, toSortedList, toSortedList, unsafeSubscribe, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, window, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipArray, zipIterable, zipWith, zipWith, zipWith, zipWithprotected PublishSubject(hu.akarnokd.rxjava2.subjects.PublishSubject.State<T> state)
public static <T> PublishSubject<T> create()
T - the value typepublic void onSubscribe(org.reactivestreams.Subscription s)
public void onNext(T t)
public void onError(java.lang.Throwable t)
public void onComplete()
public boolean hasSubscribers()
SubjectThe method is thread-safe.
hasSubscribers in class Subject<T,T>public boolean hasValue()
SubjectThe method is thread-safe.
public T getValue()
SubjectThe method is thread-safe.
public T[] getValues(T[] array)
SubjectThe method follows the conventions of Collection.toArray by setting the array element after the last value to null (if the capacity permits).
The method is thread-safe.
public java.lang.Throwable getThrowable()
SubjectThe method is thread-safe.
getThrowable in class Subject<T,T>public boolean hasThrowable()
SubjectThe method is thread-safe.
hasThrowable in class Subject<T,T>Subject.getThrowable(),
Subject.hasComplete()public boolean hasComplete()
SubjectThe method is thread-safe.
hasComplete in class Subject<T,T>Subject.hasThrowable()