X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fplugin%2Fplugin-so.c;h=77c29c13b6e8104c8c30978b13dfe7a68ca107b0;hb=0d8b4d8edb6b11ddd7f4e6adc77b9390a0db0b20;hp=2e528ea063d7943f6416c97ae7e66a21130df452;hpb=3228cc1db0ba3ff2b9007de3872fe61b66502493;p=babeltrace.git diff --git a/lib/plugin/plugin-so.c b/lib/plugin/plugin-so.c index 2e528ea0..77c29c13 100644 --- a/lib/plugin/plugin-so.c +++ b/lib/plugin/plugin-so.c @@ -254,6 +254,7 @@ enum bt_plugin_status bt_plugin_so_init( bt_component_class_finalize_method finalize_method; bt_component_class_query_method query_method; bt_component_class_accept_port_connection_method accept_port_connection_method; + bt_component_class_port_connected_method port_connected_method; bt_component_class_port_disconnected_method port_disconnected_method; struct bt_component_class_iterator_methods iterator_methods; }; @@ -387,6 +388,10 @@ enum bt_plugin_status bt_plugin_so_init( cc_full_descr->accept_port_connection_method = cur_cc_descr_attr->value.accept_port_connection_method; break; + case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_PORT_CONNECTED_METHOD: + cc_full_descr->port_connected_method = + cur_cc_descr_attr->value.port_connected_method; + break; case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_PORT_DISCONNECTED_METHOD: cc_full_descr->port_disconnected_method = cur_cc_descr_attr->value.port_disconnected_method; @@ -524,6 +529,16 @@ enum bt_plugin_status bt_plugin_so_init( } } + if (cc_full_descr->port_connected_method) { + ret = bt_component_class_set_port_connected_method( + comp_class, cc_full_descr->port_connected_method); + if (ret) { + status = BT_PLUGIN_STATUS_ERROR; + BT_PUT(comp_class); + goto end; + } + } + if (cc_full_descr->port_disconnected_method) { ret = bt_component_class_set_port_disconnected_method( comp_class, cc_full_descr->port_disconnected_method);