menu entries for tab
[lttv.git] / ltt / branches / poly / lttv / event.c
CommitLineData
59121f0c 1
2void lttv_event_to_string(ltt_event *e, lttv_string *s, bool mandatory_fields)
3{
4 ltt_facility *facility;
5 ltt_eventtype *eventtype;
6 ltt_type *type;
7 ltt_field *field;
8 ltt_time time;
9
10 g_string_set_size(s,0);
11
12 facility = lttv_event_facility(e);
13 eventtype = ltt_event_eventtype(e);
14 field = ltt_event_field(e);
15
16 if(mandatory_fields) {
17 time = ltt_event_time(e);
18 g_string_append_printf(s,"%s.%s: %ld.%ld",ltt_facility_name(facility),
19 ltt_eventtype_name(eventtype), (long)time.tv_sec, time.tv_nsec);
20 }
21
22 print_field(e,f,s);
23}
24
25void print_field(ltt_event *e, ltt_field *f, lttv_string *s) {
26 ltt_type *type;
27 ltt_field *element;
28
29 int nb, i;
30
31 type = ltt_field_type(f);
32 switch(ltt_type_class(type)) {
33 case LTT_INT:
34 g_string_append_printf(s, " %ld", ltt_event_get_long_int(e,f));
35 break;
36
37 case LTT_UINT:
38 g_string_append_printf(s, " %lu", ltt_event_get_long_unsigned(e,f));
39 break;
40
41 case LTT_FLOAT:
42 g_string_append_printf(s, " %g", ltt_event_get_double(e,f));
43 break;
44
45 case LTT_STRING:
46 g_string_append_printf(s, " \"%s\"", ltt_event_get_string(e,f));
47 break;
48
49 case LTT_ENUM:
50 g_string_append_printf(s, " %s", ltt_enum_string_get(type,
51 event_get_unsigned(e,f));
52 break;
53
54 case LTT_ARRAY:
55 case LTT_SEQUENCE:
56 g_string_append_printf(s, " {");
57 nb = ltt_event_field_element_number(e,f);
58 element = ltt_field_element(f);
59 for(i = 0 ; i < nb ; i++) {
60 ltt_event_field_element_select(e,f,i);
61 print_field(e,element,s);
62 }
63 g_string_append_printf(s, " }");
64 break;
65
66 case LTT_STRUCT:
67 g_string_append_printf(s, " {");
68 nb = ltt_type_member_number(type);
69 for(i = 0 ; i < nb ; i++) {
70 element = ltt_field_member(f,i);
71 print_field(e,element,s);
72 }
73 g_string_append_printf(s, " }");
74 break;
75 }
76}
77
78
79
This page took 0.026073 seconds and 4 git commands to generate.