public class Robin extends Object implements RrdUpdater
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.
Constructor and Description |
---|
Robin(Archive parentArc,
int rows,
boolean shouldInitialize) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
bulkStore(double newValue,
int bulkCount) |
void |
copyStateTo(RrdUpdater other)
Copies object's internal state to another Robin object.
|
(package private) String |
dump() |
void |
filterValues(double minValue,
double maxValue)
Filters values stored in this archive based on the given boundary.
|
Archive |
getParent()
Returns the Archive object to which this Robin object belongs.
|
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.
|
(package private) double[] |
getValues(int index,
int count) |
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.
|
(package private) void |
store(double newValue) |
(package private) void |
update(double[] newValues) |
Robin(Archive parentArc, int rows, boolean shouldInitialize) throws IOException
IOException
public double[] getValues() throws IOException
IOException
- Thrown in case of I/O specific error.void store(double newValue) throws IOException
IOException
void bulkStore(double newValue, int bulkCount) throws IOException
IOException
void update(double[] newValues) throws IOException
IOException
public void setValues(double[] newValues) throws IOException, RrdException
newValues
- Array of double values to be stored in the archiveIOException
- Thrown in case of I/O errorRrdException
- Thrown if the length of the input array is different from the length of
this archivepublic void setValues(double newValue) throws IOException
newValue
- New valueIOException
- Thrown in case of I/O errorString dump() throws IOException
IOException
public double getValue(int index) throws IOException
index
- Value indexIOException
- Thrown in case of I/O specific error.public void setValue(int index, double value) throws IOException
index
- index in the archive (the oldest value has zero index)value
- value to be storedIOException
- Thrown in case of I/O specific error.double[] getValues(int index, int count) throws IOException
IOException
public Archive getParent()
public int getSize()
public void copyStateTo(RrdUpdater other) throws IOException, RrdException
copyStateTo
in interface RrdUpdater
other
- New Robin object to copy state toIOException
- Thrown in case of I/O errorRrdException
- Thrown if supplied argument is not a Robin objectpublic void filterValues(double minValue, double maxValue) throws IOException
[minValue, maxValue]
interval (inclusive)
will be silently replaced with NaN
.minValue
- lower boundarymaxValue
- upper boundaryIOException
- Thrown in case of I/O errorpublic RrdBackend getRrdBackend()
getRrdBackend
in interface RrdUpdater
public RrdAllocator getRrdAllocator()
getRrdAllocator
in interface RrdUpdater