public class BasicPushProducer extends Object implements AsyncPushProducer
AsyncPushProducer
that produces one fixed response
and relies on a AsyncEntityProducer
to generate response entity stream.Constructor and Description |
---|
BasicPushProducer(AsyncEntityProducer dataProducer) |
BasicPushProducer(HttpResponse response,
AsyncEntityProducer dataProducer) |
BasicPushProducer(int code,
AsyncEntityProducer dataProducer) |
Modifier and Type | Method and Description |
---|---|
int |
available()
Returns the number of bytes immediately available for output.
|
void |
failed(Exception cause)
Triggered to signal a failure in data generation.
|
void |
produce(DataStreamChannel channel)
Triggered to signal the ability of the underlying data channel
to accept more data.
|
void |
produceResponse(ResponseChannel channel,
HttpContext httpContext)
Triggered to signal the ability of the underlying response channel
to accept response messages.
|
void |
releaseResources() |
public BasicPushProducer(HttpResponse response, AsyncEntityProducer dataProducer)
public BasicPushProducer(int code, AsyncEntityProducer dataProducer)
public BasicPushProducer(AsyncEntityProducer dataProducer)
public void produceResponse(ResponseChannel channel, HttpContext httpContext) throws HttpException, IOException
AsyncPushProducer
produceResponse
in interface AsyncPushProducer
channel
- the response channel capable to accepting response messages.httpContext
- the actual execution context.HttpException
- in case of an HTTP protocol violation.IOException
- in case of an I/O error.public int available()
AsyncDataProducer
Please note this method should return zero if the data producer
is unable to produce any more data, in which case
AsyncDataProducer.produce(DataStreamChannel)
method will not get triggered.
The producer can resume writing out data asynchronously
once more data becomes available or request output readiness events
with DataStreamChannel.requestOutput()
.
available
in interface AsyncDataProducer
AsyncDataProducer.produce(DataStreamChannel)
,
DataStreamChannel.requestOutput()
public void produce(DataStreamChannel channel) throws IOException
AsyncDataProducer
Please note this method gets triggered only if AsyncDataProducer.available()
returns a positive value.
produce
in interface AsyncDataProducer
channel
- the data channel capable of accepting more data.IOException
- in case of an I/O error.AsyncDataProducer.available()
public void failed(Exception cause)
AsyncPushProducer
failed
in interface AsyncPushProducer
cause
- the cause of the failure.public void releaseResources()
releaseResources
in interface ResourceHolder
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.