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;
A Subscription represents a one-to-one lifecycle of a Subscriber subscribing to a Publisher.

It can only be used once by a single Subscriber.

It is used to both signal desire for data and cancel demand (and allow resource cleanup).

/** * A {@link Subscription} represents a one-to-one lifecycle of a {@link Subscriber} subscribing to a {@link Publisher}. * <p> * It can only be used once by a single {@link Subscriber}. * <p> * It is used to both signal desire for data and cancel demand (and allow resource cleanup). * */
public interface Subscription {
No events will be sent by a Publisher until demand is signaled via this method.

It can be called however often and whenever needed—but the outstanding cumulative demand must never exceed Long.MAX_VALUE. An outstanding cumulative demand of Long.MAX_VALUE may be treated by the Publisher as "effectively unbounded".

Whatever has been requested can be sent by the Publisher so only signal demand for what can be safely handled.

A Publisher can send less than is requested if the stream ends but then must emit either Subscriber.onError(Throwable) or Subscriber.onComplete().

Params:
  • n – the strictly positive number of elements to requests to the upstream Publisher
/** * No events will be sent by a {@link Publisher} until demand is signaled via this method. * <p> * It can be called however often and whenever needed—but the outstanding cumulative demand must never exceed Long.MAX_VALUE. * An outstanding cumulative demand of Long.MAX_VALUE may be treated by the {@link Publisher} as "effectively unbounded". * <p> * Whatever has been requested can be sent by the {@link Publisher} so only signal demand for what can be safely handled. * <p> * A {@link Publisher} can send less than is requested if the stream ends but * then must emit either {@link Subscriber#onError(Throwable)} or {@link Subscriber#onComplete()}. * * @param n the strictly positive number of elements to requests to the upstream {@link Publisher} */
public void request(long n);
Request the Publisher to stop sending data and clean up resources.

Data may still be sent to meet previously signalled demand after calling cancel.

/** * Request the {@link Publisher} to stop sending data and clean up resources. * <p> * Data may still be sent to meet previously signalled demand after calling cancel. */
public void cancel(); }