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;
};
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 =
}
}
+ 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) {
}
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,
}
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);