Class ArrayAllocator

java.lang.Object
org.simpleframework.util.buffer.ArrayAllocator
All Implemented Interfaces:
Closeable, AutoCloseable, Allocator

public class ArrayAllocator extends Object implements Allocator
The ArrayAllocator object is used to provide a means to allocate buffers using a single byte array. This essentially uses the heap to allocate all buffers. As a result the performance of the resulting buffers is good, however for very large buffers this will use quote allot of the usable heap space. For very large buffers a mapped region of shared memory of a file should be considered.
Author:
Niall Gallagher
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for the ArrayAllocator object.
    ArrayAllocator(int size)
    Constructor for the ArrayAllocator object.
    ArrayAllocator(int size, int limit)
    Constructor for the ArrayAllocator object.
  • Method Summary

    Modifier and Type
    Method
    Description
    This method is used to allocate a default buffer.
    allocate(int size)
    This method is used to allocate a default buffer.
    void
    This method is used to close the allocator so that resources that are occupied by the allocator can be freed.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ArrayAllocator

      public ArrayAllocator()
      Constructor for the ArrayAllocator object. This is used to instantiate the allocator with a default buffer size of half a kilobyte. This ensures that it can be used for general purpose byte storage and for minor I/O tasks.
    • ArrayAllocator

      public ArrayAllocator(int size)
      Constructor for the ArrayAllocator object. This is used to instantiate the allocator with a specified buffer size. This is typically used when a very specific buffer capacity is required, for example a request body with a known length.
      Parameters:
      size - the initial capacity of the allocated buffers
    • ArrayAllocator

      public ArrayAllocator(int size, int limit)
      Constructor for the ArrayAllocator object. This is used to instantiate the allocator with a specified buffer size. This is typically used when a very specific buffer capacity is required, for example a request body with a known length.
      Parameters:
      size - the initial capacity of the allocated buffers
      limit - this is the maximum buffer size created by this
  • Method Details

    • allocate

      public Buffer allocate() throws IOException
      This method is used to allocate a default buffer. This will allocate a buffer of predetermined size, allowing it to grow to an upper limit to accomodate extra data. If the buffer requested is larger than the limit an exception is thrown.
      Specified by:
      allocate in interface Allocator
      Returns:
      this returns an allocated buffer with a default size
      Throws:
      IOException
    • allocate

      public Buffer allocate(int size) throws IOException
      This method is used to allocate a default buffer. This will allocate a buffer of predetermined size, allowing it to grow to an upper limit to accomodate extra data. If the buffer requested is larger than the limit an exception is thrown.
      Specified by:
      allocate in interface Allocator
      Parameters:
      size - the initial capacity of the allocated buffer
      Returns:
      this returns an allocated buffer with a default size
      Throws:
      IOException
    • close

      public void close() throws IOException
      This method is used to close the allocator so that resources that are occupied by the allocator can be freed. This will allow the allocator to be created and closed repeatedly in a single process without holding on to resources such as mapped file buffers or threads.
      Specified by:
      close in interface Allocator
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException