Class IdentityDecoder

java.lang.Object
org.apache.http.impl.nio.codecs.AbstractContentDecoder
org.apache.http.impl.nio.codecs.IdentityDecoder
All Implemented Interfaces:
ContentDecoder, FileContentDecoder

public class IdentityDecoder extends AbstractContentDecoder implements FileContentDecoder
Content decoder that reads data without any transformation. The end of the content entity is delineated by closing the underlying connection (EOF condition). Entities transferred using this input stream can be of unlimited length.

This decoder is optimized to transfer data directly from the underlying I/O session's channel to a FileChannel, whenever possible avoiding intermediate buffering in the session buffer.

Since:
4.0
  • Constructor Details

  • Method Details

    • read

      public int read(ByteBuffer dst) throws IOException
      Description copied from interface: ContentDecoder
      Reads a portion of content from the underlying channel
      Specified by:
      read in interface ContentDecoder
      Parameters:
      dst - The buffer into which entity content is to be transferred
      Returns:
      The number of bytes read, possibly zero, or -1 if the channel has reached end-of-stream
      Throws:
      IOException - if I/O error occurs while reading content
    • transfer

      public long transfer(FileChannel dst, long position, long count) throws IOException
      Description copied from interface: FileContentDecoder
      Transfers a portion of entity content from the underlying network channel into the given file channel.

      Warning: Many implementations cannot write beyond the length of the file. If the position exceeds the channel's size, some implementations may throw an IOException.

      Specified by:
      transfer in interface FileContentDecoder
      Parameters:
      dst - the target FileChannel to transfer data into.
      position - The position within the file at which the transfer is to begin; must be non-negative. Must be less than or equal to the size of the file
      count - The maximum number of bytes to be transferred; must be non-negative
      Returns:
      The number of bytes, possibly zero, that were actually transferred
      Throws:
      IOException - if some I/O error occurs.
    • toString

      public String toString()
      Overrides:
      toString in class Object