Package org.rrd4j.core
Class RobinMatrix
java.lang.Object
org.rrd4j.core.RobinMatrix
- All Implemented Interfaces:
Robin
,RrdUpdater<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
ConstructorDescriptionRobinMatrix
(Archive parentArc, RrdDoubleMatrix<Archive> values, RrdInt<Archive> pointer, int column) -
Method Summary
Modifier and TypeMethodDescriptionvoid
bulkStore
(double newValue, int bulkCount) bulkStore.void
copyStateTo
(Robin robin) copyStateTo.dump()
dump.void
filterValues
(double minValue, double maxValue) Filters values stored in this archive based on the given boundary.Returns the Archive object to which this Robin object belongs.Required to implement RrdUpdater interface.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[]
Fetches all archived values.double[]
getValues
(int index, int count) getValues.void
setValue
(int index, double value) Sets the i-th value in the Robin archive.void
setValues
(double newValue) (Re)sets all values in this archive to the same value.void
setValues
(double... newValues) Updates archived values in bulk.void
store
(double newValue) store.void
update
(double[] newValues) update.
-
Constructor Details
-
RobinMatrix
RobinMatrix(Archive parentArc, RrdDoubleMatrix<Archive> values, RrdInt<Archive> pointer, int column) throws IOException - Throws:
IOException
-
-
Method Details
-
getValues
Fetches all archived values.- Specified by:
getValues
in interfaceRobin
- Returns:
- Array of double archive values, starting from the oldest one.
- Throws:
IOException
- Thrown in case of I/O specific error.
-
store
store.
- Specified by:
store
in interfaceRobin
- Parameters:
newValue
- a double.- Throws:
IOException
- if any.
-
bulkStore
bulkStore.
- Specified by:
bulkStore
in interfaceRobin
- Parameters:
newValue
- a double.bulkCount
- a int.- Throws:
IOException
- if any.
-
update
update.
- Specified by:
update
in interfaceRobin
- Parameters:
newValues
- an array of double.- Throws:
IOException
- if any.
-
setValues
Updates archived values in bulk. Updates archived values in bulk.- Specified by:
setValues
in interfaceRobin
- Parameters:
newValues
- Array of double values to be stored in the archive- Throws:
IOException
- Thrown in case of I/O error
-
setValues
(Re)sets all values in this archive to the same value. (Re)sets all values in this archive to the same value.- Specified by:
setValues
in interfaceRobin
- Parameters:
newValue
- New value- Throws:
IOException
- Thrown in case of I/O error
-
dump
dump.
- Specified by:
dump
in interfaceRobin
- Returns:
- a
String
object. - Throws:
IOException
- if any.
-
getValue
Returns the i-th value from the Robin archive. Returns the i-th value from the Robin archive.- Specified by:
getValue
in 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
Sets the i-th value in the Robin archive. Sets the i-th value in the Robin archive.- Specified by:
setValue
in 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
getValues.
- Specified by:
getValues
in interfaceRobin
- Parameters:
index
- a int.count
- a int.- Returns:
- an array of double.
- Throws:
IOException
- if any.
-
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
copyStateTo.
Copies object's internal state to another Robin object. Copies object's internal state to another Robin object.- Specified by:
copyStateTo
in interfaceRobin
- Specified by:
copyStateTo
in interfaceRrdUpdater<Robin>
- Parameters:
robin
- aRrdUpdater
object.- Throws:
IOException
- if any.
-
filterValues
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
. 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:
filterValues
in interfaceRobin
- Parameters:
minValue
- lower boundarymaxValue
- upper boundary- Throws:
IOException
- Thrown in case of I/O error
-
getRrdBackend
Returns the underlying storage (backend) object which actually performs all I/O operations.- Specified by:
getRrdBackend
in interfaceRobin
- Specified by:
getRrdBackend
in interfaceRrdUpdater<Robin>
- Returns:
- I/O backend object
-
getRrdAllocator
Required to implement RrdUpdater interface. You should never call this method directly.- Specified by:
getRrdAllocator
in interfaceRobin
- Specified by:
getRrdAllocator
in interfaceRrdUpdater<Robin>
- Returns:
- Allocator object
-