lib: rename include dir to babeltrace2
[babeltrace.git] / plugins / utils / muxer / muxer.c
index 47d790b3d9a14e59387e7d611c984077680d608e..626c437bd2faf8e9e26419a27a4c2c1c47d82622 100644 (file)
 #define BT_LOG_TAG "PLUGIN-UTILS-MUXER-FLT"
 #include "logging.h"
 
-#include <babeltrace/babeltrace-internal.h>
-#include <babeltrace/compat/uuid-internal.h>
-#include <babeltrace/babeltrace.h>
-#include <babeltrace/value-internal.h>
-#include <babeltrace/graph/component-internal.h>
-#include <babeltrace/graph/message-iterator-internal.h>
-#include <babeltrace/graph/connection-internal.h>
+#include <babeltrace2/babeltrace-internal.h>
+#include <babeltrace2/compat/uuid-internal.h>
+#include <babeltrace2/babeltrace.h>
+#include <babeltrace2/value-internal.h>
+#include <babeltrace2/graph/component-internal.h>
+#include <babeltrace2/graph/message-iterator-internal.h>
+#include <babeltrace2/graph/connection-internal.h>
 #include <plugins-common.h>
 #include <glib.h>
 #include <stdbool.h>
 #include <inttypes.h>
-#include <babeltrace/assert-internal.h>
-#include <babeltrace/common-internal.h>
+#include <babeltrace2/assert-internal.h>
+#include <babeltrace2/common-internal.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -138,10 +138,10 @@ void destroy_muxer_upstream_msg_iter(
 }
 
 static
-struct muxer_upstream_msg_iter *muxer_msg_iter_add_upstream_msg_iter(
-               struct muxer_msg_iter *muxer_msg_iter,
+int muxer_msg_iter_add_upstream_msg_iter(struct muxer_msg_iter *muxer_msg_iter,
                bt_self_component_port_input_message_iterator *self_msg_iter)
 {
+       int ret = 0;
        struct muxer_upstream_msg_iter *muxer_upstream_msg_iter =
                g_new0(struct muxer_upstream_msg_iter, 1);
 
@@ -169,10 +169,10 @@ struct muxer_upstream_msg_iter *muxer_msg_iter_add_upstream_msg_iter(
 
 error:
        g_free(muxer_upstream_msg_iter);
-       muxer_upstream_msg_iter = NULL;
+       ret = -1;
 
 end:
-       return muxer_upstream_msg_iter;
+       return ret;
 }
 
 static
@@ -505,8 +505,9 @@ int get_msg_ts_ns(struct muxer_comp *muxer_comp,
 {
        const bt_clock_snapshot *clock_snapshot = NULL;
        int ret = 0;
-       bt_clock_snapshot_state cs_state = BT_CLOCK_SNAPSHOT_STATE_KNOWN;
        bt_message_stream_activity_clock_snapshot_state sa_cs_state;
+       const bt_stream_class *stream_class = NULL;
+       bt_message_type msg_type;
 
        BT_ASSERT(msg);
        BT_ASSERT(ts_ns);
@@ -521,36 +522,72 @@ int get_msg_ts_ns(struct muxer_comp *muxer_comp,
                goto end;
        }
 
-       switch (bt_message_get_type(msg)) {
+       msg_type = bt_message_get_type(msg);
+
+       if (unlikely(msg_type == BT_MESSAGE_TYPE_PACKET_BEGINNING)) {
+               stream_class = bt_stream_borrow_class_const(
+                       bt_packet_borrow_stream_const(
+                               bt_message_packet_beginning_borrow_packet_const(
+                                       msg)));
+       } else if (unlikely(msg_type == BT_MESSAGE_TYPE_PACKET_END)) {
+               stream_class = bt_stream_borrow_class_const(
+                       bt_packet_borrow_stream_const(
+                               bt_message_packet_end_borrow_packet_const(
+                                       msg)));
+       } else if (unlikely(msg_type == BT_MESSAGE_TYPE_DISCARDED_EVENTS)) {
+               stream_class = bt_stream_borrow_class_const(
+                       bt_message_discarded_events_borrow_stream_const(msg));
+       } else if (unlikely(msg_type == BT_MESSAGE_TYPE_DISCARDED_PACKETS)) {
+               stream_class = bt_stream_borrow_class_const(
+                       bt_message_discarded_packets_borrow_stream_const(msg));
+       }
+
+       switch (msg_type) {
        case BT_MESSAGE_TYPE_EVENT:
                BT_ASSERT(bt_message_event_borrow_stream_class_default_clock_class_const(
                                msg));
-               cs_state = bt_message_event_borrow_default_clock_snapshot_const(
-                       msg, &clock_snapshot);
+               clock_snapshot = bt_message_event_borrow_default_clock_snapshot_const(
+                       msg);
                break;
        case BT_MESSAGE_TYPE_PACKET_BEGINNING:
-               BT_ASSERT(bt_message_packet_beginning_borrow_stream_class_default_clock_class_const(
-                               msg));
-               cs_state = bt_message_packet_beginning_borrow_default_clock_snapshot_const(
-                       msg, &clock_snapshot);
+               if (bt_stream_class_packets_have_beginning_default_clock_snapshot(
+                               stream_class)) {
+                       clock_snapshot = bt_message_packet_beginning_borrow_default_clock_snapshot_const(
+                               msg);
+               } else {
+                       goto no_clock_snapshot;
+               }
+
                break;
        case BT_MESSAGE_TYPE_PACKET_END:
-               BT_ASSERT(bt_message_packet_end_borrow_stream_class_default_clock_class_const(
-                               msg));
-               cs_state = bt_message_packet_end_borrow_default_clock_snapshot_const(
-                       msg, &clock_snapshot);
+               if (bt_stream_class_packets_have_end_default_clock_snapshot(
+                               stream_class)) {
+                       clock_snapshot = bt_message_packet_end_borrow_default_clock_snapshot_const(
+                               msg);
+               } else {
+                       goto no_clock_snapshot;
+               }
+
                break;
        case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
-               BT_ASSERT(bt_message_discarded_events_borrow_stream_class_default_clock_class_const(
-                               msg));
-               cs_state = bt_message_discarded_events_borrow_default_beginning_clock_snapshot_const(
-                       msg, &clock_snapshot);
+               if (bt_stream_class_discarded_events_have_default_clock_snapshots(
+                               stream_class)) {
+                       clock_snapshot = bt_message_discarded_events_borrow_beginning_default_clock_snapshot_const(
+                               msg);
+               } else {
+                       goto no_clock_snapshot;
+               }
+
                break;
        case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
-               BT_ASSERT(bt_message_discarded_packets_borrow_stream_class_default_clock_class_const(
-                               msg));
-               cs_state = bt_message_discarded_packets_borrow_default_beginning_clock_snapshot_const(
-                       msg, &clock_snapshot);
+               if (bt_stream_class_discarded_packets_have_default_clock_snapshots(
+                               stream_class)) {
+                       clock_snapshot = bt_message_discarded_packets_borrow_beginning_default_clock_snapshot_const(
+                               msg);
+               } else {
+                       goto no_clock_snapshot;
+               }
+
                break;
        case BT_MESSAGE_TYPE_STREAM_ACTIVITY_BEGINNING:
                BT_ASSERT(bt_message_stream_activity_beginning_borrow_stream_class_default_clock_class_const(
@@ -573,9 +610,8 @@ int get_msg_ts_ns(struct muxer_comp *muxer_comp,
 
                break;
        case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
-               cs_state =
-                       bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const(
-                               msg, &clock_snapshot);
+               clock_snapshot = bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const(
+                       msg);
                break;
        default:
                /* All the other messages have a higher priority */
@@ -584,7 +620,6 @@ int get_msg_ts_ns(struct muxer_comp *muxer_comp,
                goto end;
        }
 
-       BT_ASSERT(cs_state == BT_CLOCK_SNAPSHOT_STATE_KNOWN);
        ret = bt_clock_snapshot_get_ns_from_origin(clock_snapshot, ts_ns);
        if (ret) {
                BT_LOGE("Cannot get nanoseconds from Epoch of clock snapshot: "
@@ -818,16 +853,6 @@ int validate_new_stream_clock_class(struct muxer_msg_iter *muxer_msg_iter,
                goto end;
        }
 
-       if (!bt_stream_class_default_clock_is_always_known(stream_class)) {
-               BT_LOGE("Stream's default clock is not always known: "
-                       "stream-class-addr=%p, stream-class-name=\"%s\", "
-                       "stream-class-id=%" PRIu64,
-                       stream_class, bt_stream_class_get_name(stream_class),
-                       bt_stream_class_get_id(stream_class));
-               ret = -1;
-               goto end;
-       }
-
        ret = validate_clock_class(muxer_msg_iter, muxer_comp, clock_class);
 
 end:
@@ -907,20 +932,9 @@ muxer_msg_iter_youngest_upstream_msg_iter(
                } else if (unlikely(bt_message_get_type(msg) ==
                                BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY)) {
                        const bt_clock_snapshot *cs;
-                       bt_clock_snapshot_state cs_state;
-
-                       cs_state = bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const(
-                               msg, &cs);
-
-                       if (cs_state != BT_CLOCK_SNAPSHOT_STATE_KNOWN) {
-                               BT_LOGE("Message iterator inactivity message's "
-                                       "default clock snapshot is unknown: "
-                                       "msg-addr=%p",
-                                       msg);
-                               status = BT_SELF_MESSAGE_ITERATOR_STATUS_ERROR;
-                               goto end;
-                       }
 
+                       cs = bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const(
+                               msg);
                        ret = validate_clock_class(muxer_msg_iter, muxer_comp,
                                bt_clock_snapshot_borrow_clock_class_const(cs));
                        if (ret) {
@@ -1206,7 +1220,6 @@ int muxer_msg_iter_init_upstream_iterators(struct muxer_comp *muxer_comp,
 
        for (i = 0; i < count; i++) {
                bt_self_component_port_input_message_iterator *upstream_msg_iter;
-               struct muxer_upstream_msg_iter *muxer_upstream_msg_iter;
                bt_self_component_port_input *self_port =
                        bt_self_component_filter_borrow_input_port_by_index(
                                muxer_comp->self_comp, i);
@@ -1231,14 +1244,12 @@ int muxer_msg_iter_init_upstream_iterators(struct muxer_comp *muxer_comp,
                        goto end;
                }
 
-               muxer_upstream_msg_iter =
-                       muxer_msg_iter_add_upstream_msg_iter(
-                               muxer_msg_iter, upstream_msg_iter);
+               ret = muxer_msg_iter_add_upstream_msg_iter(muxer_msg_iter,
+                       upstream_msg_iter);
                bt_self_component_port_input_message_iterator_put_ref(
                        upstream_msg_iter);
-               if (!muxer_upstream_msg_iter) {
+               if (ret) {
                        /* muxer_msg_iter_add_upstream_msg_iter() logs errors */
-                       ret = -1;
                        goto end;
                }
        }
This page took 0.025944 seconds and 4 git commands to generate.