Licensed under Public Domain (CC0) * * To the extent possible under law, the person who associated CC0 with * this code has waived all copyright and related or neighboring * rights to this code. * * You should have received a copy of the CC0 legalcode along with this * work. If not, see .*
/************************************************************************ * Licensed under Public Domain (CC0) * * * * To the extent possible under law, the person who associated CC0 with * * this code has waived all copyright and related or neighboring * * rights to this code. * * * * You should have received a copy of the CC0 legalcode along with this * * work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.* ************************************************************************/
package org.reactivestreams;
Will receive call to onSubscribe(Subscription) once after passing an instance of Subscriber to Publisher.subscribe(Subscriber).

No further notifications will be received until Subscription.request(long) is called.

After signaling demand:

Demand can be signaled via Subscription.request(long) whenever the Subscriber instance is capable of handling more.

Type parameters:
  • <T> – the type of element signaled.
/** * Will receive call to {@link #onSubscribe(Subscription)} once after passing an instance of {@link Subscriber} to {@link Publisher#subscribe(Subscriber)}. * <p> * No further notifications will be received until {@link Subscription#request(long)} is called. * <p> * After signaling demand: * <ul> * <li>One or more invocations of {@link #onNext(Object)} up to the maximum number defined by {@link Subscription#request(long)}</li> * <li>Single invocation of {@link #onError(Throwable)} or {@link Subscriber#onComplete()} which signals a terminal state after which no further events will be sent. * </ul> * <p> * Demand can be signaled via {@link Subscription#request(long)} whenever the {@link Subscriber} instance is capable of handling more. * * @param <T> the type of element signaled. */
public interface Subscriber<T> {
Invoked after calling Publisher.subscribe(Subscriber).

No data will start flowing until Subscription.request(long) is invoked.

It is the responsibility of this Subscriber instance to call Subscription.request(long) whenever more data is wanted.

The Publisher will send notifications only in response to Subscription.request(long).

Params:
/** * Invoked after calling {@link Publisher#subscribe(Subscriber)}. * <p> * No data will start flowing until {@link Subscription#request(long)} is invoked. * <p> * It is the responsibility of this {@link Subscriber} instance to call {@link Subscription#request(long)} whenever more data is wanted. * <p> * The {@link Publisher} will send notifications only in response to {@link Subscription#request(long)}. * * @param s * {@link Subscription} that allows requesting data via {@link Subscription#request(long)} */
public void onSubscribe(Subscription s);
Data notification sent by the Publisher in response to requests to Subscription.request(long).
Params:
  • t – the element signaled
/** * Data notification sent by the {@link Publisher} in response to requests to {@link Subscription#request(long)}. * * @param t the element signaled */
public void onNext(T t);
Failed terminal state.

No further events will be sent even if Subscription.request(long) is invoked again.

Params:
  • t – the throwable signaled
/** * Failed terminal state. * <p> * No further events will be sent even if {@link Subscription#request(long)} is invoked again. * * @param t the throwable signaled */
public void onError(Throwable t);
Successful terminal state.

No further events will be sent even if Subscription.request(long) is invoked again.

/** * Successful terminal state. * <p> * No further events will be sent even if {@link Subscription#request(long)} is invoked again. */
public void onComplete(); }