# Interface Flow.Subscription

Enclosing class:
  `Flow`

public static interface Flow.Subscription
Message control linking a `Flow.Publisher` and `Flow.Subscriber`. 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.

Since:
  9

## Method Summary

Modifier and Type
Method
Description
`void`
`cancel()`
Causes the Subscriber to (eventually) stop receiving messages.
`void`
`request(long n)`
Adds the given number `n` of items to the current unfulfilled demand for this subscription.

## Method Details

### request

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 `IllegalArgumentException` 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

### cancel

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.