blob: 5af826313670c24b32c424b9389c1af4324f227c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
Mailbox
=======
'src/lib-storage/mail-storage.h' and 'mail-storage-private.h' describes mailbox
API, among others. Mailbox life cycle often goes like:
* 'mailbox_alloc()' allocates memory for the mailbox and initializes some
internal settings, but doesn't actually try to open it.
* 'mailbox_open()' opens the mailbox. Instead of opening a mailbox, you can
also create it with 'mailbox_create()'.
* If you're immediately syncing the mailbox, you don't need to open it,
because it's done implicitly. This reduces your code and error handling a
bit.
* 'mailbox_close()' closes the mailbox, so that it needs to be opened again if
it's wanted to be accessed. This is rarely needed.
* 'mailbox_free()' closes and frees the mailbox.
There are a lot of functions to deal with mailboxes. The most important ones
are:
* 'mailbox_get_status()' to get a summary of mailbox, such as number of
messages in it.
* <Syncing> [Design.Storage.Mailbox.Sync.txt]: 'mailbox_sync_*()' to
synchronize changes from the backend to memory.
* <Transactions> [Design.Storage.Mailbox.Transaction.txt]:
'mailbox_transaction_*()' for transaction handling. All message reads and
writes are done in a transaction.
* <Searching> [Design.Storage.Mailbox.Search.txt]: 'mailbox_search_*()' is
used for searching messages. Even simple operations like "get all messages"
go through this API, it'll then simply do "search all".
* <Saving> [Design.Storage.Mailbox.Save.txt]: 'mailbox_save_*()' and
'mailbox_copy()' is used for saving/copying new messages to mailbox.
(This file was created from the wiki on 2019-06-19 12:42)
|