org.jrobin.core
Class Robin

java.lang.Object
  extended by org.jrobin.core.Robin

public class Robin
extends Object

Class to represent archive values for a single datasource. Robin class is the heart of the so-called "round robin database" concept. Basically, each Robin object is a fixed length array of double values. Each double value reperesents consolidated, archived value for the specific timestamp. When the underlying array of double values gets completely filled, new values will replace the oldest ones.

Robin object does not hold values in memory - such object could be quite large. Instead of it, Robin reads them from the backend I/O only when necessary.


Method Summary
 void copyStateTo(org.jrobin.core.RrdUpdater other)
          Copies object's internal state to another Robin object.
 Archive getParent()
          Returns the Archive object to which this Robin object belongs.
 org.jrobin.core.RrdAllocator getRrdAllocator()
          Required to implement RrdUpdater interface.
 RrdBackend getRrdBackend()
          Returns the underlying storage (backend) object which actually performs all I/O operations.
 int getSize()
          Returns the size of the underlying array of archived values.
 double getValue(int index)
          Returns the i-th value from the Robin archive.
 double[] getValues()
          Fetches all archived values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getValues

public double[] getValues()
                   throws IOException
Fetches all archived values.

Returns:
Array of double archive values, starting from the oldest one.
Throws:
IOException - Thrown in case of I/O specific error.

getValue

public double getValue(int index)
                throws IOException
Returns the i-th value from the Robin archive.

Parameters:
index - Value index
Returns:
Value stored in the i-th position (the oldest value has zero index)
Throws:
IOException - Thrown in case of I/O specific error.

getParent

public Archive getParent()
Returns the Archive object to which this Robin object belongs.

Returns:
Parent Archive object

getSize

public int getSize()
Returns the size of the underlying array of archived values.

Returns:
Number of stored values

copyStateTo

public void copyStateTo(org.jrobin.core.RrdUpdater other)
                 throws IOException,
                        RrdException
Copies object's internal state to another Robin object.

Parameters:
other - New Robin object to copy state to
Throws:
IOException - Thrown in case of I/O error
RrdException - Thrown if supplied argument is not a Robin object

getRrdBackend

public RrdBackend getRrdBackend()
Returns the underlying storage (backend) object which actually performs all I/O operations.

Returns:
I/O backend object

getRrdAllocator

public org.jrobin.core.RrdAllocator getRrdAllocator()
Required to implement RrdUpdater interface. You should never call this method directly.

Returns:
Allocator object