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 if the outstanding cumulative demand ever becomes Long.MAX_VALUE or more, it 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 if the outstanding cumulative demand ever becomes Long.MAX_VALUE or more, * it 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(); }