ir: add bt_ctf_trace_get_stream_class_by_id()
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Mon, 27 Jul 2015 13:13:46 +0000 (09:13 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 29 Jul 2015 18:53:31 +0000 (14:53 -0400)
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
formats/ctf/ir/trace.c
include/babeltrace/ctf-ir/trace.h

index 8ff6371b516b20babfa25731e7c67ab80bde3b00..9c3cb5072a593b0e5cde93425eda3ae5b004c6fe 100644 (file)
@@ -547,6 +547,34 @@ end:
        return stream_class;
 }
 
+struct bt_ctf_stream_class *bt_ctf_trace_get_stream_class_by_id(
+               struct bt_ctf_trace *trace, uint32_t id)
+{
+       int i;
+       struct bt_ctf_stream_class *stream_class = NULL;
+
+       if (!trace) {
+               goto end;
+       }
+
+       for (i = 0; i < trace->stream_classes->len; ++i) {
+               struct bt_ctf_stream_class *stream_class_candidate;
+
+               stream_class_candidate =
+                       g_ptr_array_index(trace->stream_classes, i);
+
+               if (bt_ctf_stream_class_get_id(stream_class_candidate) ==
+                               (int64_t) id) {
+                       stream_class = stream_class_candidate;
+                       bt_ctf_get(stream_class);
+                       goto end;
+               }
+       }
+
+end:
+       return stream_class;
+}
+
 struct bt_ctf_clock *bt_ctf_trace_get_clock_by_name(
                struct bt_ctf_trace *trace, const char *name)
 {
index d85a4bead08185a57d2b01ac2d70c1a38766defc..29b60980cac2bbb37d9c52058517b27c419ca860 100644 (file)
@@ -264,6 +264,17 @@ extern int bt_ctf_trace_get_stream_class_count(struct bt_ctf_trace *trace);
 extern struct bt_ctf_stream_class *bt_ctf_trace_get_stream_class(
                struct bt_ctf_trace *trace, int index);
 
+/*
+ * bt_ctf_trace_get_stream_class_by_id: get a trace's stream class by ID.
+ *
+ * @param trace Trace instance.
+ * @param index ID of the stream class in the given trace.
+ *
+ * Return a stream class on success, NULL on error.
+ */
+extern struct bt_ctf_stream_class *bt_ctf_trace_get_stream_class_by_id(
+               struct bt_ctf_trace *trace, uint32_t id);
+
 /*
  * bt_ctf_trace_get_clock_by_name: get a trace's clock by name
  *
This page took 0.028452 seconds and 4 git commands to generate.