Mercurial > dovecot > original-hg > dovecot-1.2
annotate src/lib-dict/dict-private.h @ 9287:d7251058200c HEAD
maildir+deliver: Add all existing messages to uidlist if it doesn't exist yet.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 07 Aug 2009 13:24:13 -0400 |
parents | eed86bcc33aa |
children | a1b92a251bb9 |
rev | line source |
---|---|
6410
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
4517
diff
changeset
|
1 #ifndef DICT_PRIVATE_H |
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
4517
diff
changeset
|
2 #define DICT_PRIVATE_H |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "dict.h" |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 struct dict_vfuncs { |
4517
e661182eab75
Berkeley DB dict support is now enabled only when using --with-db configure option.
Timo Sirainen <timo.sirainen@movial.fi>
parents:
4516
diff
changeset
|
7 struct dict *(*init)(struct dict *dict_driver, const char *uri, |
4516
aa2f73a4df26
Dictionary changes: Added support for defining value's type. Key is still always a string. Added support for sorting the iteration replies. Added dict_unset(). Added Berkeley DB support. Most of the code written by Tianyan Liu.
Timo Sirainen <timo.sirainen@movial.fi>
parents:
4511
diff
changeset
|
8 enum dict_data_type value_type, |
9174
eed86bcc33aa
dict proxy: Use base_dir as the default dict-server location.
Timo Sirainen <tss@iki.fi>
parents:
8660
diff
changeset
|
9 const char *username, const char *base_dir); |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 void (*deinit)(struct dict *dict); |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 |
3787
40600601502e
Added dictinary lookup server and a "proxy" dict implementation to talk to
Timo Sirainen <tss@iki.fi>
parents:
3737
diff
changeset
|
12 int (*lookup)(struct dict *dict, pool_t pool, |
40600601502e
Added dictinary lookup server and a "proxy" dict implementation to talk to
Timo Sirainen <tss@iki.fi>
parents:
3737
diff
changeset
|
13 const char *key, const char **value_r); |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 struct dict_iterate_context * |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 (*iterate_init)(struct dict *dict, const char *path, |
4516
aa2f73a4df26
Dictionary changes: Added support for defining value's type. Key is still always a string. Added support for sorting the iteration replies. Added dict_unset(). Added Berkeley DB support. Most of the code written by Tianyan Liu.
Timo Sirainen <timo.sirainen@movial.fi>
parents:
4511
diff
changeset
|
17 enum dict_iterate_flags flags); |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 int (*iterate)(struct dict_iterate_context *ctx, |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 const char **key_r, const char **value_r); |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 void (*iterate_deinit)(struct dict_iterate_context *ctx); |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 struct dict_transaction_context *(*transaction_init)(struct dict *dict); |
8660
d8a56ea9f408
Added dict_transaction_commit_async().
Timo Sirainen <tss@iki.fi>
parents:
8300
diff
changeset
|
23 int (*transaction_commit)(struct dict_transaction_context *ctx, |
d8a56ea9f408
Added dict_transaction_commit_async().
Timo Sirainen <tss@iki.fi>
parents:
8300
diff
changeset
|
24 bool async); |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 void (*transaction_rollback)(struct dict_transaction_context *ctx); |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
26 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 void (*set)(struct dict_transaction_context *ctx, |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 const char *key, const char *value); |
4516
aa2f73a4df26
Dictionary changes: Added support for defining value's type. Key is still always a string. Added support for sorting the iteration replies. Added dict_unset(). Added Berkeley DB support. Most of the code written by Tianyan Liu.
Timo Sirainen <timo.sirainen@movial.fi>
parents:
4511
diff
changeset
|
29 void (*unset)(struct dict_transaction_context *ctx, |
aa2f73a4df26
Dictionary changes: Added support for defining value's type. Key is still always a string. Added support for sorting the iteration replies. Added dict_unset(). Added Berkeley DB support. Most of the code written by Tianyan Liu.
Timo Sirainen <timo.sirainen@movial.fi>
parents:
4511
diff
changeset
|
30 const char *key); |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 void (*atomic_inc)(struct dict_transaction_context *ctx, |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 const char *key, long long diff); |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 }; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 struct dict { |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 const char *name; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 struct dict_vfuncs v; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 }; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 struct dict_iterate_context { |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 struct dict *dict; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 }; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 struct dict_transaction_context { |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 struct dict *dict; |
4511
3f808dd8f568
If invalid key is given to dict_set() or dict_atomic_inc() fail the whole
Timo Sirainen <tss@iki.fi>
parents:
3967
diff
changeset
|
47 |
3f808dd8f568
If invalid key is given to dict_set() or dict_atomic_inc() fail the whole
Timo Sirainen <tss@iki.fi>
parents:
3967
diff
changeset
|
48 unsigned int changed:1; |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 }; |
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 |
8300
9d963e3bbe65
Added a simple flat file dict backend.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
51 extern struct dict dict_driver_file; |
9d963e3bbe65
Added a simple flat file dict backend.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
52 extern struct dict dict_driver_client; |
9d963e3bbe65
Added a simple flat file dict backend.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
53 |
3737
d67092398377
Added dictionary API and implementation for SQL. It's meant for looking and
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
54 #endif |