Class AbstractContentEncoder

java.lang.Object
org.apache.http.impl.nio.codecs.AbstractContentEncoder
All Implemented Interfaces:
ContentEncoder
Direct Known Subclasses:
ChunkEncoder, IdentityEncoder, LengthDelimitedEncoder

public abstract class AbstractContentEncoder extends Object implements ContentEncoder
Abstract ContentEncoder that serves as a base for all content encoder implementations.
Since:
4.0
  • Field Details

  • Constructor Details

    • AbstractContentEncoder

      public AbstractContentEncoder(WritableByteChannel channel, SessionOutputBuffer buffer, HttpTransportMetricsImpl metrics)
      Creates an instance of this class.
      Parameters:
      channel - the destination channel.
      buffer - the session output buffer that can be used to store session data for intermediate processing.
      metrics - Transport metrics of the underlying HTTP transport.
  • Method Details

    • isCompleted

      public boolean isCompleted()
      Description copied from interface: ContentEncoder
      Returns true if the entity has been transferred in its entirety.
      Specified by:
      isCompleted in interface ContentEncoder
      Returns:
      true if all the content has been produced, false otherwise.
    • complete

      public void complete() throws IOException
      Description copied from interface: ContentEncoder
      Terminates the content stream.
      Specified by:
      complete in interface ContentEncoder
      Throws:
      IOException - if I/O error occurs while writing content
    • assertNotCompleted

      protected void assertNotCompleted()
    • flushToChannel

      protected int flushToChannel() throws IOException
      Flushes content of the session buffer to the channel and updates transport metrics.
      Returns:
      number of bytes written to the channel.
      Throws:
      IOException
      Since:
      4.3
    • writeToChannel

      protected int writeToChannel(ByteBuffer src) throws IOException
      Flushes content of the given buffer to the channel and updates transport metrics.
      Returns:
      number of bytes written to the channel.
      Throws:
      IOException
      Since:
      4.3
    • writeToChannel

      protected int writeToChannel(ByteBuffer src, int limit) throws IOException
      Transfers content of the source to the channel and updates transport metrics.
      Parameters:
      src - source.
      limit - max number of bytes to transfer.
      Returns:
      number of bytes transferred.
      Throws:
      IOException
      Since:
      4.3
    • writeToBuffer

      protected int writeToBuffer(ByteBuffer src, int limit) throws IOException
      Transfers content of the source to the buffer and updates transport metrics.
      Parameters:
      src - source.
      limit - max number of bytes to transfer.
      Returns:
      number of bytes transferred.
      Throws:
      IOException
      Since:
      4.3
    • doWriteChunk

      private int doWriteChunk(ByteBuffer src, int chunk, boolean direct) throws IOException
      Throws:
      IOException
    • doWriteChunk

      private int doWriteChunk(ByteBuffer src, boolean direct) throws IOException
      Throws:
      IOException