lib: remove internal stream destroy listener API
[babeltrace.git] / lib / graph / component-class-sink-colander.c
index 25176ea35a8e183527b3be3b5963ac548dcbf344..e9e23d54ac065a069fa5dc917f48e12b7aa98f67 100644 (file)
 #include <babeltrace/graph/private-component-sink.h>
 #include <babeltrace/graph/private-port.h>
 #include <babeltrace/graph/private-connection.h>
+#include <babeltrace/graph/private-connection-notification-iterator.h>
 #include <babeltrace/graph/private-component.h>
 #include <babeltrace/graph/component-class-sink-colander-internal.h>
+#include <babeltrace/assert-internal.h>
 #include <glib.h>
-#include <assert.h>
 
 static
 struct bt_component_class *colander_comp_cls;
@@ -52,7 +53,6 @@ enum bt_component_status colander_init(
        struct colander_data *colander_data = NULL;
        struct bt_component_class_sink_colander_data *user_provided_data =
                init_method_data;
-       const enum bt_notification_type *notif_type;
 
        if (!init_method_data) {
                BT_LOGW_STR("Component initialization method data is NULL.");
@@ -68,30 +68,6 @@ enum bt_component_status colander_init(
        }
 
        colander_data->user_notif = user_provided_data->notification;
-
-       if (user_provided_data->notification_types) {
-               notif_type = user_provided_data->notification_types;
-               unsigned long count;
-
-               while (*notif_type != BT_NOTIFICATION_TYPE_SENTINEL) {
-                       notif_type++;
-               }
-
-               count = notif_type - user_provided_data->notification_types + 1;
-
-               colander_data->notif_types =
-                       g_new0(enum bt_notification_type, count);
-               if (!colander_data->notif_types) {
-                       BT_LOGE_STR("Failed to allocate an array of notification types.");
-                       status = BT_COMPONENT_STATUS_NOMEM;
-                       goto end;
-               }
-
-               memcpy(colander_data->notif_types,
-                       user_provided_data->notification_types,
-                       count * sizeof(enum bt_notification_type));
-       }
-
        status = bt_private_component_sink_add_input_private_port(
                priv_comp, "in", NULL, NULL);
        if (status != BT_COMPONENT_STATUS_OK) {
@@ -134,12 +110,11 @@ void colander_port_connected(struct bt_private_component *priv_comp,
        struct colander_data *colander_data =
                bt_private_component_get_user_data(priv_comp);
 
-       assert(priv_conn);
-       assert(colander_data);
+       BT_ASSERT(priv_conn);
+       BT_ASSERT(colander_data);
        BT_PUT(colander_data->notif_iter);
        conn_status = bt_private_connection_create_notification_iterator(
-               priv_conn, colander_data->notif_types,
-               &colander_data->notif_iter);
+               priv_conn, &colander_data->notif_iter);
        if (conn_status) {
                BT_LOGE("Cannot create notification iterator from connection: "
                        "comp-addr=%p, conn-addr=%p", priv_comp, priv_conn);
@@ -160,7 +135,7 @@ enum bt_component_status colander_consume(
        struct colander_data *colander_data =
                bt_private_component_get_user_data(priv_comp);
 
-       assert(colander_data);
+       BT_ASSERT(colander_data);
 
        if (!colander_data->notif_iter) {
                BT_LOGW("Trying to consume without an upstream notification iterator: "
@@ -168,8 +143,8 @@ enum bt_component_status colander_consume(
                goto end;
        }
 
-       notif_iter_status = bt_notification_iterator_next(
-               colander_data->notif_iter);
+       notif_iter_status = bt_private_connection_notification_iterator_next(
+               colander_data->notif_iter, &notif);
        switch (notif_iter_status) {
        case BT_NOTIFICATION_ITERATOR_STATUS_CANCELED:
                status = BT_COMPONENT_STATUS_OK;
@@ -187,9 +162,7 @@ enum bt_component_status colander_consume(
                goto end;
        }
 
-       notif = bt_notification_iterator_get_notification(
-               colander_data->notif_iter);
-       assert(notif);
+       BT_ASSERT(notif);
 
 end:
        /* Move notification to user's pointer, even if NULL. */
This page took 0.02834 seconds and 4 git commands to generate.