public class

LengthDelimitedDecoder

extends AbstractContentDecoder
implements FileContentDecoder
java.lang.Object
   ↳ org.apache.http.impl.nio.codecs.AbstractContentDecoder
     ↳ org.apache.http.impl.nio.codecs.LengthDelimitedDecoder

Class Overview

Content decoder that cuts off after a defined number of bytes. This class is used to receive content of HTTP messages where the end of the content entity is determined by the value of the Content-Length header. Entities transferred using this stream can be maximum MAX_VALUE long.

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.

Summary

[Expand]
Inherited Fields
From class org.apache.http.impl.nio.codecs.AbstractContentDecoder
Public Constructors
LengthDelimitedDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics, long contentLength)
Public Methods
int read(ByteBuffer dst)
Reads a portion of content from the underlying channel
String toString()
long transfer(FileChannel dst, long position, long count)
Transfers a portion of entity content from the underlying network channel into the given file channel.
[Expand]
Inherited Methods
From class org.apache.http.impl.nio.codecs.AbstractContentDecoder
From class java.lang.Object
From interface org.apache.http.nio.ContentDecoder
From interface org.apache.http.nio.FileContentDecoder

Public Constructors

public LengthDelimitedDecoder (ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics, long contentLength)

Public Methods

public int read (ByteBuffer dst)

Reads a portion of content from the underlying channel

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

public String toString ()

public long transfer (FileChannel dst, long position, long count)

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.

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