public class LengthDelimitedDecoder extends AbstractContentDecoder implements FileContentDecoder
Content-Length header
.
Entities transferred using this stream can be maximum Long.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.
Constructor and Description |
---|
LengthDelimitedDecoder(ReadableByteChannel channel,
SessionInputBuffer buffer,
HttpTransportMetricsImpl metrics,
long contentLength) |
Modifier and Type | Method and Description |
---|---|
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.
Warning: Many implementations cannot write beyond the length of the file. |
isCompleted
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
isCompleted
public LengthDelimitedDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics, long contentLength)
public int read(ByteBuffer dst) throws IOException
ContentDecoder
read
in interface ContentDecoder
dst
- The buffer into which entity content is to be transferredIOException
- if I/O error occurs while reading contentpublic long transfer(FileChannel dst, long position, long count) throws IOException
FileContentDecoder
transfer
in interface FileContentDecoder
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 filecount
- The maximum number of bytes to be transferred; must be
non-negativeIOException
- if some I/O error occurs.Copyright © 2010 - 2020 Adobe. All Rights Reserved