From 69f14c37fa7e77e6ddd7a92304e94d3ca16fc5a9 Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Thu, 12 May 2016 17:26:42 +0200
Subject: [PATCH] timelog

---
 common/utils/T/tracer/logger/Makefile  |  2 +-
 common/utils/T/tracer/logger/logger.h  |  1 +
 common/utils/T/tracer/logger/timelog.c | 37 ++++++++++++++++++++++++++
 3 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 common/utils/T/tracer/logger/timelog.c

diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile
index 4e67dce3ad..18f70e0bc5 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=logger.o textlog.o framelog.o ttilog.o
+OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o
 
 logger.a: $(OBJS)
 	ar cr logger.a $(OBJS)
diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h
index f6905e153d..a3c09b2c23 100644
--- a/common/utils/T/tracer/logger/logger.h
+++ b/common/utils/T/tracer/logger/logger.h
@@ -10,6 +10,7 @@ logger *new_textlog(void *event_handler, void *database,
 logger *new_ttilog(void *event_handler, void *database,
     char *event_name, char *frame_varname, char *subframe_varname,
     char *data_varname, int convert_to_dB);
+logger *new_timelog(void *event_handler, void *database, char *event_name);
 
 #include "view/view.h"
 
diff --git a/common/utils/T/tracer/logger/timelog.c b/common/utils/T/tracer/logger/timelog.c
new file mode 100644
index 0000000000..5dadad8c27
--- /dev/null
+++ b/common/utils/T/tracer/logger/timelog.c
@@ -0,0 +1,37 @@
+#include "logger.h"
+#include "logger_defs.h"
+#include "event.h"
+#include "database.h"
+#include "handler.h"
+#include <stdlib.h>
+#include <string.h>
+
+struct timelog {
+  struct logger common;
+};
+
+static void _event(void *p, event e)
+{
+  struct timelog *l = p;
+  int i;
+
+  for (i = 0; i < l->common.vsize; i++)
+    l->common.v[i]->append(l->common.v[i], e.sending_time);
+}
+
+logger *new_timelog(event_handler *h, void *database, char *event_name)
+{
+  struct timelog *ret;
+  int event_id;
+
+  ret = calloc(1, sizeof(struct timelog)); if (ret == NULL) abort();
+
+  ret->common.event_name = strdup(event_name);
+  if (ret->common.event_name == NULL) abort();
+
+  event_id = event_id_from_name(database, event_name);
+
+  ret->common.handler_id = register_handler_function(h,event_id,_event,ret);
+
+  return ret;
+}
-- 
GitLab