]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: introduce virXMLNamespace
authorJán Tomko <jtomko@redhat.com>
Tue, 20 Aug 2019 15:45:10 +0000 (17:45 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 21 Aug 2019 08:29:20 +0000 (10:29 +0200)
For various XMLs, we allow a custom namespace for passing unsupported
configurations.

Introduce a single structure to hold all the driver-specific functions
to remove duplication.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/util/virxml.h

index 6208977dd1b62b4d968fbccd6ab0f69a3a65234a..c0012d691d31cca0948a00e59ea047112475fc0b 100644 (file)
@@ -246,3 +246,17 @@ VIR_DEFINE_AUTOCLEAN_FUNC(virXPathContextNodeSave, virXPathContextNodeRestore);
 
 VIR_DEFINE_AUTOPTR_FUNC(xmlDoc, xmlFreeDoc);
 VIR_DEFINE_AUTOPTR_FUNC(xmlXPathContext, xmlXPathFreeContext);
+
+typedef int (*virXMLNamespaceParse)(xmlXPathContextPtr ctxt, void **nsdata);
+typedef void (*virXMLNamespaceFree)(void *nsdata);
+typedef int (*virXMLNamespaceFormat)(virBufferPtr buf, void *nsdata);
+typedef const char *(*virXMLNamespaceHref)(void);
+
+struct _virXMLNamespace {
+    virXMLNamespaceParse parse;
+    virXMLNamespaceFree free;
+    virXMLNamespaceFormat format;
+    virXMLNamespaceHref href;
+};
+typedef struct _virXMLNamespace virXMLNamespace;
+typedef virXMLNamespace *virXMLNamespacePtr;