org.rrd4j.core

## Class RrdRandomAccessFileBackend

- java.lang.Object
- - org.rrd4j.core.RrdBackend
  - - org.rrd4j.core.RrdRandomAccessFileBackend

- All Implemented Interfaces:
    RrdFileBackend
  Direct Known Subclasses:
    RrdSafeFileBackend

      public class RrdRandomAccessFileBackend
      extends RrdBackend
      implements RrdFileBackend

  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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected RandomAccessFile` | `rafile` Random access file handle.

    - ### Fields inherited from class org.rrd4j.core.RrdBackend

      `BYTEORDER`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `RrdRandomAccessFileBackend(String path, boolean readOnly)` Creates RrdFileBackend object for the given file path, backed by RandomAccessFile object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `close()` Closes the underlying RRD file.
    `String` | `getCanonicalPath()` Returns canonical path to the file on the disk.
    `long` | `getLength()` Returns the number of RRD bytes in the underlying storage.
    `void` | `read(long offset, byte[] b)` Reads a number of bytes from the RRD file on the disk
    `protected void` | `setLength(long length)` Sets the number of bytes in the underlying RRD storage.
    `protected void` | `write(long offset, byte[] b)` Writes bytes to the underlying RRD file on the disk

    - ### Methods inherited from class org.rrd4j.core.RrdBackend

      `done, getCharBuffer, getFactory, getPath, getUri, isCachingAllowed, isInstanceCreated, readAll, readDouble, readDouble, readInt, readLong, readShort, readString, rrdClose, writeDouble, writeDouble, writeDouble, writeInt, writeLong, writeShort, writeString, writeString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### rafile

          protected final RandomAccessFile rafile

      Random access file handle.

  - ### Constructor Detail

    - #### RrdRandomAccessFileBackend

          protected RrdRandomAccessFileBackend(String path,
                                               boolean readOnly)
                                        throws IOException

      Creates RrdFileBackend object for the given file path, backed by RandomAccessFile object.
      Parameters:
        `path` - Path to a file
        `readOnly` - True, if file should be open in a read-only mode. False otherwise
      Throws:
        `IOException` - Thrown in case of I/O error

  - ### Method Detail

    - #### close

          protected void close()
                        throws IOException

      Closes the underlying RRD file.
      Specified by:
        `close` in class `RrdBackend`
      Throws:
        `IOException` - Thrown in case of I/O error

    - #### getCanonicalPath

          public String getCanonicalPath()

      Description copied from interface: `RrdFileBackend`
      Returns canonical path to the file on the disk.
      Specified by:
        `getCanonicalPath` in interface `RrdFileBackend`
      Returns:
        Canonical file path

    - #### getLength

          public long getLength()
                         throws IOException

      Returns the number of RRD bytes in the underlying storage.
      Specified by:
        `getLength` in class `RrdBackend`
      Returns:
        Number of RRD bytes in the storage.
      Throws:
        `IOException` - Thrown in case of I/O error.

    - #### read

          public void read(long offset,
                           byte[] b)
                    throws 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:
        `IOException` - Thrown in case of I/O error.

    - #### setLength

          protected void setLength(long length)
                            throws IOException

      Sets the number of bytes in the underlying RRD storage. This method is called only once, immediately after a new RRD storage gets created.

      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 underlying RRD storage in bytes.
      Throws:
        `IOException` - Thrown in case of I/O error.

    - #### write

          protected void write(long offset,
                               byte[] b)
                        throws 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:
        `IOException` - Thrown in case of I/O error