Class AsyncSubscriber<T>
java.lang.Object
org.reactivestreams.example.unicast.AsyncSubscriber<T>
- All Implemented Interfaces:
Runnable, Subscriber<T>
AsyncSubscriber is an implementation of Reactive Streams `Subscriber`,
it runs asynchronously (on an Executor), requests one element
at a time, and invokes a user-defined method to process each element.
NOTE: The code below uses a lot of try-catches to show the reader where exceptions can be expected, and where they are forbidden.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidSuccessful terminal state.final voidFailed terminal state.final voidData notification sent by thePublisherin response to requests toSubscription.request(long).final voidInvoked after callingPublisher.subscribe(Subscriber).final voidrun()protected voidprotected voidprotected abstract boolean
-
Constructor Details
-
AsyncSubscriber
-
-
Method Details
-
whenNext
-
whenComplete
protected void whenComplete() -
whenError
-
onSubscribe
Description copied from interface:SubscriberInvoked after callingPublisher.subscribe(Subscriber).No data will start flowing until
Subscription.request(long)is invoked.It is the responsibility of this
Subscriberinstance to callSubscription.request(long)whenever more data is wanted.The
Publisherwill send notifications only in response toSubscription.request(long).- Specified by:
onSubscribein interfaceSubscriber<T>- Parameters:
s- theSubscriptionthat allows requesting data viaSubscription.request(long)
-
onNext
Description copied from interface:SubscriberData notification sent by thePublisherin response to requests toSubscription.request(long).- Specified by:
onNextin interfaceSubscriber<T>- Parameters:
element- the element signaled
-
onError
Description copied from interface:SubscriberFailed terminal state.No further events will be sent even if
Subscription.request(long)is invoked again.- Specified by:
onErrorin interfaceSubscriber<T>- Parameters:
t- the throwable signaled
-
onComplete
public final void onComplete()Description copied from interface:SubscriberSuccessful terminal state.No further events will be sent even if
Subscription.request(long)is invoked again.- Specified by:
onCompletein interfaceSubscriber<T>
-
run
-