gvir_config_object_set_attribute() converts (TRUE, FALSE) to ("yes",
"no"),
but we don't have the corresponding getter. This commit adds this.
---
libvirt-gconfig/libvirt-gconfig-object-private.h | 4 ++++
libvirt-gconfig/libvirt-gconfig-object.c | 20 ++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/libvirt-gconfig/libvirt-gconfig-object-private.h
b/libvirt-gconfig/libvirt-gconfig-object-private.h
index 2ec358b..e91c4ef 100644
--- a/libvirt-gconfig/libvirt-gconfig-object-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-object-private.h
@@ -53,6 +53,10 @@ gint gvir_config_object_get_attribute_genum(GVirConfigObject *object,
const char *attr_name,
GType enum_type,
gint default_value);
+gboolean gvir_config_object_get_attribute_boolean(GVirConfigObject *object,
+ const char *node_name,
+ const char *attr_name,
+ gboolean default_value);
void gvir_config_object_set_node_content(GVirConfigObject *object,
const char *node_name,
const char *value);
diff --git a/libvirt-gconfig/libvirt-gconfig-object.c
b/libvirt-gconfig/libvirt-gconfig-object.c
index a8025e6..5557165 100644
--- a/libvirt-gconfig/libvirt-gconfig-object.c
+++ b/libvirt-gconfig/libvirt-gconfig-object.c
@@ -684,6 +684,26 @@ gvir_config_object_get_attribute_uint64(GVirConfigObject *object,
return g_ascii_strtoull(str, NULL, 0);
}
+
+G_GNUC_INTERNAL gboolean
+gvir_config_object_get_attribute_boolean(GVirConfigObject *object,
+ const char *node_name,
+ const char *attr_name,
+ gboolean default_value)
+{
+ const char *str;
+
+ str = gvir_config_object_get_attribute(object, node_name, attr_name);
+ if (g_strcmp0(str, "yes") == 0) {
+ return TRUE;
+ } else if (g_strcmp0(str, "no") == 0) {
+ return FALSE;
+ } else {
+ return default_value;
+ }
+}
+
+
GVirConfigObject *gvir_config_object_new_from_xml(GType type,
const char *root_name,
const char *schema,
--
1.8.4.2