org.apache.http.impl.nio.codecs
Class LengthDelimitedDecoder

java.lang.Object
  extended by org.apache.http.impl.nio.codecs.AbstractContentDecoder
      extended by org.apache.http.impl.nio.codecs.LengthDelimitedDecoder
All Implemented Interfaces:
ContentDecoder, FileContentDecoder

public class LengthDelimitedDecoder
extends AbstractContentDecoder
implements FileContentDecoder

Content-Length delimited decoder implementation.

Since:
4.0
Version:
$Revision: 665886 $
Author:
Oleg Kalnichevski, Andrea Selva

Field Summary
 
Fields inherited from class org.apache.http.impl.nio.codecs.AbstractContentDecoder
buffer, channel, completed, metrics
 
Constructor Summary
LengthDelimitedDecoder(java.nio.channels.ReadableByteChannel channel, SessionInputBuffer buffer, org.apache.http.impl.io.HttpTransportMetricsImpl metrics, long contentLength)
           
 
Method Summary
 int read(java.nio.ByteBuffer dst)
          Reads a portion of content from the underlying channel
 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.
 
Methods inherited from class org.apache.http.impl.nio.codecs.AbstractContentDecoder
isCompleted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.http.nio.ContentDecoder
isCompleted
 

Constructor Detail

LengthDelimitedDecoder

public LengthDelimitedDecoder(java.nio.channels.ReadableByteChannel channel,
                              SessionInputBuffer buffer,
                              org.apache.http.impl.io.HttpTransportMetricsImpl metrics,
                              long contentLength)
Method Detail

read

public int read(java.nio.ByteBuffer dst)
         throws java.io.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:
java.io.IOException - if I/O error occurs while reading content

transfer

public long transfer(java.nio.channels.FileChannel dst,
                     long position,
                     long count)
              throws java.io.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 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:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2005-2008 Apache Software Foundation. All Rights Reserved.