<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8"> <TITLE>rrdFile module</TITLE> <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)"> <META NAME="CREATED" CONTENT="20090209;18445600"> <META NAME="CHANGED" CONTENT="20090209;19214700"> <META NAME="Info 1" CONTENT=""> <META NAME="Info 2" CONTENT=""> <META NAME="Info 3" CONTENT=""> <META NAME="Info 4" CONTENT=""> <STYLE TYPE="text/css"> <!-- @page { margin: 0.79in } TD P { margin-bottom: 0.08in } H1 { margin-bottom: 0.08in } H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt } P { margin-bottom: 0.08in } H2.heading-2-western { font-family: "Liberation Serif", serif; font-size: 16pt } TH P { margin-bottom: 0.08in } A:link { so-language: zxx } --> </STYLE> </HEAD> <BODY LANG="en-US" DIR="LTR"> <H1 CLASS="western">rrdFile module</H1> <TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2> <TR> <TD> <HR> <P>The <A HREF="../../src/lib/rrdFile.js">rrdFile Javascript module</A> implements a set of classes that can be used to extract information from <A HREF="http://oss.oetiker.ch/rrdtool/">RRD archives</A> loaded as binary file objects.</P> <HR> </TD> </TR> </TABLE> <H2 CLASS="heading-2-western">Overview</H2> <P>The main class in this module is <A HREF="#RRDFile">RRDFile</A>. It interprets the given the binary file object and provides methods to decode the <A HREF="http://oss.oetiker.ch/rrdtool/">RRD</A> information.</P> <H2 CLASS="heading-2-western"><A NAME="RRDFile"></A>Class RRDFile</H2> <P>This is the main class of the package. It is also the only class the user ever needs to explicitly instantiate.</P> <P>The RRDFile constructor has a single argument:</P> <UL> <LI><P>A binary file object.</P> <P>Any object implementing an interface providing the following methods can be used:</P> <UL> <LI><P>getByteAt(idx) - Return a 8 bit unsigned integer at offset idx.</P> <LI><P>getLongAt(idx) - Return a 32 bit unsigned integer at offset idx.</P> <LI><P>getDoubleAt(idx) - Return a double float at offset idx.</P> <LI><P>getFastDoubleAt(idx) - Similar to getDoubleAt but with less precision.</P> <LI><P>getCStringAt(idx,maxsize) - Return a string of at most maxsize characters that was 0-terminated in the source.</P> </UL> <P>The <A HREF="binaryXHR_js.html">binaryXHR module</A>, provided with this package, provides the class <A HREF="binaryXHR_js.html#BinaryFile">BinaryFile</A> that implements this interface.</P> </UL> <P>If the binary file is not a proper <A HREF="http://oss.oetiker.ch/rrdtool/">RRD file</A>, an <A HREF="#InvalidRRD">InvalidRRD</A> exception will be thrown.</P> <P>This class also implements the following methods:</P> <DIV ALIGN=RIGHT> <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3> <COL WIDTH=51*> <COL WIDTH=205*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P ALIGN=LEFT>Method</P> </TH> <TH WIDTH=80%> <P ALIGN=LEFT>Description</P> </TH> </TR> </THEAD> <TBODY> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getMinStep()</P> </TD> <TD WIDTH=80%> <P>Return the base <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#I__step__s_step__default__300_seconds_">interval in seconds</A> that was used to feed the RRD file.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getLastUpdate()</P> </TD> <TD WIDTH=80%> <P>Return the timestamp of the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdlastupdate.en.html">last update</A>.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getNrDSs()</P> </TD> <TD WIDTH=80%> <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data Sources</A> present in the RRD file. </P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getDSNames()</P> </TD> <TD WIDTH=80%> <P>Return the names of the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data Sources</A> present in the RRD file. </P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getDS(id)</P> </TD> <TD WIDTH=80%> <P>If id is a number, return an object of type <A HREF="#RRDDS">RRDDS</A> holding the information about the id-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data Source</A>.</P> <P>If id is a string, return an object of type <A HREF="#RRDDS">RRDDS</A> holding the information about the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data Source</A> with the requested name.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getNrRRAs()</P> </TD> <TD WIDTH=80%> <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round Robin Archives</A> present in the RRD file.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getRRAInfo(n)</P> </TD> <TD WIDTH=80%> <P>Return an object of type <A HREF="#RRDRRAInfo">RRDRRAInfo</A> holding the information about the n-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round Robin Archive</A>.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getRRA(n)</P> </TD> <TD WIDTH=80%> <P>Return an object of type <A HREF="#RRDRRA">RRDRRA</A> that can be used to access the values stored in the n-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round Robin Archive</A>.</P> </TD> </TR> </TBODY> </TABLE> </DIV> <H2 CLASS="heading-2-western"><A NAME="RRDDS"></A>Class RRDDS</H2> <P>This class implements the methods needed to access the information about a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">RRD Data Source</A>.</P> <DIV ALIGN=RIGHT> <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3> <COL WIDTH=51*> <COL WIDTH=205*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P ALIGN=LEFT>Method</P> </TH> <TH WIDTH=80%> <P ALIGN=LEFT>Description</P> </TH> </TR> </THEAD> <TBODY> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getIdx()</P> </TD> <TD WIDTH=80%> <P>Return which DS it is in the RRD file.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getName()</P> </TD> <TD WIDTH=80%> <P>Return the name of the data source.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getType()</P> </TD> <TD WIDTH=80%> <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">type</A> of the data source.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getMin()</P> </TD> <TD ROWSPAN=2 WIDTH=80%> <P>Return the minimum and maximum value the data source can contain. </P> <P>If either is not defined, <I>undefined</I> is returned.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getMax()</P> </TD> </TR> </TBODY> </TABLE> </DIV> <H2 CLASS="heading-2-western"><A NAME="RRDRRAInfo"></A>Class RRDRRAInfo</H2> <P>This class implements the methods needed to access the information about a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round Robin Archive</A>.</P> <DIV ALIGN=RIGHT> <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3> <COL WIDTH=52*> <COL WIDTH=204*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P ALIGN=LEFT>Method</P> </TH> <TH WIDTH=80%> <P ALIGN=LEFT>Description</P> </TH> </TR> </THEAD> <TBODY> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getIdx()</P> </TD> <TD WIDTH=80%> <P>Return which RRA it is in the RRD file.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getNrRows()</P> </TD> <TD WIDTH=80%> <P>Return the number of rows in the RRA.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getStep()</P> </TD> <TD WIDTH=80%> <P>Return the number of seconds between rows.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getCFName()</P> </TD> <TD WIDTH=80%> <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Consolidation Function</A> used by the RRA.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getPdpPerRow()</P> </TD> <TD WIDTH=80%> <P>Return number of slots used for consolidation.</P> </TD> </TR> </TBODY> </TABLE> </DIV> <H2 CLASS="heading-2-western"><A NAME="RRDRRA"></A>Class RRDRRA</H2> <P>This class implements the methods needed to access the content of a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round Robin Archive</A>.</P> <DIV ALIGN=RIGHT> <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3> <COL WIDTH=52*> <COL WIDTH=204*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P ALIGN=LEFT>Method</P> </TH> <TH WIDTH=80%> <P ALIGN=LEFT>Description</P> </TH> </TR> </THEAD> <TBODY> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getIdx()</P> </TD> <TD WIDTH=80%> <P>Return which RRA it is in the RRD file.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getCFName()</P> </TD> <TD WIDTH=80%> <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Consolidation Function</A> used by the RRA.</P> <P>The current implementation only supports AVERAGE,MAXIMUM,MINIMUM and LAST.<BR>Access to elements of any other CF is currently undefined. </P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getNrRows()</P> </TD> <TD WIDTH=80%> <P>Return the number of rows in the RRA.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getNrDSs()</P> </TD> <TD WIDTH=80%> <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data Sources</A> present in the RRA.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getStep()</P> </TD> <TD WIDTH=80%> <P>Return the number of seconds between rows.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getEl(r,d)</P> </TD> <TD WIDTH=80%> <P>Return the value for the d-th DS in the r-th row.</P> </TD> </TR> <TR VALIGN=TOP> <TD WIDTH=20%> <P>getElFast(row,ds)</P> </TD> <TD WIDTH=80%> <P>Return the low-precision value for the d-th DS in the r-th row.</P> </TD> </TR> </TBODY> </TABLE> </DIV> <H2 CLASS="heading-2-western"><A NAME="InvalidRRD"></A>Exception class InvalidRRD</H2> <P>This is a helper exception class that can be thrown while interpreting the binary file object.</P> <P><BR><BR> </P> <TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2> <TR> <TD> <HR> <P>This module is part of the <A HREF="index.html">javascriptRRD package</A> hosted at <A HREF="http://javascriptrrd.sourceforge.net/">http://javascriptrrd.sourceforge.net</A>. <BR>It is licensed under the <A HREF="http://www.opensource.org/licenses/mit-license.php">MIT license</A>. </P> <HR> </TD> </TR> </TABLE> </BODY> </HTML>