org.apache.hc.core5.http.nio

## Interface AsyncDataConsumer

- All Superinterfaces:
    ResourceHolder
  All Known Subinterfaces:
    AsyncClientExchangeHandler, AsyncDataExchangeHandler, AsyncEntityConsumer<T>, AsyncPushConsumer, AsyncRequestConsumer<T>, AsyncResponseConsumer<T>, AsyncServerExchangeHandler
  All Known Implementing Classes:
    AbstractAsyncPushHandler, AbstractAsyncRequesterConsumer, AbstractAsyncResponseConsumer, AbstractBinAsyncEntityConsumer, AbstractBinDataConsumer, AbstractCharAsyncEntityConsumer, AbstractCharDataConsumer, AbstractClassicEntityConsumer, AbstractClassicServerExchangeHandler, AbstractServerExchangeHandler, BasicAsyncEntityConsumer, BasicAsyncServerExpectationDecorator, BasicClientExchangeHandler, BasicRequestConsumer, BasicResponseConsumer, BasicServerExchangeHandler, DigestingEntityConsumer, DiscardingEntityConsumer, ImmediateResponseExchangeHandler, NoopEntityConsumer, ReactiveResponseConsumer, ReactiveServerExchangeHandler, StringAsyncEntityConsumer

      public interface AsyncDataConsumer
      extends ResourceHolder

  Abstract asynchronous data consumer.
  Since:
    5.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `consume(ByteBuffer src)` Triggered to pass incoming data to the data consumer.
    `void` | `streamEnd(List<? extends Header> trailers)` Triggered to signal termination of the data stream.
    `void` | `updateCapacity(CapacityChannel capacityChannel)` Triggered to signal ability of the underlying data stream to receive data capacity update.

    - ### Methods inherited from interface org.apache.hc.core5.http.nio.ResourceHolder

      `releaseResources`

- - ### Method Detail

    - #### updateCapacity

          void updateCapacity(CapacityChannel capacityChannel)
                       throws IOException

      Triggered to signal ability of the underlying data stream to receive data capacity update. The data consumer can choose to write data immediately inside the call or asynchronously at some later point.
      Parameters:
        `capacityChannel` - the channel for capacity updates.
      Throws:
        `IOException` - in case of an I/O error.

    - #### consume

          void consume(ByteBuffer src)
                throws IOException

      Triggered to pass incoming data to the data consumer. The consumer must consume the entire content of the data buffer. The consumer must stop incrementing its capacity on the capacity channel if it is unable to accept more data. Once the data consumer has handled accumulated data or allocated more intermediate storage it can update its capacity information on the capacity channel.
      Parameters:
        `src` - data source.
      Throws:
        `IOException` - in case of an I/O error.

    - #### streamEnd

          void streamEnd(List<? extends Header> trailers)
                  throws HttpException,
                         IOException

      Triggered to signal termination of the data stream.
      Parameters:
        `trailers` - data stream trailers.
      Throws:
        `HttpException` - in case of an HTTP protocol violation.
        `IOException` - in case of an I/O error.

Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.