From c87a8eb2082fb480f17c63e56ffab6cbc9257680 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Fri, 12 Aug 2011 17:36:29 -0400 Subject: [PATCH] Save current event id Signed-off-by: Mathieu Desnoyers --- formats/ctf-text/ctf-text.c | 29 ++-------------------------- formats/ctf/ctf.c | 29 ++++------------------------ include/babeltrace/ctf-ir/metadata.h | 1 + 3 files changed, 7 insertions(+), 52 deletions(-) diff --git a/formats/ctf-text/ctf-text.c b/formats/ctf-text/ctf-text.c index 992fbdf6..ac35cfb7 100644 --- a/formats/ctf-text/ctf-text.c +++ b/formats/ctf-text/ctf-text.c @@ -102,35 +102,10 @@ int ctf_text_write_event(struct stream_pos *ppos, int field_nr_saved; struct ctf_event *event_class; struct ctf_stream_event *event; - uint64_t id = 0; + uint64_t id; int ret; - /* print event header */ - if (stream->stream_event_header) { - struct definition_integer *integer_definition; - struct definition *variant; - - /* lookup event id */ - integer_definition = lookup_integer(&stream->stream_event_header->p, "id", FALSE); - if (integer_definition) { - id = integer_definition->value._unsigned; - } else { - struct definition_enum *enum_definition; - - enum_definition = lookup_enum(&stream->stream_event_header->p, "id", FALSE); - if (enum_definition) { - id = enum_definition->integer->value._unsigned; - } - } - - variant = lookup_variant(&stream->stream_event_header->p, "v"); - if (variant) { - integer_definition = lookup_integer(variant, "id", FALSE); - if (integer_definition) { - id = integer_definition->value._unsigned; - } - } - } + id = stream->event_id; if (id >= stream_class->events_by_id->len) { fprintf(stdout, "[error] Event id %" PRIu64 " is outside range.\n", id); diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index f078735c..b39b8690 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -159,6 +159,7 @@ int ctf_read_event(struct stream_pos *ppos, struct ctf_stream *stream) id = integer_definition->value._unsigned; } } + stream->event_id = id; /* lookup timestamp */ stream->has_timestamp = 0; @@ -220,35 +221,13 @@ int ctf_write_event(struct stream_pos *pos, struct ctf_stream *stream) { struct ctf_stream_class *stream_class = stream->stream_class; struct ctf_stream_event *event; - uint64_t id = 0; + uint64_t id; int ret; + id = stream->event_id; + /* print event header */ if (stream->stream_event_header) { - struct definition_integer *integer_definition; - struct definition *variant; - - /* lookup event id */ - integer_definition = lookup_integer(&stream->stream_event_header->p, "id", FALSE); - if (integer_definition) { - id = integer_definition->value._unsigned; - } else { - struct definition_enum *enum_definition; - - enum_definition = lookup_enum(&stream->stream_event_header->p, "id", FALSE); - if (enum_definition) { - id = enum_definition->integer->value._unsigned; - } - } - - variant = lookup_variant(&stream->stream_event_header->p, "v"); - if (variant) { - integer_definition = lookup_integer(variant, "id", FALSE); - if (integer_definition) { - id = integer_definition->value._unsigned; - } - } - ret = generic_rw(pos, &stream->stream_event_header->p); if (ret) goto error; diff --git a/include/babeltrace/ctf-ir/metadata.h b/include/babeltrace/ctf-ir/metadata.h index 61349152..b8835ec2 100644 --- a/include/babeltrace/ctf-ir/metadata.h +++ b/include/babeltrace/ctf-ir/metadata.h @@ -36,6 +36,7 @@ struct ctf_event; struct ctf_stream { struct ctf_stream_class *stream_class; uint64_t timestamp; /* Current timestamp, in ns */ + uint64_t event_id; /* Current event ID */ int has_timestamp; uint64_t stream_id; -- 2.34.1