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

    Constructors
    Constructor
    Description
    Creates a new instance of this consumer with the provided buffer limit
  • Method Summary

    Modifier and Type
    Method
    Description
    protected 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 of ByteBufferAllocator 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 httpResponse)
     
    protected void
     

    Methods inherited from class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer

    cancel, close, consumeContent, failed, getContentType, getException, getResult, isDone, onClose, responseCompleted, responseReceived

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 httpResponse) throws org.apache.http.HttpException, IOException
      Specified by:
      onResponseReceived in class org.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 class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
      Throws:
      IOException
    • getByteBufferAllocator

      protected org.apache.http.nio.util.ByteBufferAllocator getByteBufferAllocator()
      Returns the instance of ByteBufferAllocator to use for content buffering. Allows to plug in any ByteBufferAllocator implementation.
    • onContentReceived

      protected void onContentReceived(org.apache.http.nio.ContentDecoder decoder, org.apache.http.nio.IOControl ioctrl) throws IOException
      Specified by:
      onContentReceived in class org.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 class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
      Throws:
      Exception
    • releaseResources

      protected void releaseResources()
      Specified by:
      releaseResources in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>