projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename ntmake.pl to ntmake.PL so that it does not get installed
[rrdtool.git]
/
bindings
/
ruby
/
main.c
diff --git
a/bindings/ruby/main.c
b/bindings/ruby/main.c
index
e5a3e80
..
551203b
100644
(file)
--- a/
bindings/ruby/main.c
+++ b/
bindings/ruby/main.c
@@
-4,6
+4,7
@@
#include <unistd.h>
#include <ruby.h>
#include <unistd.h>
#include <ruby.h>
+#include <math.h>
#include "../../src/rrd_tool.h"
typedef struct string_arr_t {
#include "../../src/rrd_tool.h"
typedef struct string_arr_t {
@@
-19,6
+20,11
@@
typedef int (
int argc,
char **argv);
int argc,
char **argv);
+typedef rrd_info_t *(
+ *RRDINFOFUNC) (
+ int argc,
+ char **argv);
+
#define RRD_CHECK_ERROR \
if (rrd_test_error()) \
rb_raise(rb_eRRDError, rrd_get_error()); \
#define RRD_CHECK_ERROR \
if (rrd_test_error()) \
rb_raise(rb_eRRDError, rrd_get_error()); \
@@
-142,11
+148,11
@@
VALUE rb_rrd_update(
/* Calls Returning Data via the Info Interface */
VALUE rb_rrd_infocall(
/* Calls Returning Data via the Info Interface */
VALUE rb_rrd_infocall(
- RRDFUNC func,
+ RRD
INFO
FUNC func,
VALUE args)
{
string_arr a;
VALUE args)
{
string_arr a;
-
info_t
*p, *data;
+
rrd_info_t
*p, *data;
VALUE result;
a = string_arr_new(args);
VALUE result;
a = string_arr_new(args);
@@
-155,6
+161,7
@@
VALUE rb_rrd_infocall(
RRD_CHECK_ERROR result = rb_hash_new();
RRD_CHECK_ERROR result = rb_hash_new();
+ p = data;
while (data) {
VALUE key = rb_str_new2(data->key);
while (data) {
VALUE key = rb_str_new2(data->key);
@@
-171,17
+178,19
@@
VALUE rb_rrd_infocall(
break;
case RD_I_STR:
rb_hash_aset(result, key, rb_str_new2(data->value.u_str));
break;
case RD_I_STR:
rb_hash_aset(result, key, rb_str_new2(data->value.u_str));
- free(data->value.u_str);
+ break;
+ case RD_I_INT:
+ rb_hash_aset(result, key, INT2FIX(data->value.u_int));
break;
case RD_I_BLO:
break;
case RD_I_BLO:
- rb_hash_aset(result, key, rb_str_new(data->value.u_blo.ptr,data->value.u_blo.size));
- free(data->value.u_blo.ptr);
+ rb_hash_aset(result, key,
+ rb_str_new((char *)data->value.u_blo.ptr,
+ data->value.u_blo.size));
break;
}
break;
}
- p = data;
data = data->next;
data = data->next;
- free(p);
}
}
+ rrd_info_free(p);
return result;
}
return result;
}
@@
-189,21
+198,21
@@
VALUE rb_rrd_info(
VALUE self,
VALUE args)
{
VALUE self,
VALUE args)
{
- return rrd_infocall(rrd_info, args);
+ return r
b_r
rd_infocall(rrd_info, args);
}
VALUE rb_rrd_updatev(
VALUE self,
VALUE args)
{
}
VALUE rb_rrd_updatev(
VALUE self,
VALUE args)
{
- return rrd_infocall(rrd_update_v, args);
+ return r
b_r
rd_infocall(rrd_update_v, args);
}
VALUE rb_rrd_graphv(
VALUE self,
VALUE args)
{
}
VALUE rb_rrd_graphv(
VALUE self,
VALUE args)
{
- return rrd_infocall(rrd_graph_v, args);
+ return r
b_r
rd_infocall(rrd_graph_v, args);
}
}
@@
-230,9
+239,9
@@
VALUE rb_rrd_fetch(
for (i = 0; i < ds_cnt; i++) {
rb_ary_push(names, rb_str_new2(raw_names[i]));
for (i = 0; i < ds_cnt; i++) {
rb_ary_push(names, rb_str_new2(raw_names[i]));
-
free
(raw_names[i]);
+
rrd_freemem
(raw_names[i]);
}
}
-
free
(raw_names);
+
rrd_freemem
(raw_names);
k = 0;
data = rb_ary_new();
k = 0;
data = rb_ary_new();
@@
-245,7
+254,7
@@
VALUE rb_rrd_fetch(
}
rb_ary_push(data, line);
}
}
rb_ary_push(data, line);
}
-
free
(raw_data);
+
rrd_freemem
(raw_data);
result = rb_ary_new2(5);
rb_ary_store(result, 0, INT2NUM(start));
result = rb_ary_new2(5);
rb_ary_store(result, 0, INT2NUM(start));
@@
-277,9
+286,9
@@
VALUE rb_rrd_graph(
p = calcpr;
for (p = calcpr; p && *p; p++) {
rb_ary_push(print_results, rb_str_new2(*p));
p = calcpr;
for (p = calcpr; p && *p; p++) {
rb_ary_push(print_results, rb_str_new2(*p));
-
free
(*p);
+
rrd_freemem
(*p);
}
}
-
free
(calcpr);
+
rrd_freemem
(calcpr);
rb_ary_store(result, 0, print_results);
rb_ary_store(result, 1, INT2FIX(xsize));
rb_ary_store(result, 2, INT2FIX(ysize));
rb_ary_store(result, 0, print_results);
rb_ary_store(result, 1, INT2FIX(xsize));
rb_ary_store(result, 2, INT2FIX(ysize));
@@
-300,7
+309,7
@@
VALUE rb_rrd_last(
string_arr_delete(a);
RRD_CHECK_ERROR
string_arr_delete(a);
RRD_CHECK_ERROR
- return rb_funcall(rb_cTime, rb_intern("at"), 1,
INT2FIX
(last));
+ return rb_funcall(rb_cTime, rb_intern("at"), 1,
UINT2NUM
(last));
}
void Init_RRD(
}
void Init_RRD(