[libvirt] [libvirt-glib 18/23] Add gvir_config_object_get_node_content

Daniel P. Berrange berrange at redhat.com
Tue Oct 18 11:48:24 UTC 2011


On Fri, Oct 07, 2011 at 11:41:03AM +0200, Christophe Fergeau wrote:
> There will be quite a few getter functions returning a string
> contained in one of the nodes of a GVirConfigObject, so better to
> make it a one-liner to achieve this.
> ---
>  libvirt-gconfig/libvirt-gconfig-domain.c |    9 ++-------
>  libvirt-gconfig/libvirt-gconfig-object.c |   12 ++++++++++++
>  libvirt-gconfig/libvirt-gconfig-object.h |    2 ++
>  3 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain.c b/libvirt-gconfig/libvirt-gconfig-domain.c
> index 210b3fa..66ea7cb 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain.c
> @@ -140,13 +140,8 @@ GVirConfigDomain *gvir_config_domain_new(void)
>  
>  char *gvir_config_domain_get_name(GVirConfigDomain *domain)
>  {
> -    xmlNodePtr node;
> -
> -    node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(domain));
> -    if (node == NULL)
> -        return NULL;
> -
> -    return gvir_config_xml_get_child_element_content_glib(node, "name");
> +    return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(domain),
> +                                               "name");
>  }
>  
>  void gvir_config_domain_set_name(GVirConfigDomain *domain, const char *name)
> diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
> index 6fd5473..8855ff8 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object.c
> +++ b/libvirt-gconfig/libvirt-gconfig-object.c
> @@ -280,3 +280,15 @@ xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config)
>  {
>      return config->priv->node;
>  }
> +
> +char *gvir_config_object_get_node_content(GVirConfigObject *object,
> +                                          const char *node_name)
> +{
> +    xmlNodePtr node;
> +
> +    node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(object));
> +    if (node == NULL)
> +        return NULL;
> +
> +    return gvir_config_xml_get_child_element_content_glib(node, node_name);
> +}
> diff --git a/libvirt-gconfig/libvirt-gconfig-object.h b/libvirt-gconfig/libvirt-gconfig-object.h
> index 133ca9f..1a82490 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object.h
> +++ b/libvirt-gconfig/libvirt-gconfig-object.h
> @@ -66,6 +66,8 @@ gchar *gvir_config_object_to_xml(GVirConfigObject *config);
>  
>  const gchar *gvir_config_object_get_schema(GVirConfigObject *config);
>  xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config);
> +char *gvir_config_object_get_node_content(GVirConfigObject *object,
> +                                          const char *node_name);
>  
>  /* FIXME: move to a libvirt-gconfig-helpers.h file? */
>  xmlNodePtr gvir_config_object_parse(const char *xml, const char *root_node, GError **err);

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list