fix for #213 restore old behaviour of --lazy. Even in lazy mode all the data
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Tue, 7 Apr 2009 06:37:17 +0000 (06:37 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Tue, 7 Apr 2009 06:37:17 +0000 (06:37 +0000)
calculation elements are run. The main time saving comes from the fact that
the graph is not being drawn and the image does not have to be compressed.

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1773 a5681a0c-68f1-0310-ab6d-d61299d08faa

NEWS
doc/rrdgraph.pod
src/rrd_graph.c

diff --git a/NEWS b/NEWS
index 1f3b38b..4d8281d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,3 +23,4 @@ RRDgraph
 RRDflush
 --------
 * instruct the rrdcached to flush all its data
+
index b798ff9..72728e7 100644 (file)
@@ -301,9 +301,12 @@ stack of lines or areas.
 [B<-z>|B<--lazy>]
 
 Only generate the graph if the current graph is out of date or not existent.
-Note, that only the image size will be returned, if you run with lazy even
-when using graphv and even when using PRINT.
-
+Note, that all the calculations will happen regardless so that the output of
+PRINT and graphv will be complete regardless. Note that the behaviour of
+lazy in this regard has seen several changes over time. The only thing you
+can realy rely on before rrdtool 1.3.7 is that lazy will not generate the
+graph when it is already there and up to date, and also that it will output
+the size of the graph. 
 
 [B<--daemon> I<address>]
 
index 549e08c..a0de36e 100644 (file)
@@ -3200,14 +3200,6 @@ int graph_paint(
 
 //    PangoFontMap *font_map = pango_cairo_font_map_get_default();
 
-    /* if we want and can be lazy ... quit now */
-    if (lazy) {
-        info.u_cnt = im->ximg;
-        grinfo_push(im, sprintf_alloc("image_width"), RD_I_CNT, info);
-        info.u_cnt = im->yimg;
-        grinfo_push(im, sprintf_alloc("image_height"), RD_I_CNT, info);
-        return 0;
-    }
     /* pull the data from the rrd files ... */
     if (data_fetch(im) == -1)
         return -1;
@@ -3223,7 +3215,8 @@ int graph_paint(
     if (i < 0)
         return -1;
 
-    if ((i == 0) || lazy)
+    /* if we want and can be lazy ... quit now */
+    if (i == 0)
         return 0;
 
 /**************************************************************
@@ -3250,6 +3243,10 @@ int graph_paint(
     info.u_cnt = im->end;
     grinfo_push(im, sprintf_alloc("graph_end"), RD_I_CNT, info);
 
+    /* if we want and can be lazy ... quit now */
+    if (lazy)
+        return 0;
+
     /* get actual drawing data and find min and max values */
     if (data_proc(im) == -1)
         return -1;
@@ -3267,6 +3264,7 @@ int graph_paint(
     info.u_val = im->maxval;
     grinfo_push(im, sprintf_alloc("value_max"), RD_I_VAL, info);
 
+
     if (!calc_horizontal_grid(im))
         return -1;
     /* reset precalc */