|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.http.nio.protocol.NHttpHandlerBase
org.apache.http.nio.protocol.ThrottlingHttpServiceHandler
public class ThrottlingHttpServiceHandler
HTTP service handler implementation that allocates content buffers of limited size upon initialization and is capable of controlling the frequency of I/O events in order to guarantee those content buffers do not ever get overflown. This helps ensure near constant memory footprint of HTTP connections and to avoid the 'out of memory' condition while streaming out response content.
The service handler will delegate the task of processing requests and
generating response content to an Executor
, which is expected to
perform those tasks using dedicated worker threads in order to avoid
blocking the I/O thread.
NIOReactorPNames.CONTENT_BUFFER_SIZE
Field Summary | |
---|---|
protected java.util.concurrent.Executor |
executor
|
protected HttpExpectationVerifier |
expectationVerifier
|
protected HttpRequestHandlerResolver |
handlerResolver
|
protected HttpResponseFactory |
responseFactory
|
Fields inherited from class org.apache.http.nio.protocol.NHttpHandlerBase |
---|
allocator, CONN_STATE, connStrategy, eventListener, httpProcessor, params |
Constructor Summary | |
---|---|
ThrottlingHttpServiceHandler(HttpProcessor httpProcessor,
HttpResponseFactory responseFactory,
ConnectionReuseStrategy connStrategy,
ByteBufferAllocator allocator,
java.util.concurrent.Executor executor,
HttpParams params)
|
|
ThrottlingHttpServiceHandler(HttpProcessor httpProcessor,
HttpResponseFactory responseFactory,
ConnectionReuseStrategy connStrategy,
java.util.concurrent.Executor executor,
HttpParams params)
|
Method Summary | |
---|---|
void |
closed(NHttpServerConnection conn)
Triggered when the connection is closed. |
void |
connected(NHttpServerConnection conn)
Triggered when a new incoming connection is created. |
void |
exception(NHttpServerConnection conn,
HttpException httpex)
Triggered when an HTTP protocol violation occurs while receiving an HTTP request. |
void |
exception(NHttpServerConnection conn,
java.io.IOException ex)
Triggered when an I/O error occurrs while reading from or writing to the underlying channel. |
void |
inputReady(NHttpServerConnection conn,
ContentDecoder decoder)
Triggered when the underlying channel is ready for reading a new portion of the request entity through the corresponding content decoder. |
void |
outputReady(NHttpServerConnection conn,
ContentEncoder encoder)
Triggered when the underlying channel is ready for writing a next portion of the response entity through the corresponding content encoder. |
void |
requestReceived(NHttpServerConnection conn)
Triggered when a new HTTP request is received. |
void |
responseReady(NHttpServerConnection conn)
Triggered when the connection is ready to send an HTTP response. |
void |
setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
|
void |
setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
|
protected void |
shutdownConnection(NHttpConnection conn,
java.lang.Throwable cause)
|
void |
timeout(NHttpServerConnection conn)
Triggered when no input is detected on this connection over the maximum period of inactivity. |
Methods inherited from class org.apache.http.nio.protocol.NHttpHandlerBase |
---|
canResponseHaveBody, closeConnection, getParams, handleTimeout, setEventListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final HttpResponseFactory responseFactory
protected final java.util.concurrent.Executor executor
protected HttpRequestHandlerResolver handlerResolver
protected HttpExpectationVerifier expectationVerifier
Constructor Detail |
---|
public ThrottlingHttpServiceHandler(HttpProcessor httpProcessor, HttpResponseFactory responseFactory, ConnectionReuseStrategy connStrategy, ByteBufferAllocator allocator, java.util.concurrent.Executor executor, HttpParams params)
public ThrottlingHttpServiceHandler(HttpProcessor httpProcessor, HttpResponseFactory responseFactory, ConnectionReuseStrategy connStrategy, java.util.concurrent.Executor executor, HttpParams params)
Method Detail |
---|
public void setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
public void setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
public void connected(NHttpServerConnection conn)
NHttpServiceHandler
connected
in interface NHttpServiceHandler
conn
- new incoming connection HTTP connection.public void closed(NHttpServerConnection conn)
NHttpServiceHandler
closed
in interface NHttpServiceHandler
conn
- closed HTTP connection.public void exception(NHttpServerConnection conn, HttpException httpex)
NHttpServiceHandler
exception
in interface NHttpServiceHandler
conn
- HTTP connection that caused an HTTP protocol violationhttpex
- HTTP protocol violation exceptionpublic void exception(NHttpServerConnection conn, java.io.IOException ex)
NHttpServiceHandler
exception
in interface NHttpServiceHandler
conn
- HTTP connection that caused an I/O errorex
- I/O exceptionpublic void timeout(NHttpServerConnection conn)
NHttpServiceHandler
timeout
in interface NHttpServiceHandler
conn
- HTTP connection that caused timeout condition.public void requestReceived(NHttpServerConnection conn)
NHttpServiceHandler
NHttpServiceHandler.inputReady(NHttpServerConnection, ContentDecoder)
calls
to transfer the request content.
requestReceived
in interface NHttpServiceHandler
conn
- HTTP connection that contains a new HTTP requestNHttpServerConnection
public void inputReady(NHttpServerConnection conn, ContentDecoder decoder)
NHttpServiceHandler
IOControl.suspendInput()
.
inputReady
in interface NHttpServiceHandler
conn
- HTTP connection that can produce a new portion of the
incoming request content.decoder
- The content decoder to use to read content.NHttpConnection
,
ContentDecoder
public void responseReady(NHttpServerConnection conn)
NHttpServiceHandler
responseReady
in interface NHttpServiceHandler
conn
- HTTP connection that contains an HTTP responseNHttpServerConnection
public void outputReady(NHttpServerConnection conn, ContentEncoder encoder)
NHttpServiceHandler
IOControl.suspendOutput()
.
outputReady
in interface NHttpServiceHandler
conn
- HTTP connection that can accommodate a new portion
of the outgoing response content.encoder
- The content encoder to use to write content.NHttpConnection
,
ContentEncoder
protected void shutdownConnection(NHttpConnection conn, java.lang.Throwable cause)
shutdownConnection
in class NHttpHandlerBase
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |