Package org.rrd4j.core
Class RobinMatrix
- java.lang.Object
-
- org.rrd4j.core.RobinMatrix
-
- All Implemented Interfaces:
Robin,RrdUpdater<Robin>
class RobinMatrix extends Object implements Robin
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.
- Author:
- Fabrice Bacchella
-
-
Constructor Summary
Constructors Constructor Description RobinMatrix(Archive parentArc, RrdDoubleMatrix<Archive> values, RrdInt<Archive> pointer, int column)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbulkStore(double newValue, int bulkCount)bulkStore.voidcopyStateTo(Robin robin)copyStateTo.Stringdump()dump.voidfilterValues(double minValue, double maxValue)Filters values stored in this archive based on the given boundary.ArchivegetParent()Returns the Archive object to which this Robin object belongs.RrdAllocatorgetRrdAllocator()Required to implement RrdUpdater interface.RrdBackendgetRrdBackend()Returns the underlying storage (backend) object which actually performs all I/O operations.intgetSize()Returns the size of the underlying array of archived values.doublegetValue(int index)Returns the i-th value from the Robin archive.double[]getValues()Fetches all archived values.double[]getValues(int index, int count)getValues.voidsetValue(int index, double value)Sets the i-th value in the Robin archive.voidsetValues(double newValue)(Re)sets all values in this archive to the same value.voidsetValues(double... newValues)Updates archived values in bulk.voidstore(double newValue)store.voidupdate(double[] newValues)update.
-
-
-
Constructor Detail
-
RobinMatrix
RobinMatrix(Archive parentArc, RrdDoubleMatrix<Archive> values, RrdInt<Archive> pointer, int column) throws IOException
- Throws:
IOException
-
-
Method Detail
-
getValues
public double[] getValues() throws IOExceptionFetches all archived values.- Specified by:
getValuesin interfaceRobin- Returns:
- Array of double archive values, starting from the oldest one.
- Throws:
IOException- Thrown in case of I/O specific error.
-
store
public void store(double newValue) throws IOExceptionstore.
- Specified by:
storein interfaceRobin- Parameters:
newValue- a double.- Throws:
IOException- if any.
-
bulkStore
public void bulkStore(double newValue, int bulkCount) throws IOExceptionbulkStore.
- Specified by:
bulkStorein interfaceRobin- Parameters:
newValue- a double.bulkCount- a int.- Throws:
IOException- if any.
-
update
public void update(double[] newValues) throws IOExceptionupdate.
- Specified by:
updatein interfaceRobin- Parameters:
newValues- an array of double.- Throws:
IOException- if any.
-
setValues
public void setValues(double... newValues) throws IOExceptionUpdates archived values in bulk. Updates archived values in bulk.- Specified by:
setValuesin interfaceRobin- Parameters:
newValues- Array of double values to be stored in the archive- Throws:
IOException- Thrown in case of I/O error
-
setValues
public void setValues(double newValue) throws IOException(Re)sets all values in this archive to the same value. (Re)sets all values in this archive to the same value.- Specified by:
setValuesin interfaceRobin- Parameters:
newValue- New value- Throws:
IOException- Thrown in case of I/O error
-
dump
public String dump() throws IOException
dump.
- Specified by:
dumpin interfaceRobin- Returns:
- a
Stringobject. - Throws:
IOException- if any.
-
getValue
public double getValue(int index) throws IOExceptionReturns the i-th value from the Robin archive. Returns the i-th value from the Robin archive.- Specified by:
getValuein interfaceRobin- 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.
-
setValue
public void setValue(int index, double value) throws IOExceptionSets the i-th value in the Robin archive. Sets the i-th value in the Robin archive.- Specified by:
setValuein interfaceRobin- 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.
-
getValues
public double[] getValues(int index, int count) throws IOExceptiongetValues.
- Specified by:
getValuesin interfaceRobin- Parameters:
index- a int.count- a int.- Returns:
- an array of double.
- Throws:
IOException- if any.
-
getParent
public Archive getParent()
Returns the Archive object to which this Robin object belongs.
-
getSize
public int getSize()
Returns the size of the underlying array of archived values.
-
copyStateTo
public void copyStateTo(Robin robin) throws IOException
copyStateTo.
Copies object's internal state to another Robin object. Copies object's internal state to another Robin object.- Specified by:
copyStateToin interfaceRobin- Specified by:
copyStateToin interfaceRrdUpdater<Robin>- Parameters:
robin- aRrdUpdaterobject.- Throws:
IOException- if any.
-
filterValues
public void filterValues(double minValue, double maxValue) throws IOExceptionFilters 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 withNaN. 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 withNaN.- Specified by:
filterValuesin interfaceRobin- Parameters:
minValue- lower boundarymaxValue- upper boundary- Throws:
IOException- Thrown in case of I/O error
-
getRrdBackend
public RrdBackend getRrdBackend()
Returns the underlying storage (backend) object which actually performs all I/O operations.- Specified by:
getRrdBackendin interfaceRobin- Specified by:
getRrdBackendin interfaceRrdUpdater<Robin>- Returns:
- I/O backend object
-
getRrdAllocator
public RrdAllocator getRrdAllocator()
Required to implement RrdUpdater interface. You should never call this method directly.- Specified by:
getRrdAllocatorin interfaceRobin- Specified by:
getRrdAllocatorin interfaceRrdUpdater<Robin>- Returns:
- Allocator object
-
-