From df5afaa93d27e11c35d766a35163fa1ed5a3f0ef Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Thu, 12 May 2016 13:00:19 +0200
Subject: [PATCH] store received time in events for later processing

---
 common/utils/T/tracer/event.c   |  8 ++++++++
 common/utils/T/tracer/event.h   | 11 +++++++++++
 common/utils/T/tracer/textlog.c |  4 ++++
 3 files changed, 23 insertions(+)

diff --git a/common/utils/T/tracer/event.c b/common/utils/T/tracer/event.c
index 88668eaf7f..2071c90356 100644
--- a/common/utils/T/tracer/event.c
+++ b/common/utils/T/tracer/event.c
@@ -4,13 +4,21 @@
 #include <stdlib.h>
 #include <string.h>
 
+#ifdef T_SEND_TIME
+event new_event(struct timespec sending_time, int type,
+    int length, char *buffer, void *database)
+#else
 event new_event(int type, int length, char *buffer, void *database)
+#endif
 {
   database_event_format f;
   event e;
   int i;
   int offset;
 
+#ifdef T_SEND_TIME
+  e.sending_time = sending_time;
+#endif
   e.type = type;
   e.buffer = buffer;
 
diff --git a/common/utils/T/tracer/event.h b/common/utils/T/tracer/event.h
index 88f6e4eeb4..0cecca3265 100644
--- a/common/utils/T/tracer/event.h
+++ b/common/utils/T/tracer/event.h
@@ -2,6 +2,9 @@
 #define _EVENT_H_
 
 #include "../T_defs.h"
+#ifdef T_SEND_TIME
+#include <time.h>
+#endif
 
 enum event_arg_type {
   EVENT_INT,
@@ -23,12 +26,20 @@ typedef struct {
 } event_arg;
 
 typedef struct {
+#ifdef T_SEND_TIME
+  struct timespec sending_time;
+#endif
   int type;
   char *buffer;
   event_arg e[T_MAX_ARGS];
   int ecount;
 } event;
 
+#ifdef T_SEND_TIME
+event new_event(struct timespec sending_time, int type,
+    int length, char *buffer, void *database);
+#else
 event new_event(int type, int length, char *buffer, void *database);
+#endif
 
 #endif /* _EVENT_H_ */
diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c
index eef202495d..ec08596fca 100644
--- a/common/utils/T/tracer/textlog.c
+++ b/common/utils/T/tracer/textlog.c
@@ -99,7 +99,11 @@ event get_event(int s, char *v, void *d)
   length -= sizeof(int);
   fullread(s, v, length);
 
+#ifdef T_SEND_TIME
+  return new_event(t, type, length, v, d);
+#else
   return new_event(type, length, v, d);
+#endif
 }
 
 static void *gui_thread(void *_g)
-- 
GitLab