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 response)
     
    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 response) 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>