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.
completed
Constructor and Description |
---|
LengthDelimitedDecoder(ReadableByteChannel channel,
SessionInputBuffer buffer,
BasicHttpTransportMetrics 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.
|
buffer, channel, fillBufferFromChannel, getTrailers, isCompleted, metrics, readFromChannel, readFromChannel, setCompleted, setCompleted
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getTrailers, isCompleted
public LengthDelimitedDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics 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
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.
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 © 2005–2021 The Apache Software Foundation. All rights reserved.