
Hey, Looks good to me, one addition below: On Thu, Jun 05, 2014 at 08:42:24AM +0200, Cédric Bosdonnat wrote:
diff --git a/libvirt-gconfig/libvirt-gconfig-capabilities-host.c b/libvirt-gconfig/libvirt-gconfig-capabilities-host.c index 6a15206..46d2bc1 100644 --- a/libvirt-gconfig/libvirt-gconfig-capabilities-host.c +++ b/libvirt-gconfig/libvirt-gconfig-capabilities-host.c @@ -77,3 +77,54 @@ gvir_config_capabilities_host_get_cpu(GVirConfigCapabilitiesHost *host)
return GVIR_CONFIG_CAPABILITIES_CPU(object); } + +struct GetSecModelData { + GVirConfigXmlDoc *doc; + const gchar *schema; + GList *secmodels; + GType type; +}; + +static gboolean add_secmodel(xmlNodePtr node, gpointer opaque) +{ + struct GetSecModelData* data = (struct GetSecModelData*)opaque; + GVirConfigObject *secmodel; + + if (g_strcmp0((const gchar *)node->name, "secmodel") != 0) + return TRUE; + + secmodel = gvir_config_object_new_from_tree + (data->type, + data->doc, + data->schema, + node); + if (secmodel != NULL) + data->secmodels = g_list_append(data->secmodels, secmodel); + else + g_debug("Failed to parse %s node", node->name); + + return TRUE; +} +
For good introspection, you will need something like this here: diff --git a/libvirt-gconfig/libvirt-gconfig-capabilities-host.c b/libvirt-gconfig/libvirt-gconfig-capabilities-host.c index 07719d0..a5d58e8 100644 --- a/libvirt-gconfig/libvirt-gconfig-capabilities-host.c +++ b/libvirt-gconfig/libvirt-gconfig-capabilities-host.c @@ -106,6 +106,15 @@ static gboolean add_secmodel(xmlNodePtr node, gpointer opaque) return TRUE; } +/** + * gvir_config_capabilities_host_get_secmodels: + * @host: a #GVirConfigCapabilitiesHost + * + * Get the security models listed in @host capabilities. + * + * Returns: (element-type LibvirtGConfig.CapabilitiesHostSecModel) (transfer full): + * a newly allocated #GList of #GVirConfigCapabilitiesHostSecModel. + */ GList * gvir_config_capabilities_host_get_secmodels(GVirConfigCapabilitiesHost *host) { ACK with this (or a variant of this if you want to improve the documentation text) squashed in. Christophe