org.apache.http.impl.nio.codecs

## Class AbstractContentEncoder

- java.lang.Object
- - 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SessionOutputBuffer` | `buffer`
    `protected WritableByteChannel` | `channel`
    `protected boolean` | `completed` Deprecated. since 4.3-beta3 - use `isCompleted()` or `complete()` instead Will probably be made private at some point.
    `protected HttpTransportMetricsImpl` | `metrics`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractContentEncoder(WritableByteChannel channel, SessionOutputBuffer buffer, HttpTransportMetricsImpl metrics)` Creates an instance of this class.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

          @Deprecated
          protected boolean completed

      Deprecated. since 4.3-beta3 - use `isCompleted()` or `complete()` instead Will probably be made private at some point.

  - ### 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–2013 The Apache Software Foundation. All rights reserved.