Mercurial > dovecot > core-2.2
annotate src/lib-dict/dict-register.c @ 18649:ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 12 May 2015 19:12:11 +0300 |
parents | 3009a1a6f6d5 |
children | 0f22db71df7a |
rev | line source |
---|---|
18137 | 1 /* Copyright (c) 2013-2015 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 } |