From e5689a5bd17977bcbefdd3ef49d63654f9df9310 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Thu, 12 May 2016 10:59:59 +0200 Subject: [PATCH] introducing a generic logger "class" --- common/utils/T/tracer/logger/Makefile | 2 +- common/utils/T/tracer/logger/framelog.c | 32 ++++++++-------------- common/utils/T/tracer/logger/framelog.h | 13 --------- common/utils/T/tracer/logger/logger.c | 11 ++++++++ common/utils/T/tracer/logger/logger.h | 18 ++++++++++++ common/utils/T/tracer/logger/logger_defs.h | 14 ++++++++++ common/utils/T/tracer/logger/textlog.c | 29 +++++++------------- common/utils/T/tracer/logger/textlog.h | 13 --------- common/utils/T/tracer/logger/ttilog.c | 28 ++++++------------- common/utils/T/tracer/logger/ttilog.h | 14 ---------- common/utils/T/tracer/textlog.c | 6 ++-- 11 files changed, 77 insertions(+), 103 deletions(-) delete mode 100644 common/utils/T/tracer/logger/framelog.h create mode 100644 common/utils/T/tracer/logger/logger.c create mode 100644 common/utils/T/tracer/logger/logger.h create mode 100644 common/utils/T/tracer/logger/logger_defs.h delete mode 100644 common/utils/T/tracer/logger/textlog.h delete mode 100644 common/utils/T/tracer/logger/ttilog.h diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile index 026a2e194a..4e67dce3ad 100644 --- a/common/utils/T/tracer/logger/Makefile +++ b/common/utils/T/tracer/logger/Makefile @@ -1,7 +1,7 @@ CC=gcc CFLAGS=-Wall -g -pthread -I.. -OBJS=textlog.o framelog.o ttilog.o +OBJS=logger.o textlog.o framelog.o ttilog.o logger.a: $(OBJS) ar cr logger.a $(OBJS) diff --git a/common/utils/T/tracer/logger/framelog.c b/common/utils/T/tracer/logger/framelog.c index a52bbe7f48..2b26a5b3a0 100644 --- a/common/utils/T/tracer/logger/framelog.c +++ b/common/utils/T/tracer/logger/framelog.c @@ -1,4 +1,5 @@ -#include "framelog.h" +#include "logger.h" +#include "logger_defs.h" #include "handler.h" #include "database.h" #include <stdlib.h> @@ -7,14 +8,10 @@ #include <math.h> struct framelog { - char *event_name; + struct logger common; void *database; - unsigned long handler_id; int subframe_arg; int buffer_arg; - /* list of views */ - view **v; - int vsize; float *x; float *buffer; int blength; @@ -47,8 +44,8 @@ static void _event(void *p, event e) for (i = 0; i < l->blength; i++) l->x[i] = i; /* update 'length' of views */ - for (i = 0; i < l->vsize; i++) - l->v[i]->set(l->v[i], "length", l->blength); + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->set(l->common.v[i], "length", l->blength); } /* TODO: compute the LOGs in the plotter (too much useless computations) */ @@ -59,11 +56,11 @@ static void _event(void *p, event e) } if (subframe == 9) - for (i = 0; i < l->vsize; i++) - l->v[i]->append(l->v[i], l->x, l->buffer, l->blength); + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], l->x, l->buffer, l->blength); } -framelog *new_framelog(event_handler *h, void *database, +logger *new_framelog(event_handler *h, void *database, char *event_name, char *subframe_varname, char *buffer_varname) { struct framelog *ret; @@ -73,12 +70,13 @@ framelog *new_framelog(event_handler *h, void *database, ret = calloc(1, sizeof(struct framelog)); if (ret == NULL) abort(); - ret->event_name = strdup(event_name); if (ret->event_name == NULL) abort(); + ret->common.event_name = strdup(event_name); + if (ret->common.event_name == NULL) abort(); ret->database = database; event_id = event_id_from_name(database, event_name); - ret->handler_id = register_handler_function(h, event_id, _event, ret); + ret->common.handler_id = register_handler_function(h,event_id,_event,ret); f = get_format(database, event_id); @@ -112,11 +110,3 @@ framelog *new_framelog(event_handler *h, void *database, return ret; } - -void framelog_add_view(framelog *_l, view *v) -{ - struct framelog *l = _l; - l->vsize++; - l->v = realloc(l->v, l->vsize * sizeof(view *)); if (l->v == NULL) abort(); - l->v[l->vsize-1] = v; -} diff --git a/common/utils/T/tracer/logger/framelog.h b/common/utils/T/tracer/logger/framelog.h deleted file mode 100644 index a7b3d0d21d..0000000000 --- a/common/utils/T/tracer/logger/framelog.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _FRAMELOG_H_ -#define _FRAMELOG_H_ - -typedef void framelog; - -framelog *new_framelog(void *event_handler, void *database, - char *event_name, char *subframe_varname, char *buffer_varname); - -#include "view/view.h" - -void framelog_add_view(framelog *l, view *v); - -#endif /* _FRAMELOG_H_ */ diff --git a/common/utils/T/tracer/logger/logger.c b/common/utils/T/tracer/logger/logger.c new file mode 100644 index 0000000000..c27c612f82 --- /dev/null +++ b/common/utils/T/tracer/logger/logger.c @@ -0,0 +1,11 @@ +#include "logger.h" +#include "logger_defs.h" +#include <stdlib.h> + +void logger_add_view(logger *_l, view *v) +{ + struct logger *l = _l; + l->vsize++; + l->v = realloc(l->v, l->vsize * sizeof(view *)); if (l->v == NULL) abort(); + l->v[l->vsize-1] = v; +} diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h new file mode 100644 index 0000000000..f6905e153d --- /dev/null +++ b/common/utils/T/tracer/logger/logger.h @@ -0,0 +1,18 @@ +#ifndef _LOGGER_H_ +#define _LOGGER_H_ + +typedef void logger; + +logger *new_framelog(void *event_handler, void *database, + char *event_name, char *subframe_varname, char *buffer_varname); +logger *new_textlog(void *event_handler, void *database, + char *event_name, char *format); +logger *new_ttilog(void *event_handler, void *database, + char *event_name, char *frame_varname, char *subframe_varname, + char *data_varname, int convert_to_dB); + +#include "view/view.h" + +void logger_add_view(logger *l, view *v); + +#endif /* _LOGGER_H_ */ diff --git a/common/utils/T/tracer/logger/logger_defs.h b/common/utils/T/tracer/logger/logger_defs.h new file mode 100644 index 0000000000..e4279157ec --- /dev/null +++ b/common/utils/T/tracer/logger/logger_defs.h @@ -0,0 +1,14 @@ +#ifndef _LOGGER_DEFS_H_ +#define _LOGGER_DEFS_H_ + +#include "view/view.h" + +struct logger { + char *event_name; + unsigned long handler_id; + /* list of views */ + view **v; + int vsize; +}; + +#endif /* _LOGGER_DEFS_H_ */ diff --git a/common/utils/T/tracer/logger/textlog.c b/common/utils/T/tracer/logger/textlog.c index 264068c617..2efbc8b1aa 100644 --- a/common/utils/T/tracer/logger/textlog.c +++ b/common/utils/T/tracer/logger/textlog.c @@ -1,4 +1,5 @@ -#include "textlog.h" +#include "logger.h" +#include "logger_defs.h" #include "handler.h" #include "database.h" #include "view/view.h" @@ -22,16 +23,12 @@ struct format_item { }; struct textlog { - char *event_name; + struct logger common; char *format; void *database; - unsigned long handler_id; /* parsed format string */ struct format_item *f; int fsize; - /* list of views */ - view **v; - int vsize; /* local output buffer */ OBUF o; }; @@ -56,7 +53,8 @@ static void _event(void *p, event e) } PUTC(&l->o, 0); - for (i = 0; i < l->vsize; i++) l->v[i]->append(l->v[i], l->o.obuf); + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], l->o.obuf); } enum chunk_type { C_ERROR, C_STRING, C_ARG_NAME, C_EVENT_NAME }; @@ -127,7 +125,7 @@ error: return (struct chunk){type:C_ERROR}; } -textlog *new_textlog(event_handler *h, void *database, +logger *new_textlog(event_handler *h, void *database, char *event_name, char *format) { struct textlog *ret; @@ -137,13 +135,14 @@ textlog *new_textlog(event_handler *h, void *database, ret = calloc(1, sizeof(struct textlog)); if (ret == NULL) abort(); - ret->event_name = strdup(event_name); if (ret->event_name == NULL) abort(); + ret->common.event_name = strdup(event_name); + if (ret->common.event_name == NULL) abort(); ret->format = strdup(format); if (ret->format == NULL) abort(); ret->database = database; event_id = event_id_from_name(database, event_name); - ret->handler_id = register_handler_function(h, event_id, _event, ret); + ret->common.handler_id = register_handler_function(h,event_id,_event,ret); f = get_format(database, event_id); @@ -167,7 +166,7 @@ textlog *new_textlog(event_handler *h, void *database, break; case C_EVENT_NAME: ret->f[ret->fsize].type = INSTRING; - ret->f[ret->fsize].s = ret->event_name; + ret->f[ret->fsize].s = ret->common.event_name; break; } ret->fsize++; @@ -179,11 +178,3 @@ error: printf("%s:%d: bad format '%s'\n", __FILE__, __LINE__, format); abort(); } - -void textlog_add_view(textlog *_l, view *v) -{ - struct textlog *l = _l; - l->vsize++; - l->v = realloc(l->v, l->vsize * sizeof(view *)); if (l->v == NULL) abort(); - l->v[l->vsize-1] = v; -} diff --git a/common/utils/T/tracer/logger/textlog.h b/common/utils/T/tracer/logger/textlog.h deleted file mode 100644 index b9e9a3e8e3..0000000000 --- a/common/utils/T/tracer/logger/textlog.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _TEXTLOG_H_ -#define _TEXTLOG_H_ - -typedef void textlog; - -textlog *new_textlog(void *event_handler, void *database, - char *event_name, char *format); - -#include "view/view.h" - -void textlog_add_view(textlog *l, view *v); - -#endif /* _TEXTLOG_H_ */ diff --git a/common/utils/T/tracer/logger/ttilog.c b/common/utils/T/tracer/logger/ttilog.c index f9daa4102b..649c4b497a 100644 --- a/common/utils/T/tracer/logger/ttilog.c +++ b/common/utils/T/tracer/logger/ttilog.c @@ -1,4 +1,5 @@ -#include "ttilog.h" +#include "logger.h" +#include "logger_defs.h" #include "event.h" #include "database.h" #include "handler.h" @@ -8,15 +9,11 @@ #include <math.h> struct ttilog { - char *event_name; + struct logger common; void *database; - unsigned long handler_id; int frame_arg; int subframe_arg; int data_arg; - /* list of views */ - view **v; - int vsize; int convert_to_dB; }; @@ -37,11 +34,11 @@ static void _event(void *p, event e) if (l->convert_to_dB) value = 10 * log10(value); - for (i = 0; i < l->vsize; i++) - l->v[i]->append(l->v[i], frame, subframe, value); + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], frame, subframe, value); } -ttilog *new_ttilog(event_handler *h, void *database, +logger *new_ttilog(event_handler *h, void *database, char *event_name, char *frame_varname, char *subframe_varname, char *data_varname, int convert_to_dB) { @@ -52,13 +49,14 @@ ttilog *new_ttilog(event_handler *h, void *database, ret = calloc(1, sizeof(struct ttilog)); if (ret == NULL) abort(); - ret->event_name = strdup(event_name); if (ret->event_name == NULL) abort(); + ret->common.event_name = strdup(event_name); + if (ret->common.event_name == NULL) abort(); ret->database = database; ret->convert_to_dB = convert_to_dB; event_id = event_id_from_name(database, event_name); - ret->handler_id = register_handler_function(h, event_id, _event, ret); + ret->common.handler_id = register_handler_function(h,event_id,_event,ret); f = get_format(database, event_id); @@ -106,11 +104,3 @@ ttilog *new_ttilog(event_handler *h, void *database, return ret; } - -void ttilog_add_view(ttilog *_l, view *v) -{ - struct ttilog *l = _l; - l->vsize++; - l->v = realloc(l->v, l->vsize * sizeof(view *)); if (l->v == NULL) abort(); - l->v[l->vsize-1] = v; -} diff --git a/common/utils/T/tracer/logger/ttilog.h b/common/utils/T/tracer/logger/ttilog.h deleted file mode 100644 index 9e0c4fc356..0000000000 --- a/common/utils/T/tracer/logger/ttilog.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _TTILOG_H_ -#define _TTILOG_H_ - -typedef void ttilog; - -ttilog *new_ttilog(void *event_handler, void *database, - char *event_name, char *frame_varname, char *subframe_varname, - char *data_varname, int convert_to_dB); - -#include "view/view.h" - -void ttilog_add_view(ttilog *l, view *v); - -#endif /* _TTILOG_H_ */ diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c index eb9a83f525..eef202495d 100644 --- a/common/utils/T/tracer/textlog.c +++ b/common/utils/T/tracer/textlog.c @@ -7,7 +7,7 @@ #include "database.h" #include "event.h" #include "handler.h" -#include "logger/textlog.h" +#include "logger/logger.h" #include "view/view.h" #include "gui/gui.h" #include "utils.h" @@ -125,7 +125,7 @@ int main(int n, char **v) char t; int l; event_handler *h; - textlog *textlog; + logger *textlog; gui *g; int gui_mode = 0; view *out; @@ -192,7 +192,7 @@ int main(int n, char **v) textlog = new_textlog(h, database, name, desc); // "ENB_UL_CHANNEL_ESTIMATE", // "ev: {} eNB_id [eNB_ID] frame [frame] subframe [subframe]"); - textlog_add_view(textlog, out); + logger_add_view(textlog, out); free(name); free(desc); } -- GitLab