annotate src/lib-storage/index/dbox/dbox-sync.h @ 6410:e4eb71ae8e96 HEAD

Changed .h ifdef/defines to use <NAME>_H format.
author Timo Sirainen <tss@iki.fi>
date Sun, 16 Sep 2007 11:31:27 +0300
parents 7b71ba1250e3
children c4cb7f25bf09
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6410
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 6340
diff changeset
1 #ifndef DBOX_SYNC_H
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 6340
diff changeset
2 #define DBOX_SYNC_H
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
4 enum mailbox_sync_flags;
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 struct mailbox;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 struct dbox_sync_file_entry {
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
8 uint32_t file_id;
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
10 ARRAY_TYPE(seq_range) changes;
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
11 ARRAY_TYPE(seq_range) expunges;
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 };
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 struct dbox_sync_context {
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 struct dbox_mailbox *mbox;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 struct mail_index_sync_ctx *index_sync_ctx;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 struct mail_index_view *sync_view;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 struct mail_index_transaction *trans;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
20 string_t *path;
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
21 unsigned int path_dir_prefix_len;
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
22
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 pool_t pool;
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 struct hash_table *syncs; /* struct dbox_sync_file_entry */
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
25 ARRAY_TYPE(seq_range) expunge_files;
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
26 ARRAY_TYPE(seq_range) locked_files;
3761
ef482c909771 When index files (dovecot.index and dbox index) aren't synced with each
Timo Sirainen <tss@iki.fi>
parents: 3754
diff changeset
27
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
28 unsigned int flush_dirty_flags:1;
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 };
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30
6340
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
31 int dbox_sync_begin(struct dbox_mailbox *mbox,
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
32 struct dbox_sync_context **ctx_r,
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
33 bool close_flush_dirty_flags);
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
34 int dbox_sync_finish(struct dbox_sync_context **ctx, bool success);
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
35 int dbox_sync(struct dbox_mailbox *mbox, bool close_flush_dirty_flags);
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
36
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
37 int dbox_sync_file(struct dbox_sync_context *ctx,
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
38 const struct dbox_sync_file_entry *entry);
7b71ba1250e3 Initial commit for dbox redesign/rewrite. Currently supports only one
Timo Sirainen <tss@iki.fi>
parents: 4451
diff changeset
39 int dbox_sync_index_rebuild(struct dbox_mailbox *mbox);
3720
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
40
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 struct mailbox_sync_context *
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42 dbox_storage_sync_init(struct mailbox *box, enum mailbox_sync_flags flags);
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43
fd0986477809 Initial implementation of Dovecot's own high performance file format, named
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 #endif