public class IdentityDecoder extends AbstractContentDecoder implements FileContentDecoder
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.
buffer, channel, completed, metrics
Constructor and Description |
---|
IdentityDecoder(java.nio.channels.ReadableByteChannel channel,
SessionInputBuffer buffer,
HttpTransportMetricsImpl metrics) |
Modifier and Type | Method and Description |
---|---|
int |
read(java.nio.ByteBuffer dst)
Reads a portion of content from the underlying channel
|
void |
setCompleted(boolean completed)
Sets the completed status of this decoder.
|
java.lang.String |
toString() |
long |
transfer(java.nio.channels.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. |
fillBufferFromChannel, isCompleted, readFromChannel, readFromChannel
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
isCompleted
public IdentityDecoder(java.nio.channels.ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics)
public void setCompleted(boolean completed)
public int read(java.nio.ByteBuffer dst) throws java.io.IOException
ContentDecoder
read
in interface ContentDecoder
dst
- The buffer into which entity content is to be transferredjava.io.IOException
- if I/O error occurs while reading contentpublic long transfer(java.nio.channels.FileChannel dst, long position, long count) throws java.io.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-negativejava.io.IOException
- if some I/O error occurs.public java.lang.String toString()
toString
in class java.lang.Object