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);
--
1.7.6.4