Class AbstractCharDataConsumer

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

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

  • Constructor Details

    • AbstractCharDataConsumer

      protected AbstractCharDataConsumer(int bufSize, CharCodingConfig charCodingConfig)
    • AbstractCharDataConsumer

      public AbstractCharDataConsumer()
  • 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(CharBuffer 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
    • setCharset

      protected final void setCharset(Charset charset)
    • 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
    • checkResult

      private void checkResult(CoderResult result) throws IOException
      Throws:
      IOException
    • doDecode

      private void doDecode(boolean endOfStream) throws IOException
      Throws:
      IOException
    • getCharsetDecoder

      private CharsetDecoder getCharsetDecoder()
    • 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