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

java.lang.Object
  extended by org.apache.http.impl.nio.codecs.AbstractContentEncoder
All Implemented Interfaces:
ContentEncoder
Direct Known Subclasses:
ChunkEncoder, IdentityEncoder, LengthDelimitedEncoder

@NotThreadSafe
public abstract class AbstractContentEncoder
extends Object
implements ContentEncoder

Abstract ContentEncoder that serves as a base for all content encoder implementations.

Since:
4.0

Field Summary
protected  SessionOutputBuffer buffer
           
protected  WritableByteChannel channel
           
protected  boolean completed
          TODO: make private
protected  HttpTransportMetricsImpl metrics
           
 
Constructor Summary
AbstractContentEncoder(WritableByteChannel channel, SessionOutputBuffer buffer, HttpTransportMetricsImpl metrics)
          Creates an instance of this class.
 
Method Summary
protected  void assertNotCompleted()
           
 void complete()
          Terminates the content stream.
protected  int flushToChannel()
          Flushes content of the session buffer to the channel and updates transport metrics.
 boolean isCompleted()
          Returns true if the entity has been transferred in its entirety.
protected  int writeToBuffer(ByteBuffer src, int limit)
          Transfers content of the source to the buffer and updates transport metrics.
protected  int writeToChannel(ByteBuffer src)
          Flushes content of the given buffer to the channel and updates transport metrics.
protected  int writeToChannel(ByteBuffer src, int limit)
          Transfers content of the source to the channel and updates transport metrics.
 
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.ContentEncoder
write
 

Field Detail

channel

protected final WritableByteChannel channel

buffer

protected final SessionOutputBuffer buffer

metrics

protected final HttpTransportMetricsImpl metrics

completed

protected boolean completed
TODO: make private

Constructor Detail

AbstractContentEncoder

public AbstractContentEncoder(WritableByteChannel channel,
                              SessionOutputBuffer buffer,
                              HttpTransportMetricsImpl metrics)
Creates an instance of this class.

Parameters:
channel - the destination channel.
buffer - the session output 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: ContentEncoder
Returns true if the entity has been transferred in its entirety.

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

complete

public void complete()
              throws IOException
Description copied from interface: ContentEncoder
Terminates the content stream.

Specified by:
complete in interface ContentEncoder
Throws:
IOException - if I/O error occurs while writing content

assertNotCompleted

protected void assertNotCompleted()

flushToChannel

protected int flushToChannel()
                      throws IOException
Flushes content of the session buffer to the channel and updates transport metrics.

Returns:
number of bytes written to the channel.
Throws:
IOException
Since:
4.3

writeToChannel

protected int writeToChannel(ByteBuffer src)
                      throws IOException
Flushes content of the given buffer to the channel and updates transport metrics.

Returns:
number of bytes written to the channel.
Throws:
IOException
Since:
4.3

writeToChannel

protected int writeToChannel(ByteBuffer src,
                             int limit)
                      throws IOException
Transfers content of the source to the channel and updates transport metrics.

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

writeToBuffer

protected int writeToBuffer(ByteBuffer src,
                            int limit)
                     throws IOException
Transfers content of the source to the buffer and updates transport metrics.

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


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