X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fplugin%2Fplugin-so.c;h=24478f1fc761ab9f02ae8c4b0e9c12d0f7f36665;hb=2d41b99e628ef719c83f11d55d4a88aa9126a35e;hp=6760aa758159db7dd911d435257dbf6cb807baed;hpb=55bb57e083f5e14f157d3438c8ce71ecf2ccb1f1;p=babeltrace.git diff --git a/lib/plugin/plugin-so.c b/lib/plugin/plugin-so.c index 6760aa75..24478f1f 100644 --- a/lib/plugin/plugin-so.c +++ b/lib/plugin/plugin-so.c @@ -249,10 +249,11 @@ enum bt_plugin_status bt_plugin_so_init( struct comp_class_full_descriptor { const struct __bt_plugin_component_class_descriptor *descriptor; const char *description; + const char *help; bt_component_class_init_method init_method; bt_component_class_destroy_method destroy_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_query_method query_method; + bt_component_class_new_connection_method new_connection_method; struct bt_component_class_iterator_methods iterator_methods; }; @@ -365,6 +366,10 @@ enum bt_plugin_status bt_plugin_so_init( cc_full_descr->description = cur_cc_descr_attr->value.description; break; + case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP: + cc_full_descr->help = + cur_cc_descr_attr->value.help; + break; case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD: cc_full_descr->init_method = cur_cc_descr_attr->value.init_method; @@ -373,13 +378,13 @@ enum bt_plugin_status bt_plugin_so_init( cc_full_descr->destroy_method = cur_cc_descr_attr->value.destroy_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; + case BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD: + cc_full_descr->query_method = + cur_cc_descr_attr->value.query_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 = @@ -466,6 +471,16 @@ enum bt_plugin_status bt_plugin_so_init( } } + if (cc_full_descr->help) { + ret = bt_component_class_set_help(comp_class, + cc_full_descr->help); + if (ret) { + status = BT_PLUGIN_STATUS_ERROR; + BT_PUT(comp_class); + goto end; + } + } + if (cc_full_descr->init_method) { ret = bt_component_class_set_init_method(comp_class, cc_full_descr->init_method); @@ -486,6 +501,26 @@ enum bt_plugin_status bt_plugin_so_init( } } + if (cc_full_descr->query_method) { + ret = bt_component_class_set_query_method( + comp_class, cc_full_descr->query_method); + if (ret) { + status = BT_PLUGIN_STATUS_ERROR; + BT_PUT(comp_class); + goto end; + } + } + + 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) { @@ -522,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, @@ -567,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);