- enum bt_connection_status conn_status;
- struct bt_private_connection *priv_conn =
- bt_private_port_get_private_connection(self_priv_port);
- struct colander_data *colander_data =
- bt_private_component_get_user_data(priv_comp);
-
- assert(priv_conn);
- assert(colander_data);
- BT_PUT(colander_data->notif_iter);
- conn_status = bt_private_connection_create_notification_iterator(
- priv_conn, NULL, &colander_data->notif_iter);
- if (conn_status) {
- BT_LOGE("Cannot create notification iterator from connection: "
- "comp-addr=%p, conn-addr=%p", priv_comp, priv_conn);
+ enum bt_self_component_status status = BT_SELF_COMPONENT_STATUS_OK;
+ struct bt_component_class_sink_colander_priv_data *colander_data =
+ bt_self_component_get_data(
+ bt_self_component_sink_as_self_component(self_comp));
+
+ struct bt_self_component_port_input *self_port =
+ bt_self_component_sink_borrow_input_port_by_name(self_comp, "in");
+ BT_ASSERT(self_port);
+
+ BT_ASSERT(colander_data);
+ BT_OBJECT_PUT_REF_AND_RESET(colander_data->msg_iter);
+ colander_data->msg_iter =
+ bt_self_component_port_input_message_iterator_create(
+ self_port);
+ if (!colander_data->msg_iter) {
+ BT_LIB_LOGE("Cannot create message iterator on "
+ "self component input port: %![port-]+p",
+ self_port);
+ status = BT_SELF_COMPONENT_STATUS_NOMEM;