Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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