Replace add_iterator methods by a single new_connection method
[babeltrace.git] / lib / plugin / plugin-so.c
index 83c5e10ef02af4de54e95703596c6265205dece3..24478f1fc761ab9f02ae8c4b0e9c12d0f7f36665 100644 (file)
@@ -253,8 +253,7 @@ enum bt_plugin_status bt_plugin_so_init(
                bt_component_class_init_method init_method;
                bt_component_class_destroy_method destroy_method;
                bt_component_class_query_method query_method;
-               bt_component_class_filter_add_iterator_method filter_add_iterator_method;
-               bt_component_class_sink_add_iterator_method sink_add_iterator_method;
+               bt_component_class_new_connection_method new_connection_method;
                struct bt_component_class_iterator_methods iterator_methods;
        };
 
@@ -383,13 +382,9 @@ enum bt_plugin_status bt_plugin_so_init(
                                        cc_full_descr->query_method =
                                                cur_cc_descr_attr->value.query_method;
                                        break;
-                               case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FILTER_ADD_ITERATOR_METHOD:
-                                       cc_full_descr->filter_add_iterator_method =
-                                               cur_cc_descr_attr->value.filter_add_iterator_method;
-                                       break;
-                               case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_SINK_ADD_ITERATOR_METHOD:
-                                       cc_full_descr->sink_add_iterator_method =
-                                               cur_cc_descr_attr->value.sink_add_iterator_method;
+                               case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NEW_CONNECTION_METHOD:
+                                       cc_full_descr->new_connection_method =
+                                               cur_cc_descr_attr->value.new_connection_method;
                                        break;
                                case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_INIT_METHOD:
                                        cc_full_descr->iterator_methods.init =
@@ -516,6 +511,16 @@ enum bt_plugin_status bt_plugin_so_init(
                        }
                }
 
+               if (cc_full_descr->new_connection_method) {
+                       ret = bt_component_class_set_new_connection_method(
+                               comp_class, cc_full_descr->new_connection_method);
+                       if (ret) {
+                               status = BT_PLUGIN_STATUS_ERROR;
+                               BT_PUT(comp_class);
+                               goto end;
+                       }
+               }
+
                switch (cc_full_descr->descriptor->type) {
                case BT_COMPONENT_CLASS_TYPE_SOURCE:
                        if (cc_full_descr->iterator_methods.init) {
@@ -552,17 +557,6 @@ enum bt_plugin_status bt_plugin_so_init(
                        }
                        break;
                case BT_COMPONENT_CLASS_TYPE_FILTER:
-                       if (cc_full_descr->filter_add_iterator_method) {
-                               ret = bt_component_class_filter_set_add_iterator_method(
-                                       comp_class,
-                                       cc_full_descr->filter_add_iterator_method);
-                               if (ret) {
-                                       status = BT_PLUGIN_STATUS_ERROR;
-                                       BT_PUT(comp_class);
-                                       goto end;
-                               }
-                       }
-
                        if (cc_full_descr->iterator_methods.init) {
                                ret = bt_component_class_filter_set_notification_iterator_init_method(
                                        comp_class,
@@ -597,16 +591,6 @@ enum bt_plugin_status bt_plugin_so_init(
                        }
                        break;
                case BT_COMPONENT_CLASS_TYPE_SINK:
-                       if (cc_full_descr->sink_add_iterator_method) {
-                               ret = bt_component_class_sink_set_add_iterator_method(
-                                       comp_class,
-                                       cc_full_descr->sink_add_iterator_method);
-                               if (ret) {
-                                       status = BT_PLUGIN_STATUS_ERROR;
-                                       BT_PUT(comp_class);
-                                       goto end;
-                               }
-                       }
                        break;
                default:
                        assert(false);
This page took 0.025609 seconds and 4 git commands to generate.