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

java.lang.Object
  extended by org.apache.http.impl.nio.codecs.AbstractContentDecoder
All Implemented Interfaces:
ContentDecoder
Direct Known Subclasses:
ChunkDecoder, IdentityDecoder, LengthDelimitedDecoder

public abstract class AbstractContentDecoder
extends Object
implements ContentDecoder

Abstract ContentDecoder that serves as a base for all content decoder implementations.

Since:
4.0

Field Summary
protected  SessionInputBuffer buffer
           
protected  ReadableByteChannel channel
           
protected  boolean completed
           
protected  HttpTransportMetricsImpl metrics
           
 
Constructor Summary
AbstractContentDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics)
          Creates an instance of this class.
 
Method Summary
protected  int fillBufferFromChannel()
          Reads from the channel to the session buffer.
 boolean isCompleted()
          Returns true if the entity has been received in its entirety.
protected  int readFromChannel(ByteBuffer dst)
          Reads from the channel to the destination.
protected  int readFromChannel(ByteBuffer dst, int limit)
          Reads from the channel to the destination.
protected  void setCompleted()
          Sets the completed status of this decoder to true.
 void setCompleted(boolean completed)
          Sets the completed status of this decoder.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.http.nio.ContentDecoder
read
 

Field Detail

channel

protected final ReadableByteChannel channel

buffer

protected final SessionInputBuffer buffer

metrics

protected final HttpTransportMetricsImpl metrics

completed

protected boolean completed
Constructor Detail

AbstractContentDecoder

public AbstractContentDecoder(ReadableByteChannel channel,
                              SessionInputBuffer buffer,
                              HttpTransportMetricsImpl metrics)
Creates an instance of this class.

Parameters:
channel - the source channel.
buffer - the session input buffer that can be used to store session data for intermediate processing.
metrics - Transport metrics of the underlying HTTP transport.
Method Detail

isCompleted

public boolean isCompleted()
Description copied from interface: ContentDecoder
Returns true if the entity has been received in its entirety.

Specified by:
isCompleted in interface ContentDecoder
Returns:
true if all the content has been consumed, false otherwise.

setCompleted

public void setCompleted(boolean completed)
Sets the completed status of this decoder. Normally this is not necessary (the decoder will automatically complete when the underlying channel returns EOF). It is useful to mark the decoder as completed if you have some other means to know all the necessary data has been read and want to reuse the underlying connection for more messages.

Parameters:
completed - the completed status of this decoder.
Since:
4.4.11

setCompleted

protected void setCompleted()
Sets the completed status of this decoder to true. Normally this is not necessary (the decoder will automatically complete when the underlying channel returns EOF). It is useful to mark the decoder as completed if you have some other means to know all the necessary data has been read and want to reuse the underlying connection for more messages.

Since:
4.4.11

readFromChannel

protected int readFromChannel(ByteBuffer dst)
                       throws IOException
Reads from the channel to the destination.

Parameters:
dst - destination.
Returns:
number of bytes transferred.
Throws:
IOException
Since:
4.3

fillBufferFromChannel

protected int fillBufferFromChannel()
                             throws IOException
Reads from the channel to the session buffer.

Returns:
number of bytes transferred.
Throws:
IOException
Since:
4.3

readFromChannel

protected int readFromChannel(ByteBuffer dst,
                              int limit)
                       throws IOException
Reads from the channel to the destination.

Parameters:
dst - destination.
limit - max number of bytes to transfer.
Returns:
number of bytes transferred.
Throws:
IOException
Since:
4.3


Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.