diff options
Diffstat (limited to 'nserver/src/stats.c')
-rw-r--r-- | nserver/src/stats.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/nserver/src/stats.c b/nserver/src/stats.c index 0b793f8..6edf458 100644 --- a/nserver/src/stats.c +++ b/nserver/src/stats.c @@ -65,3 +65,25 @@ char *Stats_dump(Stats *st) error: return NULL; } + +char *Stats_stringify(Stats *st) +{ + size_t stats_str_len = 80; + + // allocate space for stringified stats. + char *stats_str = calloc(stats_str_len, sizeof(char)); + check_mem(stats_str); + + // stringify the stats + int rc = snprintf(stats_str, stats_str_len, + "%.2f::%.2f::%ld::%.2f::%.2f", + st->sum, st->sumsq, st->n, st->min, st->max); + check(rc > 0, "stringify stats failed"); + + return stats_str; + error: + if (stats_str) { + free(stats_str); + } + return NULL; +} |