## org.apache.http.nio.protocol
Interface HttpAsyncResponseProducer

All Superinterfaces:
  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
`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.
  Throws:
    `HttpException` - in case of HTTP protocol violation
    `IOException` - in case of an I/O error

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