X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fevent.c;h=61bdafb8655f9af543ee8ad53c8b39d5eaa9ef85;hb=7f0923173774f57d40214a61fbc7d33af1edd93a;hp=be5f936503e9349ece54005db9a0a8519db0e0ae;hpb=9a366873e0ed6ecc7f23e2d3a959ecddd4f2f91d;p=lttv.git diff --git a/lttv/lttv/event.c b/lttv/lttv/event.c index be5f9365..61bdafb8 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 bt_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 bt_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 bt_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; @@ -84,7 +104,7 @@ long lttv_event_get_long(LttvEvent *event, const char* field) /* unsigned int lttv_event_get_int_unsigned(LttvEvent *event, const char* field) { - struct definition *scope; + struct bt_definition *scope; unsigned long timestamp; char* data; struct bt_ctf_event *ctf_event = event->bt_event; @@ -106,7 +126,7 @@ unsigned int lttv_event_get_int_unsigned(LttvEvent *event, const char* field) } int lttv_event_get_int(LttvEvent *event, const char* field) { - struct definition *scope; + struct bt_definition *scope; unsigned long timestamp; char* data; struct bt_ctf_event *ctf_event = event->bt_event;