80 columns formatting
[lttv.git] / ltt / branches / poly / lttv / plugins / textDump.c
CommitLineData
59121f0c 1
2typedef struct _text_hook_data {
3 FILE *fp;
4 lttv_string *s;
5} text_hook_data;
6
7void *lttv_textDump_before(lttv_trace_set *s, FILE *fp)
8{
9 int i, j, nb_trace, nb_tracefile;
10 lttv_attributes *a;
11 lttv_hooks *h;
12 lttv_trace *t;
13 lttv_tracefile *tf;
14 text_hook_data *hook_data;
15
16 hook_data = g_new(ltt_hook_data,1);
17 nb_trace = lttv_trace_set_number(s);
18 hook_data->fp = fp;
19 hook_data->s = lttv_string_new;
20
21 for(i = 0 ; i < nb_trace ; i++) {
22 t = lttv_trace_set_get(s,i);
23 a = lttv_trace_attributes(t);
24 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/before");
25 lttv_hooks_add(h, print_trace_title, hook_data);
26 nb_tracefile = lttv_trace_number(t);
27
28 for(j = 0 ; j < nb_tracefile ; j++) {
29 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/before");
30 lttv_hooks_add(h, print_tracefile_title, hook_data);
31 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/event");
32 lttv_hooks_add(h, print_event, hook_data);
33 }
34 }
35}
36
37void lttv_textDump_after(lttv_trace_set *ts, void *hook_data)
38{
39 int i, j, nb_trace, nb_tracefile;
40 lttv_attributes *a;
41 lttv_hooks *h;
42 lttv_trace *t;
43 lttv_tracefile *tf;
44
45 nb_trace = lttv_trace_set_number(s);
46
47 for(i = 0 ; i < nb_trace ; i++) {
48 t = lttv_trace_set_get(s,i);
49 a = lttv_trace_attributes(t);
50 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/before");
51 lttv_hooks_remove(h, print_trace_title, hook_data);
52 nb_tracefile = lttv_trace_number(t);
53
54 for(j = 0 ; j < nb_tracefile ; j++) {
55 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/before");
56 lttv_hooks_remove(h, print_tracefile_title, hook_data);
57 h = (lttv_hooks *)lttv_attributes_get_pointer_pathname(a,"hooks/event");
58 lttv_hooks_remove(h, print_event, hook_data);
59 }
60 }
61 lttv_string_destroy(hook_data->s);
62 g_free(hook_data);
63}
64
65static void print_trace_title(void *hook_data, void *call_data)
66{
67 lttv_trace *t;
68 FILE *fp;
69
70 fp = ((text_hook_data *)hook_data)->fp;
71 t = (lttv_trace *)call_data;
72 fprintf(fp,"\n\nTrace %s:\n\n" lttv_trace_name(t));
73}
74
75static void print_trace(void *hook_data, void *call_data)
76{
77 lttv_tracefile *tf;
78 FILE *fp;
79
80 fp = ((text_hook_data *)hook_data)->fp;
81 tf = (lttv_tracefile *)call_data;
82 fprintf(fp,"\n\nTracefile %s:\n\n" lttv_tracefile_name(tf));
83}
84
85static void print_event(void *hook_data, void *call_data)
86{
87 ltt_event *e;
88 FILE *fp;
89 text_hook_data *d;
90
91 d = ((text_hook_data *)hook_data;
92 e = (lttv_event *)call_data;
93 lttv_event_to_string(e,d->s,TRUE);
94 fprintf(fp,"%s\n" d->s->str);
95}
96
97
98
This page took 0.025176 seconds and 4 git commands to generate.