[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [libvirt-glib 03/23] Add getters for GVirConfig xmlNode and xmlDoc



On Fri, Oct 07, 2011 at 11:40:48AM +0200, Christophe Fergeau wrote:
> They will be useful in subclasses to access the parsed document,
> and to external users needing to directly interact with the
> generated XML.
> ---
>  libvirt-gconfig/libvirt-gconfig-object.c |   18 ++++++++++++++++++
>  libvirt-gconfig/libvirt-gconfig-object.h |    2 ++
>  libvirt-gconfig/libvirt-gconfig.sym      |    2 ++
>  3 files changed, 22 insertions(+), 0 deletions(-)
> 
> diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
> index 6f80346..52e9be0 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object.c
> +++ b/libvirt-gconfig/libvirt-gconfig-object.c
> @@ -276,3 +276,21 @@ const gchar *gvir_config_object_get_schema(GVirConfigObject *config)
>      return priv->schema;
>  }
>  
> +/* NB: the xmlDocPtr must not be freed by the caller */
> +xmlDocPtr gvir_config_object_get_xml_doc(GVirConfigObject *config, GError **error)
> +{
> +    gvir_config_object_parse(config, error);
> +    return config->priv->docHandle;
> +}
> +
> +/* FIXME: will we always have one xmlNode per GConfig object? */
> +/* FIXME: need to return the right node from subclasses */
> +/* NB: the xmlNodePtr must not be freed by the caller */
> +xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config,
> +                                           GError **error)
> +{
> +    gvir_config_object_parse(config, error);
> +    if (error)
> +        return NULL;
> +    return config->priv->docHandle->children;
> +}
> diff --git a/libvirt-gconfig/libvirt-gconfig-object.h b/libvirt-gconfig/libvirt-gconfig-object.h
> index d08e97d..a0c0489 100644
> --- a/libvirt-gconfig/libvirt-gconfig-object.h
> +++ b/libvirt-gconfig/libvirt-gconfig-object.h
> @@ -64,6 +64,8 @@ void gvir_config_object_validate(GVirConfigObject *config,
>  
>  const gchar *gvir_config_object_get_doc(GVirConfigObject *config);
>  const gchar *gvir_config_object_get_schema(GVirConfigObject *config);
> +xmlDocPtr  gvir_config_object_get_xml_doc(GVirConfigObject *config, GError **error);
> +xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config, GError **error);
>  
>  G_END_DECLS
>  
> diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
> index 24407c3..d20e73b 100644
> --- a/libvirt-gconfig/libvirt-gconfig.sym
> +++ b/libvirt-gconfig/libvirt-gconfig.sym
> @@ -26,6 +26,8 @@ LIBVIRT_GOBJECT_0.0.1 {
>  	gvir_config_object_new;
>  	gvir_config_object_get_doc;
>  	gvir_config_object_get_schema;
> +	gvir_config_object_get_xml_doc;
> +	gvir_config_object_get_xml_node;
>  	gvir_config_object_validate;
>  
>  	gvir_config_secret_get_type;

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 :|


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]