perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r5971 - in trunk/perfsonar-java-rrd-ma-SQL_backend: . packaging/deb src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd
Subject: perfsonar development work
List archive
[pS-dev] [GEANT/SA2/ps-java-services] r5971 - in trunk/perfsonar-java-rrd-ma-SQL_backend: . packaging/deb src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd
Chronological Thread
- From:
- To:
- Subject: [pS-dev] [GEANT/SA2/ps-java-services] r5971 - in trunk/perfsonar-java-rrd-ma-SQL_backend: . packaging/deb src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd
- Date: Tue, 21 Aug 2012 11:48:10 +0100 (BST)
Author: nordunet.behrmann
Date: 2012-08-21 11:48:10 +0100 (Tue, 21 Aug 2012)
New Revision: 5971
Added:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/Rrd.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdException.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdLibrary.java
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/changelog
trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/control
trunk/perfsonar-java-rrd-ma-SQL_backend/pom.xml
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/DiscardsResponseGenerator.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ErrorsResponseGenerator.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/GenericResponseGenerator.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RRDDataStorageDAOImpl.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ResponseGenerator.java
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/UtilizationResponseGenerator.java
Log:
perfsonar-java-rrd-ma-SQL_backend: Replaced rrdjtool with JNA wrapper of
librrd
With this patch we no longer need to install the platform specific
JNI wrapper for librrd. JNA is used to wrap librrd directly. librrd
is still required.
Tested on Debian 6 32 bit and Debian 6 64 bit.
Modified: trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/changelog
===================================================================
--- trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/changelog
2012-08-21 10:48:09 UTC (rev 5970)
+++ trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/changelog
2012-08-21 10:48:10 UTC (rev 5971)
@@ -1,3 +1,9 @@
+perfsonar-java-rrd-ma (3.4-6) testing; urgency=low
+
+ * Replaced rrdjtool with JNA wrapper of librrd
+
+ -- Gerd Behrmann
<>
Tue, 21 Aug 2012 11:06:00 +0200
+
perfsonar-java-rrd-ma (3.4-5) testing; urgency=low
* Changed Hibernate config to not recreate schema on restart
Modified: trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/control
===================================================================
--- trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/control
2012-08-21 10:48:09 UTC (rev 5970)
+++ trunk/perfsonar-java-rrd-ma-SQL_backend/packaging/deb/control
2012-08-21 10:48:10 UTC (rev 5971)
@@ -1,12 +1,12 @@
Source: perfsonar-java-rrd-ma
Section: web
Priority: extra
-Maintainer: Piotr Pikusa
<>
+Maintainer: Gerd Behrmann
<>
Build-Depends: debhelper (>= 5), maven | maven2
Standards-Version: 3.7.2
Package: perfsonar-java-rrd-ma
Architecture: all
-Depends: ${shlibs:Depends}, ${misc:Depends}, mysql-server, java6-runtime,
tomcat6, rrdtool, rrdjtool-debian5|rrdjtool
+Depends: ${shlibs:Depends}, ${misc:Depends}, mysql-server, java6-runtime,
tomcat6, librrd4
Description: perfSONAR Round Robin Database
Modified: trunk/perfsonar-java-rrd-ma-SQL_backend/pom.xml
===================================================================
--- trunk/perfsonar-java-rrd-ma-SQL_backend/pom.xml 2012-08-21 10:48:09
UTC (rev 5970)
+++ trunk/perfsonar-java-rrd-ma-SQL_backend/pom.xml 2012-08-21 10:48:10
UTC (rev 5971)
@@ -252,9 +252,9 @@
<version>1.0.6</version>
</dependency>
<dependency>
- <groupId>rrdjtool</groupId>
- <artifactId>rrdjtool</artifactId>
- <version>1.0</version>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>3.4.0</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/DiscardsResponseGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/DiscardsResponseGenerator.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/DiscardsResponseGenerator.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -4,15 +4,13 @@
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Data;
-import rrd.Rrd.FetchData;
-
/**
* $Id: DiscardsResponseGenerator.java 4684 2010-03-18 17:00:33Z pikusa $
*/
public class DiscardsResponseGenerator implements ResponseGenerator {
- public Data getResponse(FetchData fetchData,
+ public Data getResponse(Rrd.FetchData fetchData,
int dsNum,
int rrdRows,
String valueUnits)
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ErrorsResponseGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ErrorsResponseGenerator.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ErrorsResponseGenerator.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -4,15 +4,13 @@
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Data;
-import rrd.Rrd.FetchData;
-
/**
* $Id: ErrorsResponseGenerator.java 4684 2010-03-18 17:01:33Z pikusa $
*/
public class ErrorsResponseGenerator implements ResponseGenerator {
- public Data getResponse(FetchData fetchData,
+ public Data getResponse(Rrd.FetchData fetchData,
int dsNum,
int rrdRows,
String valueUnits)
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/GenericResponseGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/GenericResponseGenerator.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/GenericResponseGenerator.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -4,15 +4,13 @@
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Data;
-import rrd.Rrd.FetchData;
-
/**
* $Id: GenericResponseGenerator.java 4684 2008-11-03 13:07:33Z roman $
*/
public class GenericResponseGenerator implements ResponseGenerator {
- public Data getResponse(FetchData fetchData,
+ public Data getResponse(Rrd.FetchData fetchData,
int dsNum,
int rrdRows,
String valueUnits)
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RRDDataStorageDAOImpl.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RRDDataStorageDAOImpl.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RRDDataStorageDAOImpl.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -12,11 +12,8 @@
import
org.perfsonar.service.measurementArchive.rrdType.storage.DataStorageDAO;
-import rrd.Rrd;
-import rrd.RrdException;
-import rrd.Rrd.FetchData;
+import static
org.perfsonar.service.measurementArchive.rrdType.storage.rrd.Rrd.FetchData;
-
/**
* $Id: RRDDataStorageDAOImpl.java 4684 2008-11-03 13:07:33Z roman $
*/
@@ -57,14 +54,6 @@
*/
public static final long DEFAULT_END = -1;
- // switches for RRDTool
- public static final String FETCH = "fetch";
- public static final String SPACE = " ";
- public static final String START = "--start";
- public static final String END = "--end";
- public static final String RESOLUTION = "--resolution";
-
-
// -------------------------------------------------------------
constructor
@@ -185,12 +174,12 @@
}
try {
- FetchData fdata = fetchRRDData(
- file,
- _consolidationFunction,
- _startTime,
- _endTime,
- _resolution);
+ FetchData fdata = Rrd.fetch(
+ file,
+ _consolidationFunction,
+ _startTime,
+ _endTime,
+ _resolution);
rrdData = getRRDColumn(fdata, dataSource, valueUnits, eventType);
@@ -218,78 +207,21 @@
rrdData.addChild(parameters);
- } catch (RrdException se) {
+ } catch (RrdException e) {
+ logger.error("Cannot retrieve data from RRD: {}",
e.getMessage());
+ throw new PerfSONARException("rrd_exception",
+ "Cannot retrieve data from RRD: " + e.getMessage(), e);
+ } catch (UnsatisfiedLinkError e) {
+ logger.error("Cannot retrieve data from RRD: {}",
e.getMessage());
+ throw new PerfSONARException("rrd_exception",
+ "Cannot retrieve data from RRD: " + e.getMessage(), e);
- logger.error("Cannot retrieve data from rrdjtool library: " +
se.getMessage());
- throw new PerfSONARException(
- "rrdjtool_exception",
- "Cannot retrieve data from rrdjtool library: "
- + se.getMessage(), se);
-
- } catch (UnsatisfiedLinkError ule) {
-
- logger.error("Cannot connect with rrdjtool native library: " +
ule.getMessage());
- throw new PerfSONARException(
- "rrdjtool_exception",
- "Cannot connect with rrdjtool native library: "
- + ule.getMessage(), ule);
-
}
return rrdData;
}
-
- private FetchData fetchRRDData(
- String filename,
- String consolidationFunction,
- long start,
- long end,
- int resolution)
- throws RrdException, UnsatisfiedLinkError {
-
- //Compose command string, e.g.:
- //"fetch test.rrd AVERAGE --start -86000 --end 1200"
- StringBuilder cmd = new StringBuilder(FETCH);
- cmd.append(SPACE);
-
- cmd.append(filename);
-
- cmd.append(SPACE);
-
- cmd.append(consolidationFunction);
- cmd.append(SPACE);
-
- cmd.append(START);
- cmd.append(SPACE);
- cmd.append(start);
-
- cmd.append(SPACE);
-
- cmd.append(END);
- cmd.append(SPACE);
- cmd.append(end);
-
- cmd.append(SPACE);
-
- cmd.append(RESOLUTION);
- cmd.append(SPACE);
- cmd.append(resolution);
-
- String command = cmd.toString();
-
- logger.info("RRDTool command: " + command);
-
- //Perform rrdtool command. If it fails, RrdException will be thrown.
- Rrd rrd = Rrd.getInstance();
- FetchData data = rrd.fetch(command);
-
- return data;
-
- }
-
-
private Data getRRDColumn(FetchData fetchData,
String dataSource,
String valueUnits,
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ResponseGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ResponseGenerator.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/ResponseGenerator.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -3,17 +3,13 @@
import org.perfsonar.base2.service.exceptions.PerfSONARException;
import org.perfsonar.base2.xml.nmwg.Data;
-import rrd.Rrd.FetchData;
-
-
-
/**
* $Id: ResponseGenerator.java 4684 2008-11-03 13:07:33Z roman $
*/
public interface ResponseGenerator {
- public Data getResponse(FetchData fetchData,
+ public Data getResponse(Rrd.FetchData fetchData,
int dsNum,
int rrdRows,
String valueUnits)
Added:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/Rrd.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/Rrd.java
(rev 0)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/Rrd.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -0,0 +1,177 @@
+package org.perfsonar.service.measurementArchive.rrdType.storage.rrd;
+
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.NativeLongByReference;
+import com.sun.jna.ptr.PointerByReference;
+
+/**
+ * Rrd wrapper around librrd.
+ *
+ * In contrast RrdLibrary, this class provides a more Java like API.
+ */
+public class Rrd
+{
+ public static final String FETCH = "fetch";
+ public static final String START = "--start";
+ public static final String END = "--end";
+ public static final String RESOLUTION = "--resolution";
+
+ private Rrd() {
+ }
+
+ public static FetchData fetch(
+ String filename,
+ String consolidationFunction,
+ long start,
+ long end,
+ int resolution) throws RrdException
+ {
+ return fetch(FETCH, filename, consolidationFunction,
+ START, String.valueOf(start), END, String.valueOf(end),
+ RESOLUTION, String.valueOf(resolution));
+ }
+
+ public static synchronized FetchData fetch(String... args)
+ throws RrdException
+ {
+ RrdLibrary rrd = RrdLibrary.INSTANCE;
+
+ RrdLibrary.time_t start = new RrdLibrary.time_t();
+ RrdLibrary.time_t end = new RrdLibrary.time_t();
+ NativeLongByReference step = new NativeLongByReference();
+ NativeLongByReference ds_cnt = new NativeLongByReference();
+ PointerByReference ds_namv = new PointerByReference();
+ PointerByReference data = new PointerByReference();
+
+ int err = rrd.rrd_fetch(args.length, args,
+ start, end, step, ds_cnt,
+ ds_namv, data);
+ if (err != 0) {
+ throw new RrdException(err, rrd.rrd_get_error());
+ }
+
+ int columns = ds_cnt.getValue().intValue();
+ int rows = (int) ((end.value - start.value) /
step.getValue().longValue() + 1);
+
+ try {
+ return new FetchData(
+ start.value, end.value,
+ step.getValue().longValue(),
+ ds_namv.getValue().getStringArray(0, columns),
+ data.getValue().getDoubleArray(0, columns * rows));
+ } finally {
+ for (Pointer p: ds_namv.getValue().getPointerArray(0, columns)) {
+ rrd.rrd_freemem(p);
+ }
+ rrd.rrd_freemem(ds_namv.getValue());
+ rrd.rrd_freemem(data.getValue());
+ }
+ }
+
+ /**
+ * Inner class to hold information returned by
{@link
RrdLibrary#rrd_fetch(String)}.
+ * Logically, this information represents one simple table. Here is the
example:<p>
+ *
+ * <pre>
+ * timestamp temperature1 temperature2
+ * ==========================================
+ * 1000000000 36.2 66.9
+ * 1000005000 39.3 69.2
+ * 1000010000 40.0 68.3
+ * .......... .... ....
+ * 1001000000 39.6 66.7
+ * ==========================================
+ * </pre>
+ *
+ * To read this data use the following methods:<p>
+ * <ul>
+ *
<li>{@link
#getRowCount() <b>getRowCount()</b>} to find the number of rows
+ *
<li>{@link
#getColCount() <b>getColCount()</b>} to find the number of <u>data</u>
columns
+ *
<li>{@link
#getColName(int) <b>getColName()</b>} to find the name of the i-th
<u>data</u> column (zero based)
+ *
<li>{@link
#getTimestamp(int) <b>getTimestamp(i)</b>} to find the timestamp of the i-th
row (zero based)
+ *
<li>{@link
#getValue(int,int) <b>getValue(i, j)</b>} to find the value of the j-th
<u>data</u> column on the i-th row
+ * </ul> <p>
+ *
+ * Example:<p>
+ * <pre>
+ * String cmd = "fetch temperatures.rrd AVERAGE --start 1000000000 --end
1000086400";
+ * rrd.Rrd.FetchData data = Rrd.getInstance().fetch(cmd);
+ * int rows = data.getRowCount(), cols = data.getColCount();
+ * for(int i = 0; i < rows; i++) {
+ * System.out.print(i + ": t=" + data.getTimestamp(i) + " ");
+ * for(int j = 0; j < cols; j++) {
+ * System.out.print(data.getColName(j) + "=" + data.getValue(i,
j) + " ");
+ * }
+ * System.out.println();
+ * }
+ * </pre>
+ *
+ * @author Sasa Markovic<br><a
href="mailto:"></a><p>
+ */
+ public static class FetchData
+ {
+ private final String[] dsNames;
+ private final long tStart, tEnd, step;
+ private final double[] values;
+
+ private final int rowCount;
+ private final int colCount;
+
+ private FetchData(long tStart, long tEnd, long step,
+ String[] dsNames, double[] values)
+ {
+ this.dsNames = dsNames;
+ this.tStart = tStart;
+ this.tEnd = tEnd;
+ this.step = step;
+ this.values = values;
+ rowCount = (int)((tEnd - tStart) / step + 1);
+ colCount = dsNames.length;
+ }
+
+ /**
+ * Returns timestamp of the given row.
+ * @param row Zero-based row number
+ * @return timestamp of the given row
+ */
+ public long getTimestamp(int row) {
+ return tStart + row * step;
+ }
+
+ /**
+ * Returns data source value from RRD database.
+ *
+ * @param row Zero-based row number.
+ * @param col Zero based data column number.
+ * @return value from the RRD database for the given row and column.
+ */
+ public double getValue(int row, int col) {
+ return values[row * colCount + col];
+ }
+
+ /**
+ * Returns column (data source) name for the given column number
+ * @param col Zero-based column number.
+ * @return Column (data source) name
+ */
+ public String getColName(int col) {
+ return dsNames[col];
+ }
+
+ /**
+ * Returns number of columns (data sources) generated by
{@link
Rrd#fetch(String) <b>Rrd.fetch()</b>} method.
+ * @return Number of columns
+ */
+ public int getColCount() {
+ return colCount;
+ }
+
+ /**
+ * Returns number of rows generated by
{@link
Rrd#fetch(String) <b>Rrd.fetch()</b>} method.
+ * @return Number of rows
+ */
+ public int getRowCount() {
+ return rowCount;
+ }
+ }
+}
Added:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdException.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdException.java
(rev 0)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdException.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -0,0 +1,23 @@
+package org.perfsonar.service.measurementArchive.rrdType.storage.rrd;
+
+/**
+ * Exception thrown when an RRD call fails.
+ */
+public class RrdException extends Exception
+{
+ private final int err;
+
+ public RrdException(int err, String message) {
+ super(message);
+ this.err = err;
+ }
+
+ public RrdException(int err, String message, Throwable cause) {
+ super(message, cause);
+ this.err = err;
+ }
+
+ public int getErrorCode() {
+ return err;
+ }
+}
Added:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdLibrary.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdLibrary.java
(rev 0)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/RrdLibrary.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -0,0 +1,39 @@
+package org.perfsonar.service.measurementArchive.rrdType.storage.rrd;
+
+import com.sun.jna.Library;
+import com.sun.jna.Native;
+import com.sun.jna.NativeLibrary;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+import com.sun.jna.ptr.NativeLongByReference;
+import com.sun.jna.ptr.PointerByReference;
+
+/**
+ * JNA Library wrapper around librrd.
+ */
+public interface RrdLibrary extends Library
+{
+ public static final String JNA_LIBRARY_NAME = "rrd";
+ public static final NativeLibrary JNA_NATIVE_LIB =
NativeLibrary.getInstance(RrdLibrary.JNA_LIBRARY_NAME);
+ public static final RrdLibrary INSTANCE =
(RrdLibrary)Native.loadLibrary(RrdLibrary.JNA_LIBRARY_NAME, RrdLibrary.class);
+
+ int rrd_fetch(int argc, String[] argv,
+ RrdLibrary.time_t start, RrdLibrary.time_t end,
+ NativeLongByReference step, NativeLongByReference ds_cnt,
+ PointerByReference ds_namv,
+ PointerByReference data);
+
+ String rrd_get_error();
+
+ void rrd_freemem(Pointer mem);
+
+ public static class time_t extends Structure {
+ public int value;
+
+ public time_t() {}
+
+ public time_t(int value) {
+ this.value = value;
+ }
+ }
+}
Modified:
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/UtilizationResponseGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/UtilizationResponseGenerator.java
2012-08-21 10:48:09 UTC (rev 5970)
+++
trunk/perfsonar-java-rrd-ma-SQL_backend/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd/UtilizationResponseGenerator.java
2012-08-21 10:48:10 UTC (rev 5971)
@@ -4,15 +4,13 @@
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Data;
-import rrd.Rrd.FetchData;
-
/**
* $Id: UtilizationResponseGenerator.java 4684 2008-11-03 13:07:33Z roman $
*/
public class UtilizationResponseGenerator implements ResponseGenerator {
- public Data getResponse(FetchData fetchData,
+ public Data getResponse(Rrd.FetchData fetchData,
int dsNum,
int rrdRows,
String valueUnits)
- [pS-dev] [GEANT/SA2/ps-java-services] r5971 - in trunk/perfsonar-java-rrd-ma-SQL_backend: . packaging/deb src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/rrd, svn-noreply, 08/21/2012
Archive powered by MHonArc 2.6.16.