org.jrobin.core
Class RrdNioBackend

java.lang.Object
  extended by org.jrobin.core.RrdBackend
      extended by org.jrobin.core.RrdFileBackend
          extended by org.jrobin.core.RrdNioBackend

public class RrdNioBackend
extends RrdFileBackend

JRobin backend which is used to store RRD data to ordinary disk files by using fast java.nio.* package. This is the default backend engine since JRobin 1.4.0.


Field Summary
 
Fields inherited from class org.jrobin.core.RrdFileBackend
file, fileLock, lockMode, readOnly
 
Constructor Summary
protected RrdNioBackend(java.lang.String path, boolean readOnly, int lockMode, int syncMode, int syncPeriod)
          Creates RrdFileBackend object for the given file path, backed by java.nio.* classes.
 
Method Summary
protected  void afterFetch()
          Method called by the framework immediatelly after RRD fetch operation finishes.
protected  void afterUpdate()
          Method called by the framework immediatelly after RRD update operation finishes.
protected  void beforeFetch()
          Method called by the framework immediatelly before RRD fetch operation starts.
protected  void beforeUpdate()
          Method called by the framework immediatelly before RRD update operation starts.
 void close()
          Closes the underlying RRD file.
protected  void read(long offset, byte[] b)
          Reads a number of bytes from the RRD file on the disk
protected  void setLength(long newLength)
          Sets length of the underlying RRD file.
protected  void sync()
          This method forces all data cached in memory but not yet stored in the file, to be stored in it.
protected  void write(long offset, byte[] b)
          Writes bytes to the underlying RRD file on the disk
 
Methods inherited from class org.jrobin.core.RrdFileBackend
getCanonicalPath, getCanonicalPath, getLength
 
Methods inherited from class org.jrobin.core.RrdBackend
afterCreate, beforeClose, getPath, isCachingAllowed, readAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RrdNioBackend

protected RrdNioBackend(java.lang.String path,
                        boolean readOnly,
                        int lockMode,
                        int syncMode,
                        int syncPeriod)
                 throws java.io.IOException
Creates RrdFileBackend object for the given file path, backed by java.nio.* classes.

Parameters:
path - Path to a file
readOnly - True, if file should be open in a read-only mode. False otherwise
lockMode - Locking mode, as described in RrdDb.getLockMode()
syncMode - See RrdNioBackendFactory.setSyncMode(int) for explanation
syncPeriod - See RrdNioBackendFactory.setSyncMode(int) for explanation
Throws:
java.io.IOException - Thrown in case of I/O error
Method Detail

setLength

protected void setLength(long newLength)
                  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.

Overrides:
setLength in class RrdFileBackend
Parameters:
newLength - Length of the RRD file
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

Overrides:
write in class RrdFileBackend
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

Overrides:
read in class RrdFileBackend
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.

close

public void close()
           throws java.io.IOException
Closes the underlying RRD file.

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

sync

protected void sync()
This method forces all data cached in memory but not yet stored in the file, to be stored in it.

Overrides:
sync in class RrdBackend

beforeUpdate

protected void beforeUpdate()
Method called by the framework immediatelly before RRD update operation starts. This method will synchronize in-memory cache with the disk content if synchronization mode is set to RrdNioBackendFactory.SYNC_BEFOREUPDATE. Otherwise it does nothing.

Overrides:
beforeUpdate in class RrdBackend

afterUpdate

protected void afterUpdate()
Method called by the framework immediatelly after RRD update operation finishes. This method will synchronize in-memory cache with the disk content if synchronization mode is set to RrdNioBackendFactory.SYNC_AFTERUPDATE. Otherwise it does nothing.

Overrides:
afterUpdate in class RrdBackend

beforeFetch

protected void beforeFetch()
Method called by the framework immediatelly before RRD fetch operation starts. This method will synchronize in-memory cache with the disk content if synchronization mode is set to RrdNioBackendFactory.SYNC_BEFOREFETCH. Otherwise it does nothing.

Overrides:
beforeFetch in class RrdBackend

afterFetch

protected void afterFetch()
Method called by the framework immediatelly after RRD fetch operation finishes. This method will synchronize in-memory cache with the disk content if synchronization mode is set to RrdNioBackendFactory.SYNC_AFTERFETCH. Otherwise it does nothing.

Overrides:
afterFetch in class RrdBackend