]> git.proxmox.com Git - qemu.git/commitdiff
QDict: Introduce qdict_get_try_bool()
authorLuiz Capitulino <lcapitulino@redhat.com>
Mon, 7 Jun 2010 20:25:04 +0000 (17:25 -0300)
committerLuiz Capitulino <lcapitulino@redhat.com>
Thu, 1 Jul 2010 17:27:13 +0000 (14:27 -0300)
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
qdict.c
qdict.h

diff --git a/qdict.c b/qdict.c
index a28a0a9f97fd7ff6f1546e1efa63cd4ea542aa1d..dee0fb447c4f74d223752945a801729219d927e9 100644 (file)
--- a/qdict.c
+++ b/qdict.c
@@ -307,6 +307,24 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
     return qint_get_int(qobject_to_qint(obj));
 }
 
+/**
+ * qdict_get_try_bool(): Try to get a bool mapped by 'key'
+ *
+ * Return bool mapped by 'key', if it is not present in the
+ * dictionary or if the stored object is not of QBool type
+ * 'def_value' will be returned.
+ */
+int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value)
+{
+    QObject *obj;
+
+    obj = qdict_get(qdict, key);
+    if (!obj || qobject_type(obj) != QTYPE_QBOOL)
+        return def_value;
+
+    return qbool_get_int(qobject_to_qbool(obj));
+}
+
 /**
  * qdict_get_try_str(): Try to get a pointer to the stored string
  * mapped by 'key'
diff --git a/qdict.h b/qdict.h
index 0e7a43fcb946cf4db823054b4e12647e0fccbb3f..929d8d22f50bde2370d89060b29fb083a548d814 100644 (file)
--- a/qdict.h
+++ b/qdict.h
@@ -61,6 +61,7 @@ QDict *qdict_get_qdict(const QDict *qdict, const char *key);
 const char *qdict_get_str(const QDict *qdict, const char *key);
 int64_t qdict_get_try_int(const QDict *qdict, const char *key,
                           int64_t def_value);
+int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value);
 const char *qdict_get_try_str(const QDict *qdict, const char *key);
 
 #endif /* QDICT_H */