|
||||||||||
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.ThrottlingHttpClientHandler
public class ThrottlingHttpClientHandler
HTTP client 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 client handler will delegate the tasks of sending entity enclosing
HTTP requests and processing of HTTP responses 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 HttpRequestExecutionHandler |
execHandler
|
protected java.util.concurrent.Executor |
executor
|
Fields inherited from class org.apache.http.nio.protocol.NHttpHandlerBase |
---|
allocator, CONN_STATE, connStrategy, eventListener, httpProcessor, params |
Constructor Summary | |
---|---|
ThrottlingHttpClientHandler(HttpProcessor httpProcessor,
HttpRequestExecutionHandler execHandler,
ConnectionReuseStrategy connStrategy,
ByteBufferAllocator allocator,
java.util.concurrent.Executor executor,
HttpParams params)
|
|
ThrottlingHttpClientHandler(HttpProcessor httpProcessor,
HttpRequestExecutionHandler execHandler,
ConnectionReuseStrategy connStrategy,
java.util.concurrent.Executor executor,
HttpParams params)
|
Method Summary | |
---|---|
void |
closed(NHttpClientConnection conn)
Triggered when the connection is closed. |
void |
connected(NHttpClientConnection conn,
java.lang.Object attachment)
Triggered when a new outgoing connection is created. |
void |
exception(NHttpClientConnection conn,
HttpException ex)
Triggered when an HTTP protocol violation occurs while receiving an HTTP response. |
void |
exception(NHttpClientConnection conn,
java.io.IOException ex)
Triggered when an I/O error occurrs while reading from or writing to the underlying channel. |
void |
inputReady(NHttpClientConnection conn,
ContentDecoder decoder)
Triggered when the underlying channel is ready for reading a new portion of the response entity through the corresponding content decoder. |
void |
outputReady(NHttpClientConnection conn,
ContentEncoder encoder)
Triggered when the underlying channel is ready for writing a next portion of the request entity through the corresponding content encoder. |
void |
requestReady(NHttpClientConnection conn)
Triggered when the connection is ready to send an HTTP request. |
void |
responseReceived(NHttpClientConnection conn)
Triggered when an HTTP response is received. |
void |
timeout(NHttpClientConnection 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, shutdownConnection |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected HttpRequestExecutionHandler execHandler
protected final java.util.concurrent.Executor executor
Constructor Detail |
---|
public ThrottlingHttpClientHandler(HttpProcessor httpProcessor, HttpRequestExecutionHandler execHandler, ConnectionReuseStrategy connStrategy, ByteBufferAllocator allocator, java.util.concurrent.Executor executor, HttpParams params)
public ThrottlingHttpClientHandler(HttpProcessor httpProcessor, HttpRequestExecutionHandler execHandler, ConnectionReuseStrategy connStrategy, java.util.concurrent.Executor executor, HttpParams params)
Method Detail |
---|
public void connected(NHttpClientConnection conn, java.lang.Object attachment)
NHttpClientHandler
connected
in interface NHttpClientHandler
conn
- new outgoing HTTP connection.attachment
- an arbitrary object that was attached to the
session requestpublic void closed(NHttpClientConnection conn)
NHttpClientHandler
closed
in interface NHttpClientHandler
conn
- closed HTTP connection.public void exception(NHttpClientConnection conn, HttpException ex)
NHttpClientHandler
exception
in interface NHttpClientHandler
conn
- HTTP connection that caused an HTTP protocol violationex
- HTTP protocol violation exceptionpublic void exception(NHttpClientConnection conn, java.io.IOException ex)
NHttpClientHandler
exception
in interface NHttpClientHandler
conn
- HTTP connection that caused an I/O errorex
- I/O exceptionpublic void requestReady(NHttpClientConnection conn)
NHttpClientHandler
requestReady
in interface NHttpClientHandler
conn
- HTTP connection that is ready to send an HTTP requestNHttpClientConnection
public void outputReady(NHttpClientConnection conn, ContentEncoder encoder)
NHttpClientHandler
IOControl.suspendOutput()
.
outputReady
in interface NHttpClientHandler
conn
- HTTP connection that can accommodate a new portion
of the outgoing request content.encoder
- The content encoder to use to write content.NHttpConnection
,
ContentEncoder
public void responseReceived(NHttpClientConnection conn)
NHttpClientHandler
NHttpClientHandler.inputReady(NHttpClientConnection, ContentDecoder)
calls
to transfer the response content.
responseReceived
in interface NHttpClientHandler
conn
- HTTP connection that contains an HTTP responseNHttpClientConnection
public void inputReady(NHttpClientConnection conn, ContentDecoder decoder)
NHttpClientHandler
IOControl.suspendInput()
.
inputReady
in interface NHttpClientHandler
conn
- HTTP connection that can produce a new portion of the
incoming response content.decoder
- The content decoder to use to read content.NHttpConnection
,
ContentDecoder
public void timeout(NHttpClientConnection conn)
NHttpClientHandler
timeout
in interface NHttpClientHandler
conn
- HTTP connection that caused timeout condition.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |