annotate src/lib-imap-storage/imap-metadata.h @ 22656:1789bf2a1e01

director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0 The reset command would just hang in that case. doveadm would never have sent this, so this is just an extra sanity check.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 05 Nov 2017 23:51:56 +0200
parents a350812e07bf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18094
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
1 #ifndef IMAP_METADATA_H
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
2 #define IMAP_METADATA_H
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
3
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
4 #define IMAP_METADATA_PRIVATE_PREFIX "/private"
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
5 #define IMAP_METADATA_SHARED_PREFIX "/shared"
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
6
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
7 struct imap_metadata_iter;
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
8 struct imap_metadata_transaction;
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
9
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
10 /* Checks whether IMAP metadata entry name is valid */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
11 bool imap_metadata_verify_entry_name(
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
12 const char *name, const char **error_r);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
13
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
14 /* Set IMAP metadata entry to value. */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
15 int imap_metadata_set(struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
16 const char *entry, const struct mail_attribute_value *value);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
17 /* Delete IMAP metadata entry. This is just a wrapper to
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
18 imap_metadata_set() with value->value=NULL. */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
19 int imap_metadata_unset(struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
20 const char *entry);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
21 /* Returns value for IMAP metadata entry. Returns 1 if value was returned,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
22 0 if value wasn't found (set to NULL), -1 if error */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
23 int imap_metadata_get(struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
24 const char *entry, struct mail_attribute_value *value_r);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
25 /* Same as imap_metadata_get(), but the returned value may be either an
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
26 input stream or a string. */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
27 int imap_metadata_get_stream(struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
28 const char *entry, struct mail_attribute_value *value_r);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
29
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
30 /* Iterate through IMAP metadata entries names under the specified entry. */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
31 struct imap_metadata_iter *
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
32 imap_metadata_iter_init(struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
33 const char *entry);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
34 /* Returns the next IMAP metadata entry name or NULL if there are no more
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
35 entries. */
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
36 const char *imap_metadata_iter_next(struct imap_metadata_iter *iter);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
37 int imap_metadata_iter_deinit(struct imap_metadata_iter **_iter);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
38
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
39 struct imap_metadata_transaction *
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
40 imap_metadata_transaction_begin(struct mailbox *box);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
41 struct imap_metadata_transaction *
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
42 imap_metadata_transaction_begin_mailbox(struct mail_user *user,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
43 const char *mailbox);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
44 struct imap_metadata_transaction *
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
45 imap_metadata_transaction_begin_server(struct mail_user *user);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
46
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
47 int imap_metadata_transaction_commit(
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
48 struct imap_metadata_transaction **_imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
49 enum mail_error *error_code_r, const char **error_r);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
50 void imap_metadata_transaction_rollback(
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
51 struct imap_metadata_transaction **_imtrans);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
52 const char *
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
53 imap_metadata_transaction_get_last_error(
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
54 struct imap_metadata_transaction *imtrans,
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
55 enum mail_error *error_code_r);
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
56
a350812e07bf lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff changeset
57 #endif