Class FileAllocator
java.lang.Object
org.simpleframework.common.buffer.FileAllocator
- All Implemented Interfaces:
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.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
This is the limit up to which buffers are allocated in memory.private FileWatcher
This is the file manager used to create the buffer files.private static final String
This is the default prefix used when none has been specified. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for theFileAllocator
object.FileAllocator
(int limit) Constructor for theFileAllocator
object.FileAllocator
(String prefix) Constructor for theFileAllocator
object.FileAllocator
(String prefix, int limit) Constructor for theFileAllocator
object. -
Method Summary
-
Field Details
-
PREFIX
This is the default prefix used when none has been specified.- See Also:
-
manager
This is the file manager used to create the buffer files. -
limit
private int limitThis is the limit up to which buffers are allocated in memory.
-
-
Constructor Details
-
FileAllocator
public FileAllocator()Constructor for theFileAllocator
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 theFileAllocator
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
Constructor for theFileAllocator
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
Constructor for theFileAllocator
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 bufferslimit
- this is the maximum size for a heap buffer
-
-
Method Details
-
allocate
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 interfaceAllocator
- Returns:
- a buffer which will write to a temporary file
- Throws:
IOException
-
allocate
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 interfaceAllocator
- 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
-