# Flow.Subscription

public static interface **Flow.Subscription** Message control linking a `https://developers.google.com/j2objc/javadoc/jre/reference/java/util/concurrent/Flow.Publisher.html` and `https://developers.google.com/j2objc/javadoc/jre/reference/java/util/concurrent/Flow.Subscriber.html`. Subscribers receive items only when requested,
and may cancel at any time. The methods in this interface are
intended to be invoked only by their Subscribers; usages in
other contexts have undefined effects.

### Public Method Summary

|---|---|
| abstract void | [cancel](https://developers.google.com/j2objc/javadoc/jre/reference/java/util/concurrent/Flow.Subscription.html#cancel())() Causes the Subscriber to (eventually) stop receiving messages. |
| abstract void | [request](https://developers.google.com/j2objc/javadoc/jre/reference/java/util/concurrent/Flow.Subscription.html#request(long))(long n) Adds the given number `n` of items to the current unfulfilled demand for this subscription. |

## Public Methods

#### public abstract void
**cancel**
()

Causes the Subscriber to (eventually) stop receiving
messages. Implementation is best-effort -- additional
messages may be received after invoking this method.
A cancelled subscription need not ever receive an
`onComplete` or `onError` signal.

#### public abstract void
**request**
(long n)

Adds the given number `n` of items to the current
unfulfilled demand for this subscription. If `n` is
less than or equal to zero, the Subscriber will receive an
`onError` signal with an `https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/IllegalArgumentException.html` argument. Otherwise, the
Subscriber will receive up to `n` additional `onNext` invocations (or fewer if terminated).

##### Parameters

| n | the increment of demand; a value of `Long.MAX_VALUE` may be considered as effectively unbounded |
|---|---|