Fix warnings and use right decl instead of definition after API change
[lttv.git] / lttv / lttv / event.c
index 8c1b6d8021e359af29ccba2d1c3f15b932324325..2f26274ca83e8f351e7688e1cebdb736a62e6755 100644 (file)
@@ -13,7 +13,7 @@ LttTime lttv_event_get_timestamp(LttvEvent *event)
 //TODO ybrosseau find a way to return an error code
 unsigned long lttv_event_get_long_unsigned(LttvEvent *event, const char* field)
 {
-       struct definition *scope;
+       const struct definition *scope;
        unsigned long timestamp;
        unsigned long data;
        struct bt_ctf_event *ctf_event = event->bt_event;
@@ -38,30 +38,44 @@ unsigned long lttv_event_get_long_unsigned(LttvEvent *event, const char* field)
 
 char* lttv_event_get_string(LttvEvent *event, const char* field)
 {
-       struct definition *scope;
+       const struct definition *scope;
        unsigned long timestamp;
        char* data;
        struct bt_ctf_event *ctf_event = event->bt_event;
 
        timestamp = bt_ctf_get_timestamp(ctf_event);
        if (timestamp == -1ULL) {
+               printf("ERROR: lttv_event_get_string - cannot read timestamps");
                return 0;
        }
        //scope = bt_ctf_get_top_level_scope(ctf_event, BT_STREAM_PACKET_CONTEXT);
        scope = bt_ctf_get_top_level_scope(ctf_event, BT_EVENT_FIELDS);
        if (bt_ctf_field_get_error()) {
+               printf("ERROR: lttv_event_get_string - cannot get field scope");
                return 0;
        }
        data = bt_ctf_get_char_array(bt_ctf_get_field(ctf_event, scope, field));
        if (bt_ctf_field_get_error()) {
-               return 0;
+               // Try get_string if we fail on char_array
+               // TODO ybrosseau: properly detect right type
+               data = bt_ctf_get_string(bt_ctf_get_field(ctf_event, scope, field));
+               if (bt_ctf_field_get_error()) {
+                       
+
+                       printf("ERROR: lttv_event_get_string - cannot get field data %s", field);
+
+                       return 0;
+               } else {
+                       return data;
+               }
+               
        } else {
                return data;
        }
 }
 long lttv_event_get_long(LttvEvent *event, const char* field)
 {
-       struct definition *scope;
+       const struct definition *scope;
        unsigned long timestamp;
        long data;
        struct bt_ctf_event *ctf_event = event->bt_event;
This page took 0.022847 seconds and 4 git commands to generate.