add a filter to loggers

events are accepted by the logger if the filter accepts them
the filter is optional (no filter means to accept all events)
This commit is contained in:
Cedric Roux
2016-06-08 16:35:08 +02:00
parent 63652f94fa
commit 72f56da6b6
12 changed files with 176 additions and 4 deletions
+4
View File
@@ -2,6 +2,7 @@
#include "logger_defs.h"
#include "handler.h"
#include "database.h"
#include "filter/filter.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
@@ -31,6 +32,9 @@ static void _event(void *p, event e)
int bsize;
int nsamples;
if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0)
return;
subframe = e.e[l->subframe_arg].i;
buffer = e.e[l->buffer_arg].b;
bsize = e.e[l->buffer_arg].bsize;
+6
View File
@@ -9,3 +9,9 @@ void logger_add_view(logger *_l, view *v)
l->v = realloc(l->v, l->vsize * sizeof(view *)); if (l->v == NULL) abort();
l->v[l->vsize-1] = v;
}
void logger_set_filter(logger *_l, void *filter)
{
struct logger *l = _l;
l->filter = filter;
}
+1
View File
@@ -19,5 +19,6 @@ void framelog_set_skip(logger *_this, int skip_delay);
#include "view/view.h"
void logger_add_view(logger *l, view *v);
void logger_set_filter(logger *l, void *filter);
#endif /* _LOGGER_H_ */
@@ -9,6 +9,8 @@ struct logger {
/* list of views */
view **v;
int vsize;
/* filter - NULL if no filter set */
void *filter;
};
#endif /* _LOGGER_DEFS_H_ */
+4
View File
@@ -4,6 +4,7 @@
#include "database.h"
#include "view/view.h"
#include "utils.h"
#include "filter/filter.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
@@ -42,6 +43,9 @@ static void _event(void *p, event e)
char tt[64];
#endif
if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0)
return;
l->o.osize = 0;
#ifdef T_SEND_TIME
+4
View File
@@ -3,6 +3,7 @@
#include "event.h"
#include "database.h"
#include "handler.h"
#include "filter/filter.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -21,6 +22,9 @@ static void _event(void *p, event e)
int frame;
int subframe;
if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0)
return;
frame = e.e[l->frame_arg].i;
subframe = e.e[l->subframe_arg].i;
+4
View File
@@ -3,6 +3,7 @@
#include "event.h"
#include "database.h"
#include "handler.h"
#include "filter/filter.h"
#include <stdlib.h>
#include <string.h>
@@ -15,6 +16,9 @@ static void _event(void *p, event e)
struct timelog *l = p;
int i;
if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0)
return;
for (i = 0; i < l->common.vsize; i++)
l->common.v[i]->append(l->common.v[i], e.sending_time);
}
+4
View File
@@ -3,6 +3,7 @@
#include "event.h"
#include "database.h"
#include "handler.h"
#include "filter/filter.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -25,6 +26,9 @@ static void _event(void *p, event e)
int subframe;
float value;
if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0)
return;
frame = e.e[l->frame_arg].i;
subframe = e.e[l->subframe_arg].i;
switch (e.e[l->data_arg].type) {