Class FutureMultiObserver<T>
- java.lang.Object
-
- java.util.concurrent.CountDownLatch
-
- io.reactivex.rxjava3.internal.observers.FutureMultiObserver<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
CompletableObserver
,MaybeObserver<T>
,SingleObserver<T>
,Disposable
,java.util.concurrent.Future<T>
public final class FutureMultiObserver<T> extends java.util.concurrent.CountDownLatch implements MaybeObserver<T>, SingleObserver<T>, CompletableObserver, java.util.concurrent.Future<T>, Disposable
An Observer + Future that expects exactly one upstream value and provides it via the (blocking) Future API.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.Throwable
error
(package private) java.util.concurrent.atomic.AtomicReference<Disposable>
upstream
(package private) T
value
-
Constructor Summary
Constructors Constructor Description FutureMultiObserver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
cancel(boolean mayInterruptIfRunning)
void
dispose()
Dispose the resource, the operation should be idempotent.T
get()
T
get(long timeout, @NonNull java.util.concurrent.TimeUnit unit)
boolean
isCancelled()
boolean
isDisposed()
Returns true if this resource has been disposed.boolean
isDone()
void
onComplete()
Called once the deferred computation completes normally.void
onError(java.lang.Throwable t)
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 t)
Notifies theMaybeObserver
with one item and that theMaybe
has finished sending push-based notifications.
-
-
-
Field Detail
-
value
T value
-
error
java.lang.Throwable error
-
upstream
final java.util.concurrent.atomic.AtomicReference<Disposable> upstream
-
-
Method Detail
-
cancel
public boolean cancel(boolean mayInterruptIfRunning)
- Specified by:
cancel
in interfacejava.util.concurrent.Future<T>
-
isCancelled
public boolean isCancelled()
- Specified by:
isCancelled
in interfacejava.util.concurrent.Future<T>
-
isDone
public boolean isDone()
- Specified by:
isDone
in interfacejava.util.concurrent.Future<T>
-
get
public T get() throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
- Specified by:
get
in interfacejava.util.concurrent.Future<T>
- Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
-
get
public T get(long timeout, @NonNull @NonNull java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
- Specified by:
get
in interfacejava.util.concurrent.Future<T>
- Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException
-
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 interfaceCompletableObserver
- Specified by:
onSubscribe
in interfaceMaybeObserver<T>
- Specified by:
onSubscribe
in interfaceSingleObserver<T>
- Parameters:
d
- theDisposable
instance whoseDisposable.dispose()
can be called anytime to cancel the connection
-
onSuccess
public void onSuccess(T t)
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>
- Specified by:
onSuccess
in interfaceSingleObserver<T>
- Parameters:
t
- the item emitted by theMaybe
-
onError
public void onError(java.lang.Throwable t)
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 interfaceCompletableObserver
- Specified by:
onError
in interfaceMaybeObserver<T>
- Specified by:
onError
in interfaceSingleObserver<T>
- Parameters:
t
- 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 interfaceCompletableObserver
- Specified by:
onComplete
in interfaceMaybeObserver<T>
-
dispose
public void dispose()
Description copied from interface:Disposable
Dispose the resource, the operation should be idempotent.- Specified by:
dispose
in interfaceDisposable
-
isDisposed
public boolean isDisposed()
Description copied from interface:Disposable
Returns true if this resource has been disposed.- Specified by:
isDisposed
in interfaceDisposable
- Returns:
- true if this resource has been disposed
-
-