public interface

Robin

org.rrd4j.core.Robin
Known Indirect Subclasses

Class Overview

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.

Summary

Public Methods
abstract void bulkStore(double newValue, int bulkCount)
abstract void copyStateTo(RrdUpdater other)
Copies object's internal state to another Robin object.
abstract String dump()
abstract void filterValues(double minValue, double maxValue)
Filters values stored in this archive based on the given boundary.
abstract Archive getParent()
Returns the Archive object to which this Robin object belongs.
abstract RrdAllocator getRrdAllocator()
Required to implement RrdUpdater interface.
abstract RrdBackend getRrdBackend()
Returns the underlying storage (backend) object which actually performs all I/O operations.
abstract int getSize()
Returns the size of the underlying array of archived values.
abstract double getValue(int index)
Returns the i-th value from the Robin archive.
abstract double[] getValues()
Fetches all archived values.
abstract double[] getValues(int index, int count)
abstract void setValue(int index, double value)
Sets the i-th value in the Robin archive.
abstract void setValues(double... newValues)
Updates archived values in bulk.
abstract void setValues(double newValue)
(Re)sets all values in this archive to the same value.
abstract void store(double newValue)
abstract void update(double[] newValues)

Public Methods

public abstract void bulkStore (double newValue, int bulkCount)

Throws
IOException

public abstract void copyStateTo (RrdUpdater other)

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

public abstract String dump ()

Throws
IOException

public abstract void filterValues (double minValue, double maxValue)

Filters values stored in this archive based on the given boundary. Archived values found to be outside of [minValue, maxValue] interval (inclusive) will be silently replaced with NaN.

Parameters
minValue lower boundary
maxValue upper boundary
Throws
IOException Thrown in case of I/O error

public abstract Archive getParent ()

Returns the Archive object to which this Robin object belongs.

Returns
  • Parent Archive object

public abstract RrdAllocator getRrdAllocator ()

Required to implement RrdUpdater interface. You should never call this method directly.

Returns
  • Allocator object

public abstract RrdBackend getRrdBackend ()

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

Returns
  • I/O backend object

public abstract int getSize ()

Returns the size of the underlying array of archived values.

Returns
  • Number of stored values

public abstract double getValue (int index)

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.

public abstract double[] getValues ()

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.

public abstract double[] getValues (int index, int count)

Throws
IOException

public abstract void setValue (int index, double value)

Sets the i-th value in the Robin archive.

Parameters
index index in the archive (the oldest value has zero index)
value value to be stored
Throws
IOException Thrown in case of I/O specific error.

public abstract void setValues (double... newValues)

Updates archived values in bulk.

Parameters
newValues Array of double values to be stored in the archive
Throws
IOException Thrown in case of I/O error
IllegalArgumentException Thrown if the length of the input array is different from the length of this archive

public abstract void setValues (double newValue)

(Re)sets all values in this archive to the same value.

Parameters
newValue New value
Throws
IOException Thrown in case of I/O error

public abstract void store (double newValue)

Throws
IOException

public abstract void update (double[] newValues)

Throws
IOException