diff --git a/lib/wp/endpoint.c b/lib/wp/endpoint.c index 3543f968..860cad1b 100644 --- a/lib/wp/endpoint.c +++ b/lib/wp/endpoint.c @@ -733,6 +733,26 @@ wp_endpoint_get_links (WpEndpoint * self) return priv->links; } +/** + * wp_endpoint_unlink: + * @self: the endpoint + * + * Unlinks all the endpoints linked to this endpoint + */ +void +wp_endpoint_unlink (WpEndpoint * self) +{ + WpEndpointPrivate *priv; + gint i; + + g_return_if_fail (WP_IS_ENDPOINT (self)); + + priv = wp_endpoint_get_instance_private (self); + + for (i = priv->links->len - 1; i >= 0; i--) + wp_endpoint_link_destroy (g_ptr_array_index (priv->links, i)); +} + typedef struct _WpEndpointLinkPrivate WpEndpointLinkPrivate; struct _WpEndpointLinkPrivate diff --git a/lib/wp/endpoint.h b/lib/wp/endpoint.h index a6cdfa81..2ef688b6 100644 --- a/lib/wp/endpoint.h +++ b/lib/wp/endpoint.h @@ -68,6 +68,7 @@ void wp_endpoint_notify_control_value (WpEndpoint * self, guint32 control_id); gboolean wp_endpoint_is_linked (WpEndpoint * self); GPtrArray * wp_endpoint_get_links (WpEndpoint * self); +void wp_endpoint_unlink (WpEndpoint * self); struct _WpEndpointLinkClass {