public abstract class AbstractClassicServerExchangeHandler extends Object implements AsyncServerExchangeHandler
AsyncServerExchangeHandler implementation that acts as a compatibility
layer for classic InputStream / OutputStream based interfaces.
Blocking input / output processing is executed through an Executor.| Constructor and Description |
|---|
AbstractClassicServerExchangeHandler(int initialBufferSize,
Executor executor) |
| Modifier and Type | Method and Description |
|---|---|
int |
available()
Returns the number of bytes immediately available for output.
|
void |
consume(ByteBuffer src)
Triggered to pass incoming data to the data consumer.
|
void |
failed(Exception cause)
Triggered to signal a failure in data processing.
|
Exception |
getException() |
protected abstract void |
handle(HttpRequest request,
InputStream requestStream,
HttpResponse response,
OutputStream responseStream,
HttpContext context)
Handles an incoming request optionally reading its entity content form the given input stream
and generates a response optionally writing out its entity content into the given output stream.
|
void |
handleRequest(HttpRequest request,
EntityDetails entityDetails,
ResponseChannel responseChannel,
HttpContext context)
Processes the actual HTTP request.
|
void |
produce(DataStreamChannel channel)
Triggered to signal the ability of the underlying data channel
to accept more data.
|
void |
releaseResources() |
void |
streamEnd(List<? extends Header> trailers)
Triggered to signal termination of the data stream.
|
void |
updateCapacity(CapacityChannel capacityChannel)
Triggered to signal ability of the underlying data stream to receive
data capacity update.
|
public AbstractClassicServerExchangeHandler(int initialBufferSize,
Executor executor)
protected abstract void handle(HttpRequest request, InputStream requestStream, HttpResponse response, OutputStream responseStream, HttpContext context) throws IOException, HttpException
request - the incoming requestrequestStream - the request stream if the request encloses an entity,
null otherwise.response - the outgoing response.responseStream - the response entity output stream.context - the actual execution context.IOExceptionHttpExceptionpublic Exception getException()
public final void handleRequest(HttpRequest request, EntityDetails entityDetails, ResponseChannel responseChannel, HttpContext context) throws HttpException, IOException
AsyncServerExchangeHandlerhandleRequest in interface AsyncServerExchangeHandlerrequest - the actual request.entityDetails - the request entity details or null if the request
does not enclose an entity.responseChannel - the response channel.context - the actual execution context.HttpExceptionIOExceptionpublic final void updateCapacity(CapacityChannel capacityChannel) throws IOException
AsyncDataConsumerupdateCapacity in interface AsyncDataConsumercapacityChannel - the channel for capacity updates.IOExceptionpublic final void consume(ByteBuffer src) throws IOException
AsyncDataConsumerconsume in interface AsyncDataConsumersrc - data source.IOExceptionpublic final void streamEnd(List<? extends Header> trailers) throws HttpException, IOException
AsyncDataConsumerstreamEnd in interface AsyncDataConsumertrailers - data stream trailers.HttpExceptionIOExceptionpublic final int available()
AsyncDataProduceravailable in interface AsyncDataProducerpublic final void produce(DataStreamChannel channel) throws IOException
AsyncDataProducerproduce in interface AsyncDataProducerchannel - the data channel capable to accepting more data.IOExceptionpublic final void failed(Exception cause)
AsyncDataExchangeHandlerfailed in interface AsyncDataExchangeHandlercause - the cause of the failure.public void releaseResources()
releaseResources in interface ResourceHolderCopyright © 2005–2021 The Apache Software Foundation. All rights reserved.