old files clean
[lttv.git] / ltt / branches / poly / include / lttv / filter.h
CommitLineData
48f6f3c2 1#ifndef FILTER_H
2#define FILTER_H
3
4/* A filter expression consists in nested AND, OR and NOT expressions
5 involving boolean relation (>, >=, =, !=, <, <=) between event fields and
6 specific values. It is compiled into an efficient data structure which
7 is used in functions to check if a given event or tracefile satisfies the
8 filter.
9
10 The grammar for filters is:
11
12 filter = expression
13
14 expression = "(" expression ")" | "!" expression |
15 expression "&&" expression | expression "||" expression |
16 simpleExpression
17
18 simpleExpression = fieldPath op value
19
20 fieldPath = fieldComponent [ "." fieldPath ]
21
22 fieldComponent = name [ "[" integer "]" ]
23
24 value = integer | double | string
25
26*/
27
28
29typedef struct _lttv_filter lttv_filter;
30
31
32/* Compile the filter expression into an efficient data structure */
33
34lttv_filter *lttv_filter_new(char *expression, lttv_trace *t);
35
36
37/* Check if the tracefile or event satisfies the filter. The arguments are
38 declared as void * to allow these functions to be used as hooks. */
39
40bool lttv_filter_tracefile(void *filter, void *tracefile);
41
42bool lttv_filter_event(void *filter, void *event);
43
44#endif // FILTER_H
45
This page took 0.025495 seconds and 4 git commands to generate.