org.apache.http.impl.nio.codecs

## Class AbstractContentDecoder

- java.lang.Object
- - org.apache.http.impl.nio.codecs.AbstractContentDecoder

- All Implemented Interfaces:
    ContentDecoder
  Direct Known Subclasses:
    ChunkDecoder, IdentityDecoder, LengthDelimitedDecoder

      @NotThreadSafe
      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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SessionInputBuffer` | `buffer`
    `protected ReadableByteChannel` | `channel`
    `protected boolean` | `completed`
    `protected HttpTransportMetricsImpl` | `metrics`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractContentDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, HttpTransportMetricsImpl metrics)` Creates an instance of this class.

  - ### Method Summary

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

    - ### 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.

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