Package db.buffers

Class BufferFileAdapter

  • All Implemented Interfaces:
    BufferFile
    Direct Known Subclasses:
    ManagedBufferFileAdapter

    public class BufferFileAdapter
    extends java.lang.Object
    implements BufferFile
    BufferFileAdapter provides a BufferFile implementation which wraps a BufferFileHandle.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clearParameters()
      Deletes all parameters
      void close()
      Close the buffer file.
      boolean delete()
      Delete this buffer file if writable.
      void dispose()
      Dispose of this buffer file object.
      DataBuffer get​(DataBuffer buf, int index)
      Get the specified buffer.
      int getBufferSize()
      Return the actual size of a user data buffer.
      int[] getFreeIndexes()
      Returns the list of free indexes sorted by value.
      int getIndexCount()
      Returns the number of allocated buffer indexes.
      int getParameter​(java.lang.String name)
      Get a the stored value for a named parameter.
      java.lang.String[] getParameterNames()
      Returns a list of all parameter names.
      boolean isReadOnly()
      Returns true if this file may not be modified via the buffer put method.
      boolean isRemote()
      Determine if this file is remotely accessed
      void put​(DataBuffer buf, int index)
      Store a data buffer at the specified block index.
      void setFreeIndexes​(int[] indexes)
      Sets the list of free buffer indexes.
      void setParameter​(java.lang.String name, int value)
      Set the integer value for a named parameter.
      boolean setReadOnly()
      If file is open read-write, the modified contents are flushed and the file re-opened as read-only.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BufferFileAdapter

        public BufferFileAdapter​(BufferFileHandle remoteBufferFile)
        Constructor.
        Parameters:
        remoteBufferFile - remote buffer file handle
    • Method Detail

      • getParameter

        public int getParameter​(java.lang.String name)
                         throws java.util.NoSuchElementException,
                                java.io.IOException
        Description copied from interface: BufferFile
        Get a the stored value for a named parameter.
        Specified by:
        getParameter in interface BufferFile
        Parameters:
        name - parameter name
        Returns:
        integer value
        Throws:
        java.util.NoSuchElementException - thrown if parameter not found
        java.io.IOException
      • setParameter

        public void setParameter​(java.lang.String name,
                                 int value)
                          throws java.io.IOException
        Description copied from interface: BufferFile
        Set the integer value for a named parameter.
        Specified by:
        setParameter in interface BufferFile
        Parameters:
        name - parameter name
        value - parameter value
        Throws:
        java.io.IOException
      • clearParameters

        public void clearParameters()
                             throws java.io.IOException
        Description copied from interface: BufferFile
        Deletes all parameters
        Specified by:
        clearParameters in interface BufferFile
        Throws:
        java.io.IOException
      • getParameterNames

        public java.lang.String[] getParameterNames()
                                             throws java.io.IOException
        Description copied from interface: BufferFile
        Returns a list of all parameter names.
        Specified by:
        getParameterNames in interface BufferFile
        Throws:
        java.io.IOException
      • getBufferSize

        public int getBufferSize()
                          throws java.io.IOException
        Description copied from interface: BufferFile
        Return the actual size of a user data buffer. This value should be used when constructing DataBuffer objects.
        Specified by:
        getBufferSize in interface BufferFile
        Returns:
        DataBuffer data size as a number of bytes
        Throws:
        java.io.IOException - if an I/O error occurs
      • getIndexCount

        public int getIndexCount()
                          throws java.io.IOException
        Description copied from interface: BufferFile
        Returns 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:
        getIndexCount in interface BufferFile
        Throws:
        java.io.IOException
      • getFreeIndexes

        public int[] getFreeIndexes()
                             throws java.io.IOException
        Description copied from interface: BufferFile
        Returns the list of free indexes sorted by value. The management of the free-index-list is implementation specific.
        Specified by:
        getFreeIndexes in interface BufferFile
        Throws:
        java.io.IOException
      • setFreeIndexes

        public void setFreeIndexes​(int[] indexes)
                            throws java.io.IOException
        Description copied from interface: BufferFile
        Sets the list of free buffer indexes. The management of the free-index-list is implementation specific.
        Specified by:
        setFreeIndexes in interface BufferFile
        Throws:
        java.io.IOException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.io.IOException
        Description copied from interface: BufferFile
        Returns 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:
        isReadOnly in interface BufferFile
        Throws:
        java.io.IOException - if an I/O error occurs
      • setReadOnly

        public boolean setReadOnly()
                            throws java.io.IOException
        Description copied from interface: BufferFile
        If 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:
        setReadOnly in interface BufferFile
        Returns:
        true if successfully transitioned from read-write to read-only
        Throws:
        java.io.IOException - if an I/O error occurs
      • close

        public void close()
                   throws java.io.IOException
        Description copied from interface: BufferFile
        Close 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:
        close in interface BufferFile
        Throws:
        java.io.IOException - if an I/O error occurs
      • delete

        public boolean delete()
                       throws java.io.IOException
        Description copied from interface: BufferFile
        Delete this buffer file if writable. Once deleted, this object is immediately disposed and may no longer be used.
        Specified by:
        delete in interface BufferFile
        Returns:
        true if deleted, false if the file is read-only
        Throws:
        java.io.IOException - if an I/O error occurs.
      • dispose

        public void dispose()
        Description copied from interface: BufferFile
        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.
        Specified by:
        dispose in interface BufferFile
      • get

        public DataBuffer get​(DataBuffer buf,
                              int index)
                       throws java.io.IOException
        Description copied from interface: BufferFile
        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).
        Specified by:
        get in interface BufferFile
        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

        public void put​(DataBuffer buf,
                        int index)
                 throws java.io.IOException
        Description copied from interface: BufferFile
        Store a data buffer at the specified block index.
        Specified by:
        put in interface BufferFile
        Parameters:
        buf - data buffer
        index - block index
        Throws:
        java.io.IOException - thrown if an IO error occurs
      • isRemote

        public boolean isRemote()
        Determine if this file is remotely accessed
        Returns:
        true if file is remote