Package org.elasticsearch.client
Class HeapBufferedAsyncResponseConsumer
java.lang.Object
org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
org.elasticsearch.client.HeapBufferedAsyncResponseConsumer
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.http.concurrent.Cancellable
,org.apache.http.nio.protocol.HttpAsyncResponseConsumer<org.apache.http.HttpResponse>
public class HeapBufferedAsyncResponseConsumer
extends org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
Default implementation of
HttpAsyncResponseConsumer
. Buffers the whole
response content in heap memory, meaning that the size of the buffer is equal to the content-length of the response.
Limits the size of responses that can be read based on a configurable argument. Throws an exception in case the entity is longer
than the configured buffer limit.-
Constructor Summary
ConstructorDescriptionHeapBufferedAsyncResponseConsumer(int bufferLimit)
Creates a new instance of this consumer with the provided buffer limit -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.http.HttpResponse
buildResult(org.apache.http.protocol.HttpContext context)
int
Get the limit of the buffer.protected org.apache.http.nio.util.ByteBufferAllocator
Returns the instance ofByteBufferAllocator
to use for content buffering.protected void
onContentReceived(org.apache.http.nio.ContentDecoder decoder, org.apache.http.nio.IOControl ioctrl)
protected void
onEntityEnclosed(org.apache.http.HttpEntity entity, org.apache.http.entity.ContentType contentType)
protected void
onResponseReceived(org.apache.http.HttpResponse response)
protected void
Methods inherited from class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer
cancel, close, consumeContent, failed, getContentType, getException, getResult, isDone, onClose, responseCompleted, responseReceived
-
Constructor Details
-
HeapBufferedAsyncResponseConsumer
public HeapBufferedAsyncResponseConsumer(int bufferLimit)Creates a new instance of this consumer with the provided buffer limit
-
-
Method Details
-
getBufferLimit
public int getBufferLimit()Get the limit of the buffer. -
onResponseReceived
protected void onResponseReceived(org.apache.http.HttpResponse response) throws org.apache.http.HttpException, IOException- Specified by:
onResponseReceived
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
- Throws:
org.apache.http.HttpException
IOException
-
onEntityEnclosed
protected void onEntityEnclosed(org.apache.http.HttpEntity entity, org.apache.http.entity.ContentType contentType) throws IOException- Specified by:
onEntityEnclosed
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
- Throws:
IOException
-
getByteBufferAllocator
protected org.apache.http.nio.util.ByteBufferAllocator getByteBufferAllocator()Returns the instance ofByteBufferAllocator
to use for content buffering. Allows to plug in anyByteBufferAllocator
implementation. -
onContentReceived
protected void onContentReceived(org.apache.http.nio.ContentDecoder decoder, org.apache.http.nio.IOControl ioctrl) throws IOException- Specified by:
onContentReceived
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
- Throws:
IOException
-
buildResult
protected org.apache.http.HttpResponse buildResult(org.apache.http.protocol.HttpContext context) throws Exception- Specified by:
buildResult
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
- Throws:
Exception
-
releaseResources
protected void releaseResources()- Specified by:
releaseResources
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
-