Package org.simpleframework.util.buffer

## Interface Allocator

- All Superinterfaces:
    `java.lang.AutoCloseable`, `java.io.Closeable`
  All Known Implementing Classes:
    `ArrayAllocator`, `BufferAllocator`, `FileAllocator`, `FilterAllocator`

      public interface Allocator
      extends java.io.Closeable

  The `Allocator` interface is used to describe a resource that can allocate a buffer. This is used so that memory allocation can be implemented as a strategy allowing many different sources of memory. Typically memory will be allocated as an array of bytes but can be a mapped region of shared memory or a file.
  Author:
    Niall Gallagher

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Buffer` | `allocate()` | This method is used to allocate a default buffer.
    `Buffer` | `allocate​(int size)` | This method is used to allocate a default buffer.
    `void` | `close()` | This method is used to close the allocator so that resources that are occupied by the allocator can be freed.

- - ### Method Detail

    - #### allocate

          Buffer allocate()
                   throws java.io.IOException

      This method is used to allocate a default buffer. Typically this will allocate a buffer of predetermined size, allowing it to grow to an upper limit to accommodate extra data. If the buffer can not be allocated for some reason this throws an exception.
      Returns:
        this returns an allocated buffer with a default size
      Throws:
        `java.io.IOException`

    - #### allocate

          Buffer allocate​(int size)
                   throws java.io.IOException

      This method is used to allocate a default buffer. This is used to allocate a buffer of the specified size, allowing it to grow to an upper limit to accommodate extra data. If the buffer can not be allocated for some reason this throws an exception.
      Parameters:
        `size` - this is the initial capacity the buffer should have
      Returns:
        this returns an allocated buffer with a specified size
      Throws:
        `java.io.IOException`

    - #### close

          void close()
              throws java.io.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 `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `java.io.Closeable`
      Throws:
        `java.io.IOException`