X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=bindings%2Fperl-shared%2FRRDs.xs;h=f7e5360fe536b8a9bbe4faa1a316d1b1f260285e;hb=705c8b1988cda51a6d8d34215e3fbf3c12a9aa2a;hp=afb55f08bc4711adbc6824ded14e7d6c16b2cee6;hpb=d1e55cdc27a837fb0f4c54ed019e3946e7a6e08b;p=rrdtool.git diff --git a/bindings/perl-shared/RRDs.xs b/bindings/perl-shared/RRDs.xs index afb55f0..f7e5360 100644 --- a/bindings/perl-shared/RRDs.xs +++ b/bindings/perl-shared/RRDs.xs @@ -29,7 +29,6 @@ extern "C" { argv[i+1] = (char *) malloc((strlen(handle)+1)*sizeof(char)); \ strcpy(argv[i+1],handle); \ } \ - optind=0; opterr=0; \ rrd_clear_error();\ RETVAL=name(items+1,argv); \ for (i=0; i < items; i++) {\ @@ -53,7 +52,6 @@ extern "C" { argv[i+1] = (char *) malloc((strlen(handle)+1)*sizeof(char)); \ strcpy(argv[i+1],handle); \ } \ - optind=0; opterr=0; \ rrd_clear_error(); \ data=name(items+1, argv); \ for (i=0; i < items; i++) { \ @@ -132,6 +130,17 @@ rrd_last(...) OUTPUT: RETVAL +int +rrd_first(...) + PROTOTYPE: @ + PREINIT: + int i; + char **argv; + CODE: + rrdcode(rrd_first); + OUTPUT: + RETVAL + int rrd_create(...) @@ -176,8 +185,9 @@ void rrd_graph(...) PROTOTYPE: @ PREINIT: - char **calcpr; + char **calcpr=NULL; int i,xsize,ysize; + double ymin,ymax; char **argv; AV *retar; PPCODE: @@ -191,9 +201,8 @@ rrd_graph(...) argv[i+1] = (char *) malloc((strlen(handle)+1)*sizeof(char)); strcpy(argv[i+1],handle); } - optind=0; opterr=0; rrd_clear_error(); - rrd_graph(items+1,argv,&calcpr,&xsize,&ysize,NULL); + rrd_graph(items+1,argv,&calcpr,&xsize,&ysize,NULL,&ymin,&ymax); for (i=0; i < items; i++) { free(argv[i+1]); } @@ -239,7 +248,6 @@ rrd_fetch(...) argv[i+1] = (char *) malloc((strlen(handle)+1)*sizeof(char)); strcpy(argv[i+1],handle); } - optind=0; opterr=0; rrd_clear_error(); rrd_fetch(items+1,argv,&start,&end,&step,&ds_cnt,&ds_namv,&data); for (i=0; i < items; i++) { @@ -272,6 +280,30 @@ rrd_fetch(...) PUSHs(sv_2mortal(newRV_noinc((SV*)names))); PUSHs(sv_2mortal(newRV_noinc((SV*)retar))); +void +rrd_times(start, end) + char *start + char *end + PREINIT: + struct rrd_time_value start_tv, end_tv; + char *parsetime_error = NULL; + time_t start_tmp, end_tmp; + PPCODE: + rrd_clear_error(); + if( (parsetime_error = parsetime( start, &start_tv))) { + rrd_set_error( "start time: %s", parsetime_error); + XSRETURN_UNDEF; + } + if( (parsetime_error = parsetime( end, &end_tv))) { + rrd_set_error( "end time: %s", parsetime_error); + XSRETURN_UNDEF; + } + if( proc_start_end( &start_tv, &end_tv, &start_tmp, &end_tmp) == -1) { + XSRETURN_UNDEF; + } + EXTEND(sp,2); + PUSHs(sv_2mortal(newSVuv(start_tmp))); + PUSHs(sv_2mortal(newSVuv(end_tmp))); int rrd_xport(...) @@ -294,7 +326,6 @@ rrd_xport(...) argv[i+1] = (char *) malloc((strlen(handle)+1)*sizeof(char)); strcpy(argv[i+1],handle); } - optind=0; opterr=0; rrd_clear_error(); rrd_xport(items+1,argv,&xsize,&start,&end,&step,&col_cnt,&legend_v,&data); for (i=0; i < items; i++) { @@ -358,3 +389,27 @@ rrd_updatev(...) OUTPUT: RETVAL +int +rrd_dump(...) + PROTOTYPE: @ + PREINIT: + int i; + char **argv; + CODE: + rrdcode(rrd_dump); + RETVAL = 1; + OUTPUT: + RETVAL + +int +rrd_restore(...) + PROTOTYPE: @ + PREINIT: + int i; + char **argv; + CODE: + rrdcode(rrd_restore); + RETVAL = 1; + OUTPUT: + RETVAL +