Git init
[pkgs/e/elektra.git] / examples / reference.c
1 #include <kdb.h>
2 #include <stdio.h>
3
4 void f(Key *k)
5 {
6         printf ("\tf called with %s\n", keyName(k));
7         keySetName (k, "user/delete");
8         keyDel (k);
9 }
10
11 void h(Key *k)
12 {
13         printf ("\th called with %s\n", keyName(k));
14         keyIncRef (k);
15
16         f(k);
17
18         keyDecRef (k);
19 }
20
21 int main(void)
22 {
23         Key *k = keyNew(0);
24         printf ("key has ref %d\n", keyGetRef(k));
25
26         f(k);
27         printf ("key is now deleted\n");
28
29         k = keyNew(0);
30         keyIncRef (k);
31         printf ("key has ref %d\n", keyGetRef(k));
32
33         f(k);
34         printf ("key has now name %s\n", keyName(k));
35
36         f(k);
37
38         keyDecRef (k);
39         printf ("key has ref %d", keyGetRef(k));
40         keyDel (k);
41         printf ("key is now deleted\n");
42
43         k = keyNew(0);
44         h(k);
45         keyDel (k);
46         printf ("key is now deleted\n");
47
48         return 0;
49 }