root / qdict.h @ 4cdbc094
History | View | Annotate | Download (2.1 kB)
1 | 41836a9f | Luiz Capitulino | /*
|
---|---|---|---|
2 | 41836a9f | Luiz Capitulino | * QDict Module
|
3 | 41836a9f | Luiz Capitulino | *
|
4 | 41836a9f | Luiz Capitulino | * Copyright (C) 2009 Red Hat Inc.
|
5 | 41836a9f | Luiz Capitulino | *
|
6 | 41836a9f | Luiz Capitulino | * Authors:
|
7 | 41836a9f | Luiz Capitulino | * Luiz Capitulino <lcapitulino@redhat.com>
|
8 | 41836a9f | Luiz Capitulino | *
|
9 | 41836a9f | Luiz Capitulino | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
10 | 41836a9f | Luiz Capitulino | * See the COPYING.LIB file in the top-level directory.
|
11 | 41836a9f | Luiz Capitulino | */
|
12 | 41836a9f | Luiz Capitulino | |
13 | fb08dde0 | Luiz Capitulino | #ifndef QDICT_H
|
14 | fb08dde0 | Luiz Capitulino | #define QDICT_H
|
15 | fb08dde0 | Luiz Capitulino | |
16 | fb08dde0 | Luiz Capitulino | #include "qobject.h" |
17 | f2e17508 | Luiz Capitulino | #include "qlist.h" |
18 | 72cf2d4f | Blue Swirl | #include "qemu-queue.h" |
19 | fb08dde0 | Luiz Capitulino | #include <stdint.h> |
20 | fb08dde0 | Luiz Capitulino | |
21 | c8bc3cd7 | Luiz Capitulino | #define QDICT_BUCKET_MAX 512 |
22 | fb08dde0 | Luiz Capitulino | |
23 | fb08dde0 | Luiz Capitulino | typedef struct QDictEntry { |
24 | fb08dde0 | Luiz Capitulino | char *key;
|
25 | fb08dde0 | Luiz Capitulino | QObject *value; |
26 | 72cf2d4f | Blue Swirl | QLIST_ENTRY(QDictEntry) next; |
27 | fb08dde0 | Luiz Capitulino | } QDictEntry; |
28 | fb08dde0 | Luiz Capitulino | |
29 | fb08dde0 | Luiz Capitulino | typedef struct QDict { |
30 | fb08dde0 | Luiz Capitulino | QObject_HEAD; |
31 | fb08dde0 | Luiz Capitulino | size_t size; |
32 | c8bc3cd7 | Luiz Capitulino | QLIST_HEAD(,QDictEntry) table[QDICT_BUCKET_MAX]; |
33 | fb08dde0 | Luiz Capitulino | } QDict; |
34 | fb08dde0 | Luiz Capitulino | |
35 | fb08dde0 | Luiz Capitulino | /* Object API */
|
36 | fb08dde0 | Luiz Capitulino | QDict *qdict_new(void);
|
37 | 0d078b2a | Luiz Capitulino | const char *qdict_entry_key(const QDictEntry *entry); |
38 | 0d078b2a | Luiz Capitulino | QObject *qdict_entry_value(const QDictEntry *entry);
|
39 | fb08dde0 | Luiz Capitulino | size_t qdict_size(const QDict *qdict);
|
40 | fb08dde0 | Luiz Capitulino | void qdict_put_obj(QDict *qdict, const char *key, QObject *value); |
41 | fb08dde0 | Luiz Capitulino | void qdict_del(QDict *qdict, const char *key); |
42 | fb08dde0 | Luiz Capitulino | int qdict_haskey(const QDict *qdict, const char *key); |
43 | fb08dde0 | Luiz Capitulino | QObject *qdict_get(const QDict *qdict, const char *key); |
44 | fb08dde0 | Luiz Capitulino | QDict *qobject_to_qdict(const QObject *obj);
|
45 | 21f800d3 | Luiz Capitulino | void qdict_iter(const QDict *qdict, |
46 | 21f800d3 | Luiz Capitulino | void (*iter)(const char *key, QObject *obj, void *opaque), |
47 | 21f800d3 | Luiz Capitulino | void *opaque);
|
48 | f2b07f35 | Luiz Capitulino | const QDictEntry *qdict_first(const QDict *qdict); |
49 | f2b07f35 | Luiz Capitulino | const QDictEntry *qdict_next(const QDict *qdict, const QDictEntry *entry); |
50 | fb08dde0 | Luiz Capitulino | |
51 | fb08dde0 | Luiz Capitulino | /* Helper to qdict_put_obj(), accepts any object */
|
52 | fb08dde0 | Luiz Capitulino | #define qdict_put(qdict, key, obj) \
|
53 | fb08dde0 | Luiz Capitulino | qdict_put_obj(qdict, key, QOBJECT(obj)) |
54 | fb08dde0 | Luiz Capitulino | |
55 | fb08dde0 | Luiz Capitulino | /* High level helpers */
|
56 | acc3b033 | Markus Armbruster | double qdict_get_double(const QDict *qdict, const char *key); |
57 | fb08dde0 | Luiz Capitulino | int64_t qdict_get_int(const QDict *qdict, const char *key); |
58 | cd4dde36 | Luiz Capitulino | int qdict_get_bool(const QDict *qdict, const char *key); |
59 | f2e17508 | Luiz Capitulino | QList *qdict_get_qlist(const QDict *qdict, const char *key); |
60 | df10ce6a | Luiz Capitulino | QDict *qdict_get_qdict(const QDict *qdict, const char *key); |
61 | fb08dde0 | Luiz Capitulino | const char *qdict_get_str(const QDict *qdict, const char *key); |
62 | fb08dde0 | Luiz Capitulino | int64_t qdict_get_try_int(const QDict *qdict, const char *key, |
63 | 83aba69e | Luiz Capitulino | int64_t def_value); |
64 | 35006ac8 | Luiz Capitulino | int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value); |
65 | fb08dde0 | Luiz Capitulino | const char *qdict_get_try_str(const QDict *qdict, const char *key); |
66 | fb08dde0 | Luiz Capitulino | |
67 | fb08dde0 | Luiz Capitulino | #endif /* QDICT_H */ |