X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fevent.c;h=c30dcf0b666f00ec8fb338a1356f475656a2c464;hb=2230bb655f94e5ee0d32593520de317e6081dec6;hp=be5f936503e9349ece54005db9a0a8519db0e0ae;hpb=9a366873e0ed6ecc7f23e2d3a959ecddd4f2f91d;p=lttv.git diff --git a/lttv/lttv/event.c b/lttv/lttv/event.c index be5f9365..c30dcf0b 100644 --- a/lttv/lttv/event.c +++ b/lttv/lttv/event.c @@ -7,28 +7,31 @@ LttTime lttv_event_get_timestamp(LttvEvent *event) { - return ltt_time_from_uint64(bt_ctf_get_timestamp_raw(event->bt_event)); + return ltt_time_from_uint64(bt_ctf_get_timestamp(event->bt_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; timestamp = bt_ctf_get_timestamp(ctf_event); if (timestamp == -1ULL) { + printf("ERROR: lttv_event_get_long_unsigned - invalid event\n"); 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_long_unsigned - cannot get field scope\n"); return 0; } data = bt_ctf_get_uint64(bt_ctf_get_field(ctf_event, scope, field)); if (bt_ctf_field_get_error()) { + printf("ERROR: lttv_event_get_long_unsigned - cannot get field data %s \n", field); return 0; } else { return data; @@ -38,44 +41,61 @@ 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; timestamp = bt_ctf_get_timestamp(ctf_event); if (timestamp == -1ULL) { + printf("ERROR: lttv_event_get_long - invalid event\n"); return 0; } scope = bt_ctf_get_top_level_scope(ctf_event, BT_EVENT_FIELDS); if (bt_ctf_field_get_error()) { + printf("ERROR: lttv_event_get_long - cannot get field scope\n"); return 0; } data = bt_ctf_get_int64(bt_ctf_get_field(ctf_event, scope, field)); if (bt_ctf_field_get_error()) { + printf("ERROR: lttv_event_get_long - cannot get field data %s \n", field); return 0; } else { return data;