+ if (cc_full_descr->methods.filter.init) {
+ ret = bt_component_class_filter_set_init_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.init);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's initialization method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.finalize) {
+ ret = bt_component_class_filter_set_finalize_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.finalize);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's finalization method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.query) {
+ ret = bt_component_class_filter_set_query_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.query);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's query method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.accept_input_port_connection) {
+ ret = bt_component_class_filter_set_accept_input_port_connection_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.accept_input_port_connection);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's \"accept input port connection\" method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.accept_output_port_connection) {
+ ret = bt_component_class_filter_set_accept_output_port_connection_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.accept_output_port_connection);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's \"accept input output connection\" method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.input_port_connected) {
+ ret = bt_component_class_filter_set_input_port_connected_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.input_port_connected);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's \"input port connected\" method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.output_port_connected) {
+ ret = bt_component_class_filter_set_output_port_connected_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.output_port_connected);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's \"output port connected\" method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.msg_iter_init) {
+ ret = bt_component_class_filter_set_message_iterator_init_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.msg_iter_init);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's message iterator initialization method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.msg_iter_finalize) {
+ ret = bt_component_class_filter_set_message_iterator_finalize_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.msg_iter_finalize);
+ if (ret) {
+ BT_LOGE_STR("Cannot set filter component class's message iterator finalization method.");
+ status = BT_PLUGIN_STATUS_ERROR;
+ BT_OBJECT_PUT_REF_AND_RESET(flt_comp_class);
+ goto end;
+ }
+ }
+
+ if (cc_full_descr->methods.filter.msg_iter_seek_ns_from_origin) {
+ ret = bt_component_class_filter_set_message_iterator_seek_ns_from_origin_method(
+ flt_comp_class,
+ cc_full_descr->methods.filter.msg_iter_seek_ns_from_origin);