From 0863f950997dfe2342c2f7f78c5fafbf255b90ac Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Mon, 16 Mar 2015 19:05:28 -0400 Subject: [PATCH] ir: add bt_ctf_stream_class_get_event_class_by_id() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- formats/ctf/ir/stream-class.c | 24 ++++++++++++++++++++++++ include/babeltrace/ctf-ir/stream-class.h | 12 ++++++++++++ 2 files changed, 36 insertions(+) diff --git a/formats/ctf/ir/stream-class.c b/formats/ctf/ir/stream-class.c index 6ad2cfa1..409c5ab0 100644 --- a/formats/ctf/ir/stream-class.c +++ b/formats/ctf/ir/stream-class.c @@ -335,6 +335,30 @@ end: return event_class; } +struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_id( + struct bt_ctf_stream_class *stream_class, uint32_t id) +{ + size_t i; + struct bt_ctf_event_class *event_class = NULL; + + if (!stream_class) { + goto end; + } + + for (i = 0; i < stream_class->event_classes->len; i++) { + struct bt_ctf_event_class *current_event_class = + g_ptr_array_index(stream_class->event_classes, i); + + if (bt_ctf_event_class_get_id(current_event_class) == id) { + event_class = current_event_class; + bt_ctf_event_class_get(event_class); + goto end; + } + } +end: + return event_class; +} + struct bt_ctf_field_type *bt_ctf_stream_class_get_packet_context_type( struct bt_ctf_stream_class *stream_class) { diff --git a/include/babeltrace/ctf-ir/stream-class.h b/include/babeltrace/ctf-ir/stream-class.h index bf5f577c..a78437b2 100644 --- a/include/babeltrace/ctf-ir/stream-class.h +++ b/include/babeltrace/ctf-ir/stream-class.h @@ -190,6 +190,18 @@ extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class( extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_name( struct bt_ctf_stream_class *stream_class, const char *name); +/* + * bt_ctf_stream_class_get_event_class_by_name: Get stream class event class by + * ID. + * + * @param stream_class Stream class. + * @param id Event class ID. + * + * Returns event class, NULL on error. + */ +extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_id( + struct bt_ctf_stream_class *stream_class, uint32_t id); + /* * bt_ctf_stream_class_get_packet_context_type: get the stream class' packet * context type. -- 2.34.1