org.jrobin.core
Class RrdFileBackend

java.lang.Object
  extended by org.jrobin.core.RrdBackend
      extended by 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
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

Overrides:
finalize in class java.lang.Object
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.