Class AbstractCharAsyncEntityProducer

java.lang.Object
org.apache.hc.core5.http.nio.entity.AbstractCharAsyncEntityProducer
All Implemented Interfaces:
EntityDetails, AsyncDataProducer, AsyncEntityProducer, ResourceHolder
Direct Known Subclasses:
StringAsyncEntityProducer

@Contract(threading=SAFE_CONDITIONAL) public abstract class AbstractCharAsyncEntityProducer extends Object implements AsyncEntityProducer
Abstract text entity content producer.
Since:
5.0
  • Field Details

  • Constructor Details

    • AbstractCharAsyncEntityProducer

      public AbstractCharAsyncEntityProducer(int bufferSize, int fragmentSizeHint, ContentType contentType)
  • Method Details

    • flush

      private void flush(StreamChannel<ByteBuffer> channel) throws IOException
      Throws:
      IOException
    • writeData

      final int writeData(StreamChannel<ByteBuffer> channel, CharBuffer src) throws IOException
      Throws:
      IOException
    • streamEnd

      final void streamEnd(StreamChannel<ByteBuffer> channel) throws IOException
      Throws:
      IOException
    • availableData

      protected abstract int availableData()
      Returns the number of bytes immediately available for output. This method can be used as a hint to control output events of the underlying I/O session.
      Returns:
      the number of bytes immediately available for output
    • produceData

      protected abstract void produceData(StreamChannel<CharBuffer> channel) throws IOException
      Triggered to signal the ability of the underlying char channel to accept more data. The data producer can choose to write data immediately inside the call or asynchronously at some later point.

      StreamChannel passed to this method is threading-safe.

      Parameters:
      channel - the data channel capable to accepting more data.
      Throws:
      IOException
    • getContentType

      public final String getContentType()
      Description copied from interface: EntityDetails
      Returns content type of the entity, if known.
      Specified by:
      getContentType in interface EntityDetails
    • getContentEncoding

      public String getContentEncoding()
      Description copied from interface: EntityDetails
      Returns content encoding of the entity, if known.
      Specified by:
      getContentEncoding in interface EntityDetails
    • getContentLength

      public long getContentLength()
      Description copied from interface: EntityDetails
      Returns length of the entity, if known.
      Specified by:
      getContentLength in interface EntityDetails
    • isChunked

      public boolean isChunked()
      Description copied from interface: EntityDetails
      Returns chunked transfer hint for this entity.

      The behavior of wrapping entities is implementation dependent, but should respect the primary purpose.

      Specified by:
      isChunked in interface EntityDetails
    • getTrailerNames

      public Set<String> getTrailerNames()
      Description copied from interface: EntityDetails
      Preliminary declaration of trailing headers.
      Specified by:
      getTrailerNames in interface EntityDetails
    • available

      public final int available()
      Description copied from interface: AsyncDataProducer
      Returns the number of bytes immediately available for output. This method can be used as a hint to control output events of the underlying I/O session.
      Specified by:
      available in interface AsyncDataProducer
      Returns:
      the number of bytes immediately available for output
    • produce

      public final void produce(DataStreamChannel channel) throws IOException
      Description copied from interface: AsyncDataProducer
      Triggered to signal the ability of the underlying data channel to accept more data. The data producer can choose to write data immediately inside the call or asynchronously at some later point.
      Specified by:
      produce in interface AsyncDataProducer
      Parameters:
      channel - the data channel capable to accepting more data.
      Throws:
      IOException
    • releaseResources

      public void releaseResources()
      Specified by:
      releaseResources in interface ResourceHolder