[libvirt] [libvirt-glib 2/4] Add gvir_config_object_delete_children

Christophe Fergeau cfergeau at redhat.com
Wed Jan 18 15:50:42 UTC 2012


---
 libvirt-gconfig/libvirt-gconfig-object-private.h |    1 +
 libvirt-gconfig/libvirt-gconfig-object.c         |   13 +++++++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/libvirt-gconfig/libvirt-gconfig-object-private.h b/libvirt-gconfig/libvirt-gconfig-object-private.h
index 6d01e26..922b0f3 100644
--- a/libvirt-gconfig/libvirt-gconfig-object-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-object-private.h
@@ -72,6 +72,7 @@ void gvir_config_object_replace_child_with_attribute(GVirConfigObject *object,
                                                      const char *attr_value);
 void gvir_config_object_delete_child(GVirConfigObject *object,
                                      const char *child_name);
+void gvir_config_object_delete_children(GVirConfigObject *object, const char *child_name);
 void gvir_config_object_set_child(GVirConfigObject *object,
                                   xmlNodePtr child);
 
diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
index 7fb8b69..dbb63a5 100644
--- a/libvirt-gconfig/libvirt-gconfig-object.c
+++ b/libvirt-gconfig/libvirt-gconfig-object.c
@@ -493,9 +493,22 @@ gvir_config_object_delete_child(GVirConfigObject *object,
                                      (gpointer)child_name);
 }
 
+static gboolean remove_always(xmlNodePtr node, gpointer opaque)
+{
+    maybe_unlink_node(node, opaque);
 
+    return TRUE;
 }
 
+G_GNUC_INTERNAL void
+gvir_config_object_delete_children(GVirConfigObject *object, const char *child_name)
+{
+    g_return_if_fail(GVIR_CONFIG_IS_OBJECT(object));
+    g_return_if_fail(child_name != NULL);
+
+    gvir_config_object_foreach_child(object, NULL, remove_always,
+                                     (gpointer)child_name);
+}
 
 G_GNUC_INTERNAL void
 gvir_config_object_set_node_content(GVirConfigObject *object,
-- 
1.7.7.5




More information about the libvir-list mailing list