htrdr

Solving radiative transfer in heterogeneous media
git clone git://git.meso-star.fr/htrdr.git
Log | Files | Refs | README | LICENSE

commit a70d7d2a0b5c62df4951a037d96da83292dcec51
parent d389f704bdcfbd779855c96fae0ca54d001096b5
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon,  4 Jun 2018 09:37:06 +0200

Add the htrdr_log function

Diffstat:
Msrc/htrdr.c | 27++++++++++++++++++++++++++-
Msrc/htrdr.h | 10++++++++++
2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/src/htrdr.c b/src/htrdr.c @@ -40,6 +40,18 @@ * Helper functions ******************************************************************************/ static void +print_out(const char* msg, void* ctx) +{ + ASSERT(msg); + (void)ctx; +#ifdef OS_UNIX + fprintf(stderr, "\x1b[1m\x1b[32m>\x1b[0m %s", msg); +#else + fprintf(stderr, "> %s", msg); +#endif +} + +static void print_err(const char* msg, void* ctx) { ASSERT(msg); @@ -160,9 +172,12 @@ htrdr_init res_T res = RES_OK; ASSERT(args && htrdr); + memset(htrdr, 0, sizeof(*htrdr)); + htrdr->allocator = mem_allocator ? mem_allocator : &mem_default_allocator; logger_init(htrdr->allocator, &htrdr->logger); + logger_set_stream(&htrdr->logger, LOG_OUTPUT, print_out, NULL); logger_set_stream(&htrdr->logger, LOG_ERROR, print_err, NULL); logger_set_stream(&htrdr->logger, LOG_WARNING, print_warn, NULL); @@ -241,7 +256,7 @@ htrdr_run(struct htrdr* htrdr) if(res != RES_OK) goto error; time_sub(&t0, time_current(&t1), &t0); time_dump(&t0, TIME_ALL, NULL, buf, sizeof(buf)); - fprintf(stderr, "Elapsed time: %s\n", buf); + htrdr_log(htrdr, "Elapsed time: %s\n", buf); dump_buffer(htrdr); } @@ -252,6 +267,16 @@ error: } void +htrdr_log(struct htrdr* htrdr, const char* msg, ...) +{ + va_list vargs_list; + ASSERT(htrdr && msg); + va_start(vargs_list, msg); + log_msg(htrdr, LOG_OUTPUT, msg, vargs_list); + va_end(vargs_list); +} + +void htrdr_log_err(struct htrdr* htrdr, const char* msg, ...) { va_list vargs_list; diff --git a/src/htrdr.h b/src/htrdr.h @@ -61,6 +61,16 @@ htrdr_run (struct htrdr* htrdr); extern LOCAL_SYM void +htrdr_log + (struct htrdr* htrdr, + const char* msg, + ...) +#ifdef COMPILER_GCC + __attribute((format(printf, 2, 3))) +#endif + ; + +extern LOCAL_SYM void htrdr_log_err (struct htrdr* htrdr, const char* msg,