Class AbstractBinDataConsumer

java.lang.Object
org.apache.hc.core5.http.nio.entity.AbstractBinDataConsumer
All Implemented Interfaces:
AsyncDataConsumer, ResourceHolder
Direct Known Subclasses:
AbstractBinAsyncEntityConsumer

public abstract class AbstractBinDataConsumer extends Object implements AsyncDataConsumer
Abstract binary data consumer.
Since:
5.0
  • Field Details

  • Constructor Details

    • AbstractBinDataConsumer

      public AbstractBinDataConsumer()
  • Method Details

    • capacityIncrement

      protected abstract int capacityIncrement()
      Triggered to obtain the capacity increment.
      Returns:
      the number of bytes this consumer is prepared to process.
    • data

      protected abstract void data(ByteBuffer src, boolean endOfStream) throws IOException
      Triggered to pass incoming data packet to the data consumer.
      Parameters:
      src - the data packet.
      endOfStream - flag indicating whether this data packet is the last in the data stream.
      Throws:
      IOException
    • completed

      protected abstract void completed() throws IOException
      Triggered to signal completion of data processing.
      Throws:
      IOException
    • updateCapacity

      public final void updateCapacity(CapacityChannel capacityChannel) throws IOException
      Description copied from interface: AsyncDataConsumer
      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.
      Specified by:
      updateCapacity in interface AsyncDataConsumer
      Parameters:
      capacityChannel - the channel for capacity updates.
      Throws:
      IOException
    • consume

      public final void consume(ByteBuffer src) throws IOException
      Description copied from interface: AsyncDataConsumer
      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.
      Specified by:
      consume in interface AsyncDataConsumer
      Parameters:
      src - data source.
      Throws:
      IOException
    • streamEnd

      public final void streamEnd(List<? extends Header> trailers) throws HttpException, IOException
      Description copied from interface: AsyncDataConsumer
      Triggered to signal termination of the data stream.
      Specified by:
      streamEnd in interface AsyncDataConsumer
      Parameters:
      trailers - data stream trailers.
      Throws:
      HttpException
      IOException