Interface FlowableEmitter<T>
- Type Parameters:
T- the value type to emit
- All Superinterfaces:
Emitter<T>
invalid reference
org.reactivestreams.Subscriber
The Emitter.onNext(Object), Emitter.onError(Throwable), tryOnError(Throwable)
and Emitter.onComplete() methods should be called in a sequential manner, just like
the
invalid reference
SubscriberFlowableEmitter the serialize() method returns instead of the original
FlowableEmitter instance provided by the generator routine if you want to ensure this.
The other methods are thread-safe.
The emitter allows the registration of a single resource, in the form of a Disposable
or Cancellable via setDisposable(Disposable) or setCancellable(Cancellable)
respectively. The emitter implementations will dispose/cancel this instance when the
downstream cancels the flow or after the event generator logic calls Emitter.onError(Throwable),
Emitter.onComplete() or when tryOnError(Throwable) succeeds.
Only one Disposable or Cancellable object can be associated with the emitter at
a time. Calling either set method will dispose/cancel any previous object. If there
is a need for handling multiple resources, one can create a CompositeDisposable
and associate that with the emitter instead.
The Cancellable is logically equivalent to Disposable but allows using cleanup logic that can
throw a checked exception (such as many close() methods on Java IO components). Since
the release of resources happens after the terminal events have been delivered or the sequence gets
cancelled, exceptions throw within Cancellable are routed to the global error handler via
RxJavaPlugins.onError(Throwable).
-
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns true if the downstream cancelled the sequence or the emitter was terminated viaEmitter.onError(Throwable),Emitter.onComplete()or a successfultryOnError(Throwable).longThe current outstanding request amount.Ensures that calls toonNext,onErrorandonCompleteare properly serialized.voidSets aCancellableon this emitter; any previousDisposableorCancellablewill be disposed/cancelled.voidSets a Disposable on this emitter; any previousDisposableorCancellablewill be disposed/cancelled.booleanAttempts to emit the specifiedThrowableerror if the downstream hasn't cancelled the sequence or is otherwise terminated, returning false if the emission is not allowed to happen due to lifecycle restrictions.Methods inherited from interface Emitter
onComplete, onError, onNext
-
Method Details
-
setDisposable
Sets a Disposable on this emitter; any previousDisposableorCancellablewill be disposed/cancelled.This method is thread-safe.
- Parameters:
d- the disposable,nullis allowed
-
setCancellable
Sets aCancellableon this emitter; any previousDisposableorCancellablewill be disposed/cancelled.This method is thread-safe.
- Parameters:
c- theCancellableresource,nullis allowed
-
requested
long requested()The current outstanding request amount.This method is thread-safe.
- Returns:
- the current outstanding request amount
-
isCancelled
boolean isCancelled()Returns true if the downstream cancelled the sequence or the emitter was terminated viaEmitter.onError(Throwable),Emitter.onComplete()or a successfultryOnError(Throwable).This method is thread-safe.
- Returns:
- true if the downstream cancelled the sequence or the emitter was terminated
-
serialize
Ensures that calls toonNext,onErrorandonCompleteare properly serialized.- Returns:
- the serialized
FlowableEmitter
-
tryOnError
Attempts to emit the specifiedThrowableerror if the downstream hasn't cancelled the sequence or is otherwise terminated, returning false if the emission is not allowed to happen due to lifecycle restrictions.Unlike
Emitter.onError(Throwable), theRxjavaPlugins.onErroris not called if the error could not be delivered.History: 2.1.1 - experimental
- Parameters:
t- the throwable error to signal if possible- Returns:
- true if successful, false if the downstream is not able to accept further events
- Since:
- 2.2
-