@ThreadSafe public class BasicAsyncResponseProducer extends Object implements HttpAsyncResponseProducer
HttpAsyncResponseProducer
. The producer
can make use of the HttpAsyncContentProducer
interface to
efficiently stream out message content to the underlying non-blocking HTTP
connection, if it is implemented by the HttpEntity
inclosed in
the response.HttpAsyncContentProducer
Modifier | Constructor and Description |
---|---|
|
BasicAsyncResponseProducer(HttpResponse response)
Creates a producer that can be used to transmit the given response
message.
|
protected |
BasicAsyncResponseProducer(HttpResponse response,
HttpAsyncContentProducer producer)
Creates a producer that can be used to transmit the given response
message.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
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.
|
protected BasicAsyncResponseProducer(HttpResponse response, HttpAsyncContentProducer producer)
HttpEntity
whose properties are consistent with the behavior
of the content producer.response
- response message.producer
- response content producer.public BasicAsyncResponseProducer(HttpResponse response)
HttpEntity
it is also expected to implement HttpAsyncContentProducer
.response
- response message.public HttpResponse generateResponse()
HttpAsyncResponseProducer
generateResponse
in interface HttpAsyncResponseProducer
public void produceContent(ContentEncoder encoder, IOControl ioctrl) throws IOException
HttpAsyncResponseProducer
ContentEncoder
.
The IOControl
interface can be used to suspend output events
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.produceContent
in interface HttpAsyncResponseProducer
encoder
- content encoder.ioctrl
- I/O control of the underlying connection.IOException
- in case of an I/O errorpublic void responseCompleted(HttpContext context)
HttpAsyncResponseProducer
responseCompleted
in interface HttpAsyncResponseProducer
context
- HTTP contextpublic void failed(Exception ex)
HttpAsyncResponseProducer
failed
in interface HttpAsyncResponseProducer
ex
- exceptionpublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 2005-2012 The Apache Software Foundation. All Rights Reserved.