org.simpleframework.util.buffer
Class FileAllocator

java.lang.Object
  extended by org.simpleframework.util.buffer.FileAllocator
All Implemented Interfaces:
Closeable, Allocator

public class FileAllocator
extends Object
implements Allocator

The FileAllocator object is used to create buffers that can be written to the file system. This creates buffers as files if they are larger than the specified limit. This ensures that buffers of arbitrary large size can be created. All buffer sizes under the limit are created using byte arrays allocated on the executing VM heap. This ensures that optimal performance is maintained for buffers of reasonable size.

Author:
Niall Gallagher

Constructor Summary
FileAllocator()
          Constructor for the FileAllocator object.
FileAllocator(int limit)
          Constructor for the FileAllocator object.
FileAllocator(String prefix)
          Constructor for the FileAllocator object.
FileAllocator(String prefix, int limit)
          Constructor for the FileAllocator object.
 
Method Summary
 Buffer allocate()
          This will allocate a file buffer which will write data for the buffer to a file.
 Buffer allocate(long size)
          This will allocate a file buffer which will write data for the buffer to a file.
 void close()
          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 Detail

FileAllocator

public FileAllocator()
Constructor for the FileAllocator object. This is used to create buffers in memory up to a threshold size. If a buffer is required over the threshold size then the data is written to a file, where it can be retrieved at a later point.


FileAllocator

public FileAllocator(int limit)
Constructor for the FileAllocator object. This is used to create buffers in memory up to a threshold size. If a buffer is required over the threshold size then the data is written to a file, where it can be retrieved at a later point.

Parameters:
limit - this is the maximum size for a heap buffer

FileAllocator

public FileAllocator(String prefix)
Constructor for the FileAllocator object. This is used to create buffers in memory up to a threshold size. If a buffer is required over the threshold size then the data is written to a file, where it can be retrieved at a later point.

Parameters:
prefix - this is the file prefix for the file buffers

FileAllocator

public FileAllocator(String prefix,
                     int limit)
Constructor for the FileAllocator object. This is used to create buffers in memory up to a threshold size. If a buffer is required over the threshold size then the data is written to a file, where it can be retrieved at a later point.

Parameters:
prefix - this is the file prefix for the file buffers
limit - this is the maximum size for a heap buffer
Method Detail

allocate

public Buffer allocate()
                throws IOException
This will allocate a file buffer which will write data for the buffer to a file. Buffers allocated by this method can be of arbitrary size as data is appended directly to a temporary file. This ensures there is no upper limit for appended data.

Specified by:
allocate in interface Allocator
Returns:
a buffer which will write to a temporary file
Throws:
IOException

allocate

public Buffer allocate(long size)
                throws IOException
This will allocate a file buffer which will write data for the buffer to a file. Buffers allocated by this method can be of arbitrary size as data is appended directly to a temporary file. This ensures there is no upper limit for appended data. If the size required is less than the limit then the buffer is an in memory array which provides optimal performance.

Specified by:
allocate in interface Allocator
Parameters:
size - this is the size of the buffer to be created
Returns:
a buffer which will write to a created temporary file
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 Closeable
Specified by:
close in interface Allocator
Throws:
IOException


Copyright © 2013. All Rights Reserved.