Package db.buffers
Class BufferFileAdapter
java.lang.Object
db.buffers.BufferFileAdapter
- All Implemented Interfaces:
BufferFile
- Direct Known Subclasses:
ManagedBufferFileAdapter
BufferFileAdapter provides a BufferFile implementation which
wraps a BufferFileHandle.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidDeletes all parametersvoidclose()Close the buffer file.booleandelete()Delete this buffer file if writable.voiddispose()Dispose of this buffer file object.get(DataBuffer buf, int index) Get the specified buffer.intReturn the actual size of a user data buffer.int[]Returns the list of free indexes sorted by value.intReturns the number of allocated buffer indexes.intgetParameter(String name) Get a the stored value for a named parameter.String[]Returns a list of all parameter names.booleanReturns true if this file may not be modified via the buffer put method.booleanisRemote()Determine if this file is remotely accessedvoidput(DataBuffer buf, int index) Store a data buffer at the specified block index.voidsetFreeIndexes(int[] indexes) Sets the list of free buffer indexes.voidsetParameter(String name, int value) Set the integer value for a named parameter.booleanIf file is open read-write, the modified contents are flushed and the file re-opened as read-only.
-
Constructor Details
-
BufferFileAdapter
Constructor.- Parameters:
remoteBufferFile- remote buffer file handle
-
-
Method Details
-
getParameter
Description copied from interface:BufferFileGet a the stored value for a named parameter.- Specified by:
getParameterin interfaceBufferFile- Parameters:
name- parameter name- Returns:
- integer value
- Throws:
NoSuchElementException- thrown if parameter not foundIOException
-
setParameter
Description copied from interface:BufferFileSet the integer value for a named parameter.- Specified by:
setParameterin interfaceBufferFile- Parameters:
name- parameter namevalue- parameter value- Throws:
IOException
-
clearParameters
Description copied from interface:BufferFileDeletes all parameters- Specified by:
clearParametersin interfaceBufferFile- Throws:
IOException
-
getParameterNames
Description copied from interface:BufferFileReturns a list of all parameter names.- Specified by:
getParameterNamesin interfaceBufferFile- Throws:
IOException
-
getBufferSize
Description copied from interface:BufferFileReturn the actual size of a user data buffer. This value should be used when constructing DataBuffer objects.- Specified by:
getBufferSizein interfaceBufferFile- Returns:
- DataBuffer data size as a number of bytes
- Throws:
IOException- if an I/O error occurs
-
getIndexCount
Description copied from interface:BufferFileReturns 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.- Specified by:
getIndexCountin interfaceBufferFile- Throws:
IOException
-
getFreeIndexes
Description copied from interface:BufferFileReturns the list of free indexes sorted by value. The management of the free-index-list is implementation specific.- Specified by:
getFreeIndexesin interfaceBufferFile- Throws:
IOException
-
setFreeIndexes
Description copied from interface:BufferFileSets the list of free buffer indexes. The management of the free-index-list is implementation specific.- Specified by:
setFreeIndexesin interfaceBufferFile- Parameters:
indexes-- Throws:
IOException
-
isReadOnly
Description copied from interface:BufferFileReturns 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.- Specified by:
isReadOnlyin interfaceBufferFile- Throws:
IOException- if an I/O error occurs
-
setReadOnly
Description copied from interface:BufferFileIf 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.- Specified by:
setReadOnlyin interfaceBufferFile- Returns:
- true if successfully transitioned from read-write to read-only
- Throws:
IOException- if an I/O error occurs
-
close
Description copied from interface:BufferFileClose 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.- Specified by:
closein interfaceBufferFile- Throws:
IOException- if an I/O error occurs
-
delete
Description copied from interface:BufferFileDelete this buffer file if writable. Once deleted, this object is immediately disposed and may no longer be used.- Specified by:
deletein interfaceBufferFile- Returns:
- true if deleted, false if the file is read-only
- Throws:
IOException- if an I/O error occurs.
-
dispose
public void dispose()Description copied from interface:BufferFileDispose 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.- Specified by:
disposein interfaceBufferFile
-
get
Description copied from interface:BufferFileGet 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).- Specified by:
getin interfaceBufferFile- 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:
IOException- if an I/O error occurs
-
put
Description copied from interface:BufferFileStore a data buffer at the specified block index.- Specified by:
putin interfaceBufferFile- Parameters:
buf- data bufferindex- block index- Throws:
IOException- thrown if an IO error occurs
-
isRemote
public boolean isRemote()Determine if this file is remotely accessed- Returns:
- true if file is remote
-