From 36543fb956fa882d73274e61a8054479a3675aed Mon Sep 17 00:00:00 2001 From: Snaipe Date: Mon, 12 Oct 2015 10:34:01 +0100 Subject: [PATCH] Added basic reporter/output registration --- src/log/output.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/log/output.c diff --git a/src/log/output.c b/src/log/output.c new file mode 100644 index 0000000..3b9918d --- /dev/null +++ b/src/log/output.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include "criterion/stats.h" + +typedef void criterion_reporter(FILE *stream, struct criterion_global_stats *); + +KHASH_MAP_INIT_STR(ht_str, criterion_reporter*) +KHASH_MAP_INIT_STR(ht_path, const char *) + +static khash_t(ht_str) *reporters; +static khash_t(ht_path) *outputs; + +void criterion_init_output(void) { + reporters = kh_init(ht_str); + outputs = kh_init(ht_path); +} + +int criterion_register_output_provider(const char *name, criterion_reporter *reporter) { + int absent; + khint_t k = kh_put(ht_str, reporters, name, &absent); + kh_value(reporters, k) = reporter; + return absent; +} + +int criterion_add_output(const char *provider, const char *path) { + int absent; + khint_t k = kh_put(ht_path, outputs, provider, &absent); + kh_value(outputs, k) = path; + return absent; +} + +void criterion_free_output(void) { + kh_destroy(ht_str, reporters); + kh_destroy(ht_path, outputs); +}