org.apache.http.impl.nio.codecs
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
Method Summary |
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. |
IdentityDecoder
public IdentityDecoder(ReadableByteChannel channel,
SessionInputBuffer buffer,
HttpTransportMetricsImpl metrics)
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 filecount
- 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
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.