]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commitdiff
add RRD_READVALUES option to rrd_open
authorPeter Stamfest <peter@stamfest.at>
Sat, 15 Mar 2014 20:19:32 +0000 (21:19 +0100)
committerPeter Stamfest <peter@stamfest.at>
Sat, 15 Mar 2014 20:36:54 +0000 (21:36 +0100)
- in case of mmap just point to the correct position within the file

src/rrd_open.c
src/rrd_tool.h

index d60a57a7df85e25fd36a39d70030e423f32f28d6..65b4e1ba033fb4cd92beaeda27f55b4a47c00804 100644 (file)
@@ -407,8 +407,20 @@ rrd_file_t *rrd_open(
                       file_name, (long long) correct_len);
         goto out_nullify_head;
       }
+      if (rdwr & RRD_READVALUES) {
+         long d_offset = offset;
+         
+         __rrd_read(rrd->rrd_value, rrd_value_t,
+                    row_cnt * rrd->stat_head->ds_cnt);
+
+         rrd_file->header_len = d_offset;
+         rrd_file->pos = d_offset;
+      }
+      
     }
 
+    
+    
   out_done:
     return (rrd_file);
   out_nullify_head:
index e9c6804826abc9b690b126c4f895470c4198e041..d772d07f3237934a74f888a3196b3925e9497b92 100644 (file)
@@ -114,6 +114,7 @@ int rrd_fetch_fn_libdbi(const char *filename, enum cf_en cf_idx,
 #define RRD_READAHEAD   (1<<3)
 #define RRD_COPY        (1<<4)
 #define RRD_EXCL        (1<<5)
+#define RRD_READVALUES  (1<<6)
 
     enum cf_en cf_conv(
     const char *string);