annotate src/lib-dict-extra/dict-register.c @ 20065:50d86fbcfd28

Split parts of lib-dict into lib-dict-extra. Otherwise there's a circular dependency because lib-dict/dict-fs.c depends on lib-fs, while lib-fs/fs-dict.c depends on lib-dict. This becomes a problem when compiling --without-shared-libs, although for some reason it works for me while linking the Dovecot core, but not when linking external plugins.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 21 Apr 2016 18:51:57 +0300
parents src/lib-dict/dict-register.c@0f22db71df7a
children 2e2563132d5f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19552
0f22db71df7a global: freshen copyright
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 18649
diff changeset
1 /* Copyright (c) 2013-2016 Dovecot authors, see the included COPYING file */
17043
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "lib.h"
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 #include "dict-private.h"
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5
18649
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
6 static int refcount = 0;
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
7
17043
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 void dict_drivers_register_builtin(void)
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 {
18649
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
10 if (refcount++ > 0)
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
11 return;
17043
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 dict_driver_register(&dict_driver_client);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 dict_driver_register(&dict_driver_file);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 dict_driver_register(&dict_driver_fs);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 dict_driver_register(&dict_driver_memcached);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 dict_driver_register(&dict_driver_memcached_ascii);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 dict_driver_register(&dict_driver_redis);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 }
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 void dict_drivers_unregister_builtin(void)
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 {
18649
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
22 if (--refcount > 0)
ac259cd62fbc lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents: 18137
diff changeset
23 return;
17043
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 dict_driver_unregister(&dict_driver_client);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 dict_driver_unregister(&dict_driver_file);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26 dict_driver_unregister(&dict_driver_fs);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 dict_driver_unregister(&dict_driver_memcached);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 dict_driver_unregister(&dict_driver_memcached_ascii);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 dict_driver_unregister(&dict_driver_redis);
773e9ce608ed lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 }