Class MaybeCache<T>
- java.lang.Object
-
- io.reactivex.rxjava3.core.Maybe<T>
-
- io.reactivex.rxjava3.internal.operators.maybe.MaybeCache<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
MaybeObserver<T>
,MaybeSource<T>
public final class MaybeCache<T> extends Maybe<T> implements MaybeObserver<T>
Consumes the source once and replays its signal to any current or future MaybeObservers.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MaybeCache.CacheDisposable<T>
-
Field Summary
Fields Modifier and Type Field Description (package private) static MaybeCache.CacheDisposable[]
EMPTY
(package private) java.lang.Throwable
error
(package private) java.util.concurrent.atomic.AtomicReference<MaybeCache.CacheDisposable<T>[]>
observers
(package private) java.util.concurrent.atomic.AtomicReference<MaybeSource<T>>
source
(package private) static MaybeCache.CacheDisposable[]
TERMINATED
(package private) T
value
-
Constructor Summary
Constructors Constructor Description MaybeCache(MaybeSource<T> source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) boolean
add(MaybeCache.CacheDisposable<T> inner)
void
onComplete()
Called once the deferred computation completes normally.void
onError(java.lang.Throwable e)
Notifies theMaybeObserver
that theMaybe
has experienced an error condition.void
onSubscribe(Disposable d)
Provides theMaybeObserver
with the means of cancelling (disposing) the connection (channel) with theMaybe
in both synchronous (from withinonSubscribe(Disposable)
itself) and asynchronous manner.void
onSuccess(T value)
Notifies theMaybeObserver
with one item and that theMaybe
has finished sending push-based notifications.(package private) void
remove(MaybeCache.CacheDisposable<T> inner)
protected void
subscribeActual(MaybeObserver<? super T> observer)
Implement this method in subclasses to handle the incomingMaybeObserver
s.-
Methods inherited from class io.reactivex.rxjava3.core.Maybe
amb, ambArray, ambWith, blockingGet, blockingGet, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, blockingSubscribe, cache, cast, compose, concat, concat, concat, concat, concat, concat, concatArray, concatArrayDelayError, concatArrayEager, concatArrayEagerDelayError, concatDelayError, concatDelayError, concatDelayError, concatEager, concatEager, concatEager, concatEager, concatEagerDelayError, concatEagerDelayError, concatEagerDelayError, concatEagerDelayError, concatMap, concatMapCompletable, concatMapSingle, concatWith, contains, count, create, defaultIfEmpty, defer, delay, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, dematerialize, doAfterSuccess, doAfterTerminate, doFinally, doOnComplete, doOnDispose, doOnError, doOnEvent, doOnLifecycle, doOnSubscribe, doOnSuccess, doOnTerminate, empty, error, error, filter, flatMap, flatMap, flatMap, flatMapCompletable, flatMapObservable, flatMapPublisher, flatMapSingle, flattenAsFlowable, flattenAsObservable, flattenStreamAsFlowable, flattenStreamAsObservable, fromAction, fromCallable, fromCompletable, fromCompletionStage, fromFuture, fromFuture, fromObservable, fromOptional, fromPublisher, fromRunnable, fromSingle, fromSupplier, hide, ignoreElement, isEmpty, just, lift, map, mapOptional, materialize, merge, merge, merge, merge, merge, merge, merge, mergeArray, mergeArrayDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, never, observeOn, ofType, onErrorComplete, onErrorComplete, onErrorResumeNext, onErrorResumeWith, onErrorReturn, onErrorReturnItem, onTerminateDetach, repeat, repeat, repeatUntil, repeatWhen, retry, retry, retry, retry, retry, retryUntil, retryWhen, safeSubscribe, sequenceEqual, sequenceEqual, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeWith, switchIfEmpty, switchIfEmpty, switchOnNext, switchOnNextDelayError, takeUntil, takeUntil, test, test, timeInterval, timeInterval, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timestamp, timestamp, timestamp, timestamp, to, toCompletionStage, toCompletionStage, toFlowable, toFuture, toObservable, toSingle, unsafeCreate, unsubscribeOn, using, using, wrap, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipArray, zipWith
-
-
-
-
Field Detail
-
EMPTY
static final MaybeCache.CacheDisposable[] EMPTY
-
TERMINATED
static final MaybeCache.CacheDisposable[] TERMINATED
-
source
final java.util.concurrent.atomic.AtomicReference<MaybeSource<T>> source
-
observers
final java.util.concurrent.atomic.AtomicReference<MaybeCache.CacheDisposable<T>[]> observers
-
value
T value
-
error
java.lang.Throwable error
-
-
Constructor Detail
-
MaybeCache
public MaybeCache(MaybeSource<T> source)
-
-
Method Detail
-
subscribeActual
protected void subscribeActual(MaybeObserver<? super T> observer)
Description copied from class:Maybe
Implement this method in subclasses to handle the incomingMaybeObserver
s.There is no need to call any of the plugin hooks on the current
Maybe
instance or theMaybeObserver
; all hooks and basic safeguards have been applied byMaybe.subscribe(MaybeObserver)
before this method gets called.- Specified by:
subscribeActual
in classMaybe<T>
- Parameters:
observer
- theMaybeObserver
to handle, notnull
-
onSubscribe
public void onSubscribe(Disposable d)
Description copied from interface:MaybeObserver
Provides theMaybeObserver
with the means of cancelling (disposing) the connection (channel) with theMaybe
in both synchronous (from withinonSubscribe(Disposable)
itself) and asynchronous manner.- Specified by:
onSubscribe
in interfaceMaybeObserver<T>
- Parameters:
d
- theDisposable
instance whoseDisposable.dispose()
can be called anytime to cancel the connection
-
onSuccess
public void onSuccess(T value)
Description copied from interface:MaybeObserver
Notifies theMaybeObserver
with one item and that theMaybe
has finished sending push-based notifications.The
Maybe
will not call this method if it callsMaybeObserver.onError(java.lang.Throwable)
.- Specified by:
onSuccess
in interfaceMaybeObserver<T>
- Parameters:
value
- the item emitted by theMaybe
-
onError
public void onError(java.lang.Throwable e)
Description copied from interface:MaybeObserver
Notifies theMaybeObserver
that theMaybe
has experienced an error condition.If the
Maybe
calls this method, it will not thereafter callMaybeObserver.onSuccess(T)
.- Specified by:
onError
in interfaceMaybeObserver<T>
- Parameters:
e
- the exception encountered by theMaybe
-
onComplete
public void onComplete()
Description copied from interface:MaybeObserver
Called once the deferred computation completes normally.- Specified by:
onComplete
in interfaceMaybeObserver<T>
-
add
boolean add(MaybeCache.CacheDisposable<T> inner)
-
remove
void remove(MaybeCache.CacheDisposable<T> inner)
-
-