]>
Commit | Line | Data |
---|---|---|
b4b594a3 JH |
1 | #include "cache.h" |
2 | #include "prio-queue.h" | |
3 | ||
4 | static int intcmp(const void *va, const void *vb, void *data) | |
5 | { | |
6 | const int *a = va, *b = vb; | |
7 | return *a - *b; | |
8 | } | |
9 | ||
10 | static void show(int *v) | |
11 | { | |
12 | if (!v) | |
13 | printf("NULL\n"); | |
14 | else | |
15 | printf("%d\n", *v); | |
16 | free(v); | |
17 | } | |
18 | ||
19 | int main(int argc, char **argv) | |
20 | { | |
21 | struct prio_queue pq = { intcmp }; | |
22 | ||
23 | while (*++argv) { | |
24 | if (!strcmp(*argv, "get")) | |
25 | show(prio_queue_get(&pq)); | |
26 | else if (!strcmp(*argv, "dump")) { | |
27 | int *v; | |
28 | while ((v = prio_queue_get(&pq))) | |
29 | show(v); | |
30 | } | |
31 | else { | |
32 | int *v = malloc(sizeof(*v)); | |
33 | *v = atoi(*argv); | |
34 | prio_queue_put(&pq, v); | |
35 | } | |
36 | } | |
37 | ||
38 | return 0; | |
39 | } |