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.IOException
HttpException
public Exception getException()
public final void handleRequest(HttpRequest request, EntityDetails entityDetails, ResponseChannel responseChannel, HttpContext context) throws HttpException, IOException
AsyncServerExchangeHandler
handleRequest
in interface AsyncServerExchangeHandler
request
- 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.HttpException
IOException
public final void updateCapacity(CapacityChannel capacityChannel) throws IOException
AsyncDataConsumer
updateCapacity
in interface AsyncDataConsumer
capacityChannel
- the channel for capacity updates.IOException
public final void consume(ByteBuffer src) throws IOException
AsyncDataConsumer
consume
in interface AsyncDataConsumer
src
- data source.IOException
public final void streamEnd(List<? extends Header> trailers) throws HttpException, IOException
AsyncDataConsumer
streamEnd
in interface AsyncDataConsumer
trailers
- data stream trailers.HttpException
IOException
public final int available()
AsyncDataProducer
available
in interface AsyncDataProducer
public final void produce(DataStreamChannel channel) throws IOException
AsyncDataProducer
produce
in interface AsyncDataProducer
channel
- the data channel capable to accepting more data.IOException
public final void failed(Exception cause)
AsyncDataExchangeHandler
failed
in interface AsyncDataExchangeHandler
cause
- the cause of the failure.public void releaseResources()
releaseResources
in interface ResourceHolder
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.