709
719
for (i = 2; i < argc; i++) {
710
720
if (strcmp("--enumds", argv[i]) == 0)
722
if (strcmp("--json", argv[i]) == 0)
715
727
(argc - 1, &argv[1], &xxsize, &start, &end, &step, &col_cnt,
716
&legend_v, &data) != -1) {
717
char *old_locale = setlocale(LC_NUMERIC, "C");
728
&legend_v, &data) == 0) {
729
char *old_locale = setlocale(LC_NUMERIC,NULL);
730
setlocale(LC_NUMERIC, "C");
718
731
row_cnt = (end - start) / step;
720
printf("<?xml version=\"1.0\" encoding=\"%s\"?>\n\n",
722
printf("<%s>\n", ROOT_TAG);
723
printf(" <%s>\n", META_TAG);
724
printf(" <%s>%lu</%s>\n", META_START_TAG,
725
(unsigned long) start + step, META_START_TAG);
726
printf(" <%s>%lu</%s>\n", META_STEP_TAG, step, META_STEP_TAG);
727
printf(" <%s>%lu</%s>\n", META_END_TAG, (unsigned long) end,
729
printf(" <%s>%lu</%s>\n", META_ROWS_TAG, row_cnt,
731
printf(" <%s>%lu</%s>\n", META_COLS_TAG, col_cnt,
733
printf(" <%s>\n", LEGEND_TAG);
734
printf("<?xml version=\"1.0\" encoding=\"%s\"?>\n\n",
736
printf("<%s>\n", ROOT_TAG);
737
printf(" <%s>\n", META_TAG);
740
printf("{ about: 'RRDtool xport JSON output',\n meta: {\n");
744
#define pXJV(indent,fmt,tag,value) \
746
printf(indent "%s: " fmt ",\n",tag,value); \
748
printf(indent "<%s>" fmt "</%s>\n",tag,value,tag); \
751
pXJV(" ","%lld",META_START_TAG,(long long int) start + step);
752
pXJV(" ","%lu", META_STEP_TAG, step);
753
pXJV(" ","%lld",META_END_TAG,(long long int) start + step);
755
pXJV(" ","%lu", META_ROWS_TAG, row_cnt);
756
pXJV(" ","%lu", META_COLS_TAG, col_cnt);
760
printf(" %s: [\n", LEGEND_TAG);
763
printf(" <%s>\n", LEGEND_TAG);
734
765
for (j = 0; j < col_cnt; j++) {
735
766
char *entry = NULL;
737
767
entry = legend_v[j];
738
printf(" <%s>%s</%s>\n", LEGEND_ENTRY_TAG, entry,
769
printf(" '%s'", entry);
776
printf(" <%s>%s</%s>\n", LEGEND_ENTRY_TAG, entry,
739
777
LEGEND_ENTRY_TAG);
743
printf(" </%s>\n", LEGEND_TAG);
744
printf(" </%s>\n", META_TAG);
745
printf(" <%s>\n", DATA_TAG);
786
printf(" </%s>\n", LEGEND_TAG);
787
printf(" </%s>\n", META_TAG);
791
printf(" %s: [\n",DATA_TAG);
793
printf(" <%s>\n", DATA_TAG);
746
795
for (ti = start + step; ti <= end; ti += step) {
747
printf(" <%s>", DATA_ROW_TAG);
748
printf("<%s>%lu</%s>", COL_TIME_TAG, ti, COL_TIME_TAG);
800
printf(" <%s>", DATA_ROW_TAG);
801
printf("<%s>%lld</%s>", COL_TIME_TAG, (long long int)ti, COL_TIME_TAG);
749
803
for (j = 0; j < col_cnt; j++) {
750
804
rrd_value_t newval = DNAN;
754
snprintf(vtag, vtag_s, "%s%lu", COL_DATA_TAG, j);
756
snprintf(vtag, vtag_s, "%s", COL_DATA_TAG);
759
printf("<%s>NaN</%s>", vtag, vtag);
761
printf("<%s>%0.10e</%s>", vtag, newval, vtag);
810
printf("%0.10e",newval);
818
snprintf(vtag, vtag_s, "%s%lu", COL_DATA_TAG, j);
820
snprintf(vtag, vtag_s, "%s", COL_DATA_TAG);
822
printf("<%s>NaN</%s>", vtag, vtag);
824
printf("<%s>%0.10e</%s>", vtag, newval, vtag);
765
printf("</%s>\n", DATA_ROW_TAG);
830
printf(ti < end ? " ],\n" : " ]\n");
833
printf("</%s>\n", DATA_ROW_TAG);
768
printf(" </%s>\n", DATA_TAG);
769
printf("</%s>\n", ROOT_TAG);
841
printf(" </%s>\n", DATA_TAG);
842
printf("</%s>\n", ROOT_TAG);
770
844
setlocale(LC_NUMERIC, old_locale);
848
rrd_set_error("the instance of rrdtool has been compiled without graphics");
773
850
} else if (strcmp("graph", argv[1]) == 0) {
851
#ifdef HAVE_RRD_GRAPH
776
854
#ifdef notused /*XXX*/