|
||||||||||
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.NHttpServiceHandlerBase
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.
HttpNIOParams.CONTENT_BUFFER_SIZE
Field Summary | |
---|---|
protected Executor |
executor
|
Fields inherited from class org.apache.http.nio.protocol.NHttpServiceHandlerBase |
---|
expectationVerifier, handlerResolver, 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,
Executor executor,
HttpParams params)
|
|
ThrottlingHttpServiceHandler(HttpProcessor httpProcessor,
HttpResponseFactory responseFactory,
ConnectionReuseStrategy connStrategy,
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 |
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. |
protected void |
shutdownConnection(NHttpConnection conn,
java.lang.Throwable cause)
|
Methods inherited from class org.apache.http.nio.protocol.NHttpServiceHandlerBase |
---|
exception, setExpectationVerifier, setHandlerResolver, timeout |
Methods inherited from class org.apache.http.nio.protocol.NHttpHandlerBase |
---|
canResponseHaveBody, closeConnection, getParams, setEventListener, shutdownConnection |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final Executor executor
Constructor Detail |
---|
public ThrottlingHttpServiceHandler(HttpProcessor httpProcessor, HttpResponseFactory responseFactory, ConnectionReuseStrategy connStrategy, ByteBufferAllocator allocator, Executor executor, HttpParams params)
public ThrottlingHttpServiceHandler(HttpProcessor httpProcessor, HttpResponseFactory responseFactory, ConnectionReuseStrategy connStrategy, Executor executor, HttpParams params)
Method Detail |
---|
public void connected(NHttpServerConnection conn)
NHttpServiceHandler
conn
- closed HTTP connection.public void closed(NHttpServerConnection conn)
NHttpServiceHandler
conn
- closed HTTP connection.public void exception(NHttpServerConnection conn, HttpException httpex)
NHttpServiceHandler
conn
- HTTP connection that caused an HTTP protocol violationhttpex
- HTTP protocol violation exceptionpublic void requestReceived(NHttpServerConnection conn)
NHttpServiceHandler
NHttpServiceHandler.inputReady(NHttpServerConnection, ContentDecoder)
calls
to transfer the request content.
conn
- HTTP connection that contains a new HTTP requestNHttpServerConnection
public void inputReady(NHttpServerConnection conn, ContentDecoder decoder)
NHttpServiceHandler
IOControl.suspendInput()
.
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
conn
- HTTP connection that contains an HTTP responseNHttpServerConnection
public void outputReady(NHttpServerConnection conn, ContentEncoder encoder)
NHttpServiceHandler
IOControl.suspendOutput()
.
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)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |