X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faction_instance_data_json.c;h=a2de10e4f437c91defebeea007272b58dd055823;hb=3fbe261b1de541590f5d3be1bef49b3b3605f392;hp=53823f32eba28bb3cf61056940c3c1b7c8c70fe1;hpb=ff70b1099798d03886e178d708c7b51de396b826;p=collection4.git diff --git a/src/action_instance_data_json.c b/src/action_instance_data_json.c index 53823f3..a2de10e 100644 --- a/src/action_instance_data_json.c +++ b/src/action_instance_data_json.c @@ -48,6 +48,29 @@ static void write_callback (__attribute__((unused)) void *ctx, /* {{{ */ fwrite ((void *) str, /* size = */ len, /* nmemb = */ 1, stdout); } /* }}} void write_callback */ +static int param_get_resolution (dp_time_t *resolution) /* {{{ */ +{ + const char *tmp; + char *endptr; + double value; + + tmp = param ("resolution"); + if (tmp == NULL) + return (ENOENT); + + errno = 0; + endptr = NULL; + value = strtod (tmp, &endptr); + if (errno != 0) + return (errno); + else if ((value <= 0.0) || (endptr == tmp)) + return (EINVAL); + + resolution->tv_sec = (time_t) value; + resolution->tv_nsec = (long) ((value - ((double) resolution->tv_sec)) * 1000000000.0); + return (0); +} /* }}} int param_get_resolution */ + int action_instance_data_json (void) /* {{{ */ { graph_config_t *cfg; @@ -59,6 +82,7 @@ int action_instance_data_json (void) /* {{{ */ dp_time_t dp_begin = { 0, 0 }; dp_time_t dp_end = { 0, 0 }; + dp_time_t dp_resolution = { 0, 0 }; yajl_gen_config handler_config; yajl_gen handler; @@ -86,6 +110,9 @@ int action_instance_data_json (void) /* {{{ */ dp_end.tv_sec = tt_end; dp_end.tv_nsec = 0; + dp_resolution.tv_sec = (tt_end - tt_begin) / 324; + param_get_resolution (&dp_resolution); + memset (&handler_config, 0, sizeof (handler_config)); handler_config.beautify = 0; handler_config.indentString = " "; @@ -114,7 +141,7 @@ int action_instance_data_json (void) /* {{{ */ printf ("\n"); status = inst_data_to_json (inst, - dp_begin, dp_end, handler); + dp_begin, dp_end, dp_resolution, handler); yajl_gen_free (handler);