Hi,
On Tue, Oct 18, 2011 at 12:06:50PM +0100, Daniel P. Berrange wrote:
On Fri, Oct 07, 2011 at 11:40:46AM +0200, Christophe Fergeau wrote:
> These helper functions will be useful later on.
> ---
> examples/Makefile.am | 1 +
> libvirt-gconfig/Makefile.am | 3 +
> libvirt-gconfig/libvirt-gconfig-helpers.c | 179 +++++++++++++++++++++++++++++
> libvirt-gconfig/libvirt-gconfig-helpers.h | 48 ++++++++
> libvirt-gconfig/libvirt-gconfig-object.c | 52 ---------
> libvirt-gconfig/libvirt-gconfig.h | 2 +
> libvirt-gconfig/libvirt-gconfig.sym | 1 +
> libvirt-gobject/Makefile.am | 2 +
> 8 files changed, 236 insertions(+), 52 deletions(-)
> create mode 100644 libvirt-gconfig/libvirt-gconfig-helpers.c
> create mode 100644 libvirt-gconfig/libvirt-gconfig-helpers.h
>
> diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.h
b/libvirt-gconfig/libvirt-gconfig-helpers.h
> new file mode 100644
> index 0000000..1bdf2d0
> --- /dev/null
> +++ b/libvirt-gconfig/libvirt-gconfig-helpers.h
> @@ -0,0 +1,48 @@
> +
> +GQuark gvir_config_object_error_quark(void);
> +#define GVIR_CONFIG_OBJECT_ERROR gvir_config_object_error_quark()
> +
> +GError *gvir_xml_error_new(GQuark domain, gint code,
> + const gchar *format, ...);
> +xmlNodePtr gvir_config_xml_parse(const char *xml,
> + const char *root_node,
> + GError **err);
> +xmlNode * gvir_config_xml_get_element (xmlNode *node, ...);
> +xmlChar * gvir_config_xml_get_child_element_content (xmlNode *node,
> + const char *child_name);
> +char *gvir_config_xml_get_child_element_content_glib (xmlNode *node,
> + const char *child_name);
> diff --git a/libvirt-gconfig/libvirt-gconfig.sym
b/libvirt-gconfig/libvirt-gconfig.sym
> index 2d09c37..24407c3 100644
> --- a/libvirt-gconfig/libvirt-gconfig.sym
> +++ b/libvirt-gconfig/libvirt-gconfig.sym
> @@ -22,6 +22,7 @@ LIBVIRT_GOBJECT_0.0.1 {
> gvir_config_node_device_new;
>
> gvir_config_object_get_type;
> + gvir_config_object_error_quark;
Don't we want to also export the rest of those new APIs in
gconfig-helpers.h ?
ACK, if you tell me why they're not required, or if you add them
before pushing the patch.
At this point, I'm not sure what kind of low-level API we want to make
available to the library user (by low-level, I mean letting people directly
poke at the xmlNode wrapped in a GVirConfigObject instance). That's why I
chose not to export them for now, and to make them public if/once they are
needed.
If you think they should be exported, I'll make the change.
Christophe