org.apache.http.nio.protocol

## Interface HttpAsyncResponseProducer

- All Superinterfaces:
    AutoCloseable, Closeable
  All Known Implementing Classes:
    BasicAsyncResponseProducer

      public interface HttpAsyncResponseProducer
      extends Closeable

  `HttpAsyncResponseProducer` is a callback interface whose methods get invoked to generate an HTTP response message and to stream message content to a non-blocking HTTP connection on the server side.
  Since:
    4.2

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `failed(Exception ex)` Invoked to signal that the response processing terminated abnormally.
    `HttpResponse` | `generateResponse()` Invoked to generate a HTTP response message head.
    `void` | `produceContent(ContentEncoder encoder, IOControl ioctrl)` Invoked to write out a chunk of content to the `ContentEncoder`.
    `void` | `responseCompleted(HttpContext context)` Invoked to signal that the response has been fully written out.

    - ### Methods inherited from interface java.io.Closeable

      `close`

- - ### Method Detail

    - #### generateResponse

          HttpResponse generateResponse()

      Invoked to generate a HTTP response message head.
      Returns:
        HTTP response message.

    - #### produceContent

          void produceContent(ContentEncoder encoder,
                            IOControl ioctrl)
                              throws IOException

      Invoked to write out a chunk of content to the `ContentEncoder`. The `IOControl` interface can be used to suspend output event notifications if the producer is temporarily unable to produce more content.

      When all content is finished, the producer MUST call `ContentEncoder.complete()`. Failure to do so may cause the entity to be incorrectly delimited.

      Please note that the `ContentEncoder` object is not thread-safe and should only be used within the context of this method call. The `IOControl` object can be shared and used on other thread to resume output event notifications when more content is made available.
      Parameters:
        `encoder` - content encoder.
        `ioctrl` - I/O control of the underlying connection.
      Throws:
        `IOException` - in case of an I/O error

    - #### responseCompleted

          void responseCompleted(HttpContext context)

      Invoked to signal that the response has been fully written out.
      Parameters:
        `context` - HTTP context

    - #### failed

          void failed(Exception ex)

      Invoked to signal that the response processing terminated abnormally.
      Parameters:
        `ex` - exception

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