Package rx.observers
Class AsyncCompletableSubscriber
java.lang.Object
rx.observers.AsyncCompletableSubscriber
- All Implemented Interfaces:
Completable.CompletableSubscriber,Subscription
@Experimental
public abstract class AsyncCompletableSubscriber
extends Object
implements Completable.CompletableSubscriber, Subscription
An abstract base class for CompletableSubscriber implementations that want to expose an unsubscription
capability.
Calling unsubscribe() and isUnsubscribed() is threadsafe and can happen at any time, even
before or during an active Completable.subscribe(CompletableSubscriber) call.
Override the onStart() method to execute custom logic on the very first successful onSubscribe call.
If one wants to remain consistent regarding isUnsubscribed() and being terminated,
the clear() method should be called from the implementing onError and onCompleted methods.
public final class MyCompletableSubscriber extends AsyncCompletableSubscriber {
@Override
public void onStart() {
System.out.println("Started!");
}
@Override
public void onCompleted() {
System.out.println("Completed!");
clear();
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
clear();
}
}
- Since:
- (if this graduates from Experimental/Beta to supported, replace this parenthetical with the release number)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final AsyncCompletableSubscriber.UnsubscribedIndicates the unsubscribed state.private final AtomicReference<Subscription> Holds onto a deferred subscription and allows asynchronous cancellation before the call to onSubscribe() by the upstream. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidclear()Call to clear the upstream's subscription without unsubscribing it.final booleanIndicates whether thisSubscriptionis currently unsubscribed.protected voidonStart()Called before the first onSubscribe() call succeeds.final voidCalled once by the Completable to set a Subscription on this instance which then can be used to cancel the subscription at any time.final voidStops the receipt of notifications on theSubscriberthat was registered when this Subscription was received.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface rx.Completable.CompletableSubscriber
onCompleted, onError
-
Field Details
-
UNSUBSCRIBED
Indicates the unsubscribed state. -
upstream
Holds onto a deferred subscription and allows asynchronous cancellation before the call to onSubscribe() by the upstream.
-
-
Constructor Details
-
AsyncCompletableSubscriber
public AsyncCompletableSubscriber()
-
-
Method Details
-
onSubscribe
Description copied from interface:Completable.CompletableSubscriberCalled once by the Completable to set a Subscription on this instance which then can be used to cancel the subscription at any time.- Specified by:
onSubscribein interfaceCompletable.CompletableSubscriber- Parameters:
d- the Subscription instance to call dispose on for cancellation, not null
-
onStart
protected void onStart()Called before the first onSubscribe() call succeeds. -
isUnsubscribed
public final boolean isUnsubscribed()Description copied from interface:SubscriptionIndicates whether thisSubscriptionis currently unsubscribed.- Specified by:
isUnsubscribedin interfaceSubscription- Returns:
trueif thisSubscriptionis currently unsubscribed,falseotherwise
-
clear
protected final void clear()Call to clear the upstream's subscription without unsubscribing it. -
unsubscribe
public final void unsubscribe()Description copied from interface:SubscriptionStops the receipt of notifications on theSubscriberthat was registered when this Subscription was received.This allows unregistering an
Subscriberbefore it has finished receiving all events (i.e. before onCompleted is called).- Specified by:
unsubscribein interfaceSubscription
-