Package db.buffers
Interface BufferFile
-
- All Known Subinterfaces:
ManagedBufferFile
- All Known Implementing Classes:
BufferFileAdapter,LocalBufferFile,LocalManagedBufferFile,ManagedBufferFileAdapter
public interface BufferFileBufferFilefacilitates read/write access to buffer oriented file. Access to related resources, such as parameters and change data, is also facilitated.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclearParameters()Deletes all parametersvoidclose()Close the buffer file.booleandelete()Delete this buffer file if writable.voiddispose()Dispose of this buffer file object.DataBufferget(DataBuffer buf, int index)Get the specified buffer.intgetBufferSize()Return the actual size of a user data buffer.int[]getFreeIndexes()Returns the list of free indexes sorted by value.intgetIndexCount()Returns the number of allocated buffer indexes.intgetParameter(java.lang.String name)Get a the stored value for a named parameter.java.lang.String[]getParameterNames()Returns a list of all parameter names.booleanisReadOnly()Returns true if this file may not be modified via the buffer put method.voidput(DataBuffer buf, int index)Store a data buffer at the specified block index.voidsetFreeIndexes(int[] indexes)Sets the list of free buffer indexes.voidsetParameter(java.lang.String name, int value)Set the integer value for a named parameter.booleansetReadOnly()If file is open read-write, the modified contents are flushed and the file re-opened as read-only.
-
-
-
Method Detail
-
isReadOnly
boolean isReadOnly() throws java.io.IOExceptionReturns true if this file may not be modified via the buffer put method. A read-only file may be considered "updateable" if the canSave method returns true. The term "updateable" means that a Save file can be obtained via the getSaveFile method.- Throws:
java.io.IOException- if an I/O error occurs
-
setReadOnly
boolean setReadOnly() throws java.io.IOExceptionIf file is open read-write, the modified contents are flushed and the file re-opened as read-only. This is also used to commit a new version if the file had been modified for update.- Throws:
java.io.IOException- if an I/O error occurs
-
getParameter
int getParameter(java.lang.String name) throws java.util.NoSuchElementException, java.io.IOExceptionGet a the stored value for a named parameter.- Parameters:
name- parameter name- Returns:
- integer value
- Throws:
java.util.NoSuchElementException- thrown if parameter not foundjava.io.IOException
-
setParameter
void setParameter(java.lang.String name, int value) throws java.io.IOExceptionSet the integer value for a named parameter.- Parameters:
name- parameter namevalue- parameter value- Throws:
java.io.IOException
-
clearParameters
void clearParameters() throws java.io.IOExceptionDeletes all parameters- Throws:
java.io.IOException
-
getParameterNames
java.lang.String[] getParameterNames() throws java.io.IOExceptionReturns a list of all parameter names.- Throws:
java.io.IOException
-
getBufferSize
int getBufferSize() throws java.io.IOExceptionReturn the actual size of a user data buffer. This value should be used when constructing DataBuffer objects.- Returns:
- DataBuffer data size as a number of bytes
- Throws:
java.io.IOException- if an I/O error occurs
-
getIndexCount
int getIndexCount() throws java.io.IOExceptionReturns the number of allocated buffer indexes. When a new buffer is allocated, and the file size grows, the buffer will remain allocated although it may be added to the list of free-indexes. A file will never shrink in size due to this permanent allocation.- Throws:
java.io.IOException
-
getFreeIndexes
int[] getFreeIndexes() throws java.io.IOExceptionReturns the list of free indexes sorted by value. The management of the free-index-list is implementation specific.- Throws:
java.io.IOException
-
setFreeIndexes
void setFreeIndexes(int[] indexes) throws java.io.IOExceptionSets the list of free buffer indexes. The management of the free-index-list is implementation specific.- Parameters:
indexes-- Throws:
java.io.IOException
-
close
void close() throws java.io.IOExceptionClose the buffer file. If the file was open for write access, all buffers are flushed and the file header updated. Once closed, this object is immediately disposed and may no longer be used.- Throws:
java.io.IOException- if an I/O error occurs
-
delete
boolean delete() throws java.io.IOExceptionDelete this buffer file if writable. Once deleted, this object is immediately disposed and may no longer be used.- Throws:
java.io.IOException- if an I/O error occurs.
-
dispose
void dispose()
Dispose of this buffer file object. If file is not readOnly and has not been closed, an attempt will be made to delete the associated file(s). Once disposed, it may no longer be used.
-
get
DataBuffer get(DataBuffer buf, int index) throws java.io.IOException
Get the specified buffer. DataBuffer data and flags are read from the file at index and stored within the supplied DataBuffer object. If the read buffer is empty, the DataBuffer's data field will remain unchanged (which could be null).- Parameters:
buf- a buffer whose data array will be filled-in or replaced.index- index of buffer to be read. First user buffer is at index 0.- Throws:
java.io.EOFException- if the requested buffer index is greater than the number of available buffers of the end-of-file was encountered while reading the buffer.java.io.IOException- if an I/O error occurs
-
put
void put(DataBuffer buf, int index) throws java.io.IOException
Store a data buffer at the specified block index.- Parameters:
buf- data bufferindex- block index- Throws:
java.io.IOException- thrown if an IO error occurs
-
-