## org.jrobin.core
Class RrdFileBackend

    java.lang.Object
      org.jrobin.core.RrdBackend
          org.jrobin.core.RrdFileBackend

Direct Known Subclasses:
  RrdNioBackend

public class RrdFileBackend
extends RrdBackend

JRobin backend which is used to store RRD data to ordinary files on the disk. This was the default factory before 1.4.0 version

This backend is based on the RandomAccessFile class (java.io.* package).

Field Summary
`protected java.nio.channels.FileChannel` `channel`
`protected java.io.RandomAccessFile` `file`
`protected java.nio.channels.FileLock` `fileLock`

Constructor Summary
`protected` `RrdFileBackend(java.lang.String path, boolean readOnly, int lockMode)`

Method Summary
`void` `close()` Closes the underlying RRD file.
`protected void` `finalize()` Closes the underlying RRD file if not already closed
`java.lang.String` `getCanonicalPath()` Returns canonical path to the file on the disk.
`static java.lang.String` `getCanonicalPath(java.lang.String path)` Returns canonical path to the file on the disk.
`long` `getLength()` Returns RRD file length.
`protected void` `read(long offset, byte[] b)` Reads a number of bytes from the RRD file on the disk
`protected void` `setLength(long length)` Sets length of the underlying RRD file.
`protected void` `write(long offset, byte[] b)` Writes bytes to the underlying RRD file on the disk

Methods inherited from class org.jrobin.core.RrdBackend
`afterCreate, afterFetch, afterUpdate, beforeFetch, beforeUpdate, getPath, readAll, sync`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### file

    protected java.io.RandomAccessFile file

### channel

    protected java.nio.channels.FileChannel channel

### fileLock

    protected java.nio.channels.FileLock fileLock

Constructor Detail

### RrdFileBackend

    protected RrdFileBackend(java.lang.String path,
                             boolean readOnly,
                             int lockMode)
                      throws java.io.IOException

Method Detail

### close

    public void close()
               throws java.io.IOException

  Closes the underlying RRD file.

  Overrides:
    `close` in class `RrdBackend`
  Throws:
    `java.io.IOException` - Thrown in case of I/O error

### finalize

    protected void finalize()
                     throws java.io.IOException

  Closes the underlying RRD file if not already closed

  Throws:
    `java.io.IOException` - Thrown in case of I/O error

### getCanonicalPath

    public static java.lang.String getCanonicalPath(java.lang.String path)
                                             throws java.io.IOException

  Returns canonical path to the file on the disk.

  Parameters:
    `path` - File path
  Returns:
    Canonical file path
  Throws:
    `java.io.IOException` - Thrown in case of I/O error

### getCanonicalPath

    public java.lang.String getCanonicalPath()
                                      throws java.io.IOException

  Returns canonical path to the file on the disk.

  Returns:
    Canonical file path
  Throws:
    `java.io.IOException` - Thrown in case of I/O error

### write

    protected void write(long offset,
                         byte[] b)
                  throws java.io.IOException

  Writes bytes to the underlying RRD file on the disk

  Specified by:
    `write` in class `RrdBackend`
  Parameters:
    `offset` - Starting file offset
    `b` - Bytes to be written.
  Throws:
    `java.io.IOException` - Thrown in case of I/O error

### read

    protected void read(long offset,
                        byte[] b)
                 throws java.io.IOException

  Reads a number of bytes from the RRD file on the disk

  Specified by:
    `read` in class `RrdBackend`
  Parameters:
    `offset` - Starting file offset
    `b` - Buffer which receives bytes read from the file.
  Throws:
    `java.io.IOException` - Thrown in case of I/O error.

### getLength

    public long getLength()
                   throws java.io.IOException

  Returns RRD file length.

  Specified by:
    `getLength` in class `RrdBackend`
  Returns:
    File length.
  Throws:
    `java.io.IOException` - Thrown in case of I/O error.

### setLength

    protected void setLength(long length)
                      throws java.io.IOException

  Sets length of the underlying RRD file. This method is called only once, immediately after a new RRD file gets created.

  Specified by:
    `setLength` in class `RrdBackend`
  Parameters:
    `length` - Length of the RRD file
  Throws:
    `java.io.IOException` - Thrown in case of I/O error.