All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.reactivestreams.Subscriber Maven / Gradle / Ivy

There is a newer version: 3.1.0
Show newest version
package org.reactivestreams;

/**
 * Will receive call to {@link #onSubscribe(Subscription)} once after passing an instance of {@link Subscriber} to {@link Publisher#subscribe(Subscriber)}.
 * 

* No further notifications will be received until {@link Subscription#request(long)} is called. *

* After signaling demand: *

    *
  • One or more invocations of {@link #onNext(Object)} up to the maximum number defined by {@link Subscription#request(long)}
  • *
  • Single invocation of {@link #onError(Throwable)} or {@link Subscriber#onComplete()} which signals a terminal state after which no further events will be sent. *
*

* Demand can be signaled via {@link Subscription#request(long)} whenever the {@link Subscriber} instance is capable of handling more. * * @param the type of element signaled. */ public interface Subscriber { /** * Invoked after calling {@link Publisher#subscribe(Subscriber)}. *

* No data will start flowing until {@link Subscription#request(long)} is invoked. *

* It is the responsibility of this {@link Subscriber} instance to call {@link Subscription#request(long)} whenever more data is wanted. *

* 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 {@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 {@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 {@link Subscription#request(long)} is invoked again. */ public void onComplete(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy