]> git.basschouten.com Git - openhab-addons.git/commitdiff
[rrd4j] Avoid RrdDb.getRrdDef calls (#17449)
authorjoerg1985 <16140691+joerg1985@users.noreply.github.com>
Fri, 20 Sep 2024 12:11:55 +0000 (14:11 +0200)
committerGitHub <noreply@github.com>
Fri, 20 Sep 2024 12:11:55 +0000 (14:11 +0200)
Signed-off-by: Jörg Sautter <joerg.sautter@gmx.net>
bundles/org.openhab.persistence.rrd4j/src/main/java/org/openhab/persistence/rrd4j/internal/RRD4jPersistenceService.java

index 059e8cf6cc4ac35d2c1d7b82aedc7f758c666ad3..1524b44269f8cd47d415b0f1e539b200dad75b97 100644 (file)
@@ -374,8 +374,7 @@ public class RRD4jPersistenceService implements QueryablePersistenceService {
                     // only do it if there is not already a value
                     double lastValue = db.getLastDatasourceValue(DATASOURCE_STATE);
                     if (!Double.isNaN(lastValue) && lastValue != value) {
-                        Sample sample = db.createSample();
-                        sample.setTime(timestamp - 1);
+                        Sample sample = db.createSample(timestamp - 1);
                         sample.setValue(DATASOURCE_STATE, lastValue);
                         sample.update();
                         logger.debug("Stored '{}' as value '{}' with timestamp {} in rrd4j database (again)", name,
@@ -387,12 +386,11 @@ public class RRD4jPersistenceService implements QueryablePersistenceService {
             }
         }
         try {
-            Sample sample = db.createSample();
-            sample.setTime(timestamp);
+            Sample sample = db.createSample(timestamp);
             double storeValue = value;
             if (db.getDatasource(DATASOURCE_STATE).getType() == DsType.COUNTER) {
                 // counter values must be adjusted by stepsize
-                storeValue = value * db.getRrdDef().getStep();
+                storeValue = value * db.getHeader().getStep();
             }
             sample.setValue(DATASOURCE_STATE, storeValue);
             sample.update();
@@ -469,7 +467,7 @@ public class RRD4jPersistenceService implements QueryablePersistenceService {
                 if (filter.getOrdering() == Ordering.DESCENDING && filter.getPageSize() == 1
                         && filter.getPageNumber() == 0) {
                     if (filterEndDate == null || Duration.between(filterEndDate, ZonedDateTime.now()).getSeconds() < db
-                            .getRrdDef().getStep()) {
+                            .getHeader().getStep()) {
                         // we are asked only for the most recent value!
                         double lastValue = db.getLastDatasourceValue(DATASOURCE_STATE);
                         if (!Double.isNaN(lastValue)) {
@@ -628,7 +626,7 @@ public class RRD4jPersistenceService implements QueryablePersistenceService {
 
     public ConsolFun getConsolidationFunction(RrdDb db) {
         try {
-            return db.getRrdDef().getArcDefs()[0].getConsolFun();
+            return db.getArchive(0).getConsolFun();
         } catch (IOException e) {
             return ConsolFun.MAX;
         }