unsigned long i, j, row;
rrd_value_t dv;
- row = ((end - start) / step + 1);
+ row = (end - start) / step;
r = PyTuple_New(3);
range_tup = PyTuple_New(3);
}
for (i = 0; i < ds_cnt; i++)
- free(ds_namv[i]);
- free(ds_namv); /* rrdtool don't use PyMem_Malloc :) */
- free(data);
+ rrd_freemem(ds_namv[i]);
+ rrd_freemem(ds_namv); /* rrdtool don't use PyMem_Malloc :) */
+ rrd_freemem(data);
}
destroy_args(&argv);
t = PyString_FromString(calcpr[i]);
PyList_Append(e, t);
Py_DECREF(t);
- free(calcpr[i]);
+ rrd_freemem(calcpr[i]);
}
- free(calcpr);
+ rrd_freemem(calcpr);
} else {
Py_INCREF(Py_None);
PyTuple_SET_ITEM(r, 2, Py_None);
}
static PyObject *PyDict_FromInfo(
- info_t *data)
+ rrd_info_t * data)
{
PyObject *r;
PyObject *r;
int argc;
char **argv;
- info_t *data;
+ rrd_info_t *data;
if (create_args("info", args, &argc, &argv) < 0)
return NULL;
return NULL;
}
r = PyDict_FromInfo(data);
- info_free(data);
+ rrd_info_free(data);
return r;
}
PyObject *r;
int argc;
char **argv;
- info_t *data;
+ rrd_info_t *data;
if (create_args("graphv", args, &argc, &argv) < 0)
return NULL;
return NULL;
}
r = PyDict_FromInfo(data);
- info_free(data);
+ rrd_info_free(data);
return r;
}
PyObject *r;
int argc;
char **argv;
- info_t *data;
+ rrd_info_t *data;
if (create_args("updatev", args, &argc, &argv) < 0)
return NULL;
return NULL;
}
r = PyDict_FromInfo(data);
- info_free(data);
+ rrd_info_free(data);
+ return r;
+}
+
+static char PyRRD_flush__doc__[] =
+ "flush(args..): flush RRD files from memory\n"
+ " flush [--daemon address] file [file ...]";
+
+static PyObject *PyRRD_flush(
+ PyObject UNUSED(*self),
+ PyObject * args)
+{
+ PyObject *r;
+ int argc;
+ char **argv;
+
+ if (create_args("flush", args, &argc, &argv) < 0)
+ return NULL;
+
+ if (rrd_cmd_flush(argc, argv) != 0) {
+ PyErr_SetString(ErrorObject, rrd_get_error());
+ rrd_clear_error();
+ r = NULL;
+ } else {
+ Py_INCREF(Py_None);
+ r = Py_None;
+ }
+
+ destroy_args(&argv);
return r;
}
meth("info", PyRRD_info, PyRRD_info__doc__),
meth("graphv", PyRRD_graphv, PyRRD_graphv__doc__),
meth("updatev", PyRRD_updatev, PyRRD_updatev__doc__),
+ meth("flush", PyRRD_flush, PyRRD_flush__doc__),
{NULL, NULL, 0, NULL}
};