QDict: Introduce qdict_get_try_bool()

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Luiz Capitulino 2010-06-07 17:25:04 -03:00
parent d02c6bd428
commit 35006ac856
2 changed files with 19 additions and 0 deletions

18
qdict.c
View File

@ -307,6 +307,24 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
return qint_get_int(qobject_to_qint(obj)); 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 * qdict_get_try_str(): Try to get a pointer to the stored string
* mapped by 'key' * mapped by 'key'

View File

@ -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); 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 qdict_get_try_int(const QDict *qdict, const char *key,
int64_t def_value); 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); const char *qdict_get_try_str(const QDict *qdict, const char *key);
#endif /* QDICT_H */ #endif /* QDICT_H */