Mercurial > dovecot > core-2.2
annotate src/lib-index/mail-index-modseq.h @ 22576:707ae9de3812
lib: istream-multiplex - Minor code cleanup
Avoid propagating the error twice, and avoid any confusion about what "got"
actually contains.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 05 Oct 2017 20:24:11 +0300 |
parents | e0f6374d1209 |
children |
rev | line source |
---|---|
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 #ifndef MAIL_INDEX_MODSEQ_H |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 #define MAIL_INDEX_MODSEQ_H |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 |
15081
4b0cbecf369d
Removed all the "enum foo;" declarations.
Timo Sirainen <tss@iki.fi>
parents:
14501
diff
changeset
|
4 #include "mail-types.h" |
4b0cbecf369d
Removed all the "enum foo;" declarations.
Timo Sirainen <tss@iki.fi>
parents:
14501
diff
changeset
|
5 |
7931
502cfdcc5650
Keep modseqs as 1 until the first modseq ext intro record enables them.
Timo Sirainen <tss@iki.fi>
parents:
7812
diff
changeset
|
6 #define MAIL_INDEX_MODSEQ_EXT_NAME "modseq" |
502cfdcc5650
Keep modseqs as 1 until the first modseq ext intro record enables them.
Timo Sirainen <tss@iki.fi>
parents:
7812
diff
changeset
|
7 |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 struct mail_keywords; |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 struct mail_index; |
7812
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
10 struct mail_index_map; |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 struct mail_index_view; |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 struct mail_index_modseq; |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 struct mail_index_map_modseq; |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 struct mail_index_sync_map_ctx; |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 |
7629 | 16 struct mail_index_modseq_header { |
17 /* highest used modseq */ | |
18 uint64_t highest_modseq; | |
19 /* last tracked log file position */ | |
20 uint32_t log_seq; | |
21 uint32_t log_offset; | |
22 }; | |
23 | |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 void mail_index_modseq_init(struct mail_index *index); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 |
7812
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
26 const struct mail_index_modseq_header * |
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
27 mail_index_map_get_modseq_header(struct mail_index_map *map); |
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
28 uint64_t mail_index_map_modseq_get_highest(struct mail_index_map *map); |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 void mail_index_modseq_enable(struct mail_index *index); |
14501
972b296db20a
lib-index: Added mail_index_have_modseq_tracking() needed for previous commit.
Timo Sirainen <tss@iki.fi>
parents:
9691
diff
changeset
|
30 bool mail_index_have_modseq_tracking(struct mail_index *index); |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 uint64_t mail_index_modseq_get_highest(struct mail_index_view *view); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 uint64_t mail_index_modseq_lookup(struct mail_index_view *view, uint32_t seq); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 uint64_t mail_index_modseq_lookup_flags(struct mail_index_view *view, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 enum mail_flags flags_mask, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 uint32_t seq); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 uint64_t mail_index_modseq_lookup_keywords(struct mail_index_view *view, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 const struct mail_keywords *keywords, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 uint32_t seq); |
9691
b09d9350a2d9
Added ability to specify message's minimum modseq value.
Timo Sirainen <tss@iki.fi>
parents:
8131
diff
changeset
|
40 int mail_index_modseq_set(struct mail_index_view *view, |
b09d9350a2d9
Added ability to specify message's minimum modseq value.
Timo Sirainen <tss@iki.fi>
parents:
8131
diff
changeset
|
41 uint32_t seq, uint64_t min_modseq); |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 struct mail_index_modseq_sync * |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 mail_index_modseq_sync_begin(struct mail_index_sync_map_ctx *sync_map_ctx); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 void mail_index_modseq_sync_end(struct mail_index_modseq_sync **ctx); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 |
8131
32a045eaf6b6
Fixed crashes related to struct mail_index_map_modseq handling.
Timo Sirainen <tss@iki.fi>
parents:
7931
diff
changeset
|
47 void mail_index_modseq_sync_map_replaced(struct mail_index_modseq_sync *ctx); |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
48 void mail_index_modseq_hdr_update(struct mail_index_modseq_sync *ctx); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 void mail_index_modseq_append(struct mail_index_modseq_sync *ctx, uint32_t seq); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 void mail_index_modseq_expunge(struct mail_index_modseq_sync *ctx, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
51 uint32_t seq1, uint32_t seq2); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
52 void mail_index_modseq_update_flags(struct mail_index_modseq_sync *ctx, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
53 enum mail_flags flags_mask, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
54 uint32_t seq1, uint32_t seq2); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
55 void mail_index_modseq_update_keyword(struct mail_index_modseq_sync *ctx, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 unsigned int keyword_idx, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 uint32_t seq1, uint32_t seq2); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 void mail_index_modseq_reset_keywords(struct mail_index_modseq_sync *ctx, |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
59 uint32_t seq1, uint32_t seq2); |
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 |
8131
32a045eaf6b6
Fixed crashes related to struct mail_index_map_modseq handling.
Timo Sirainen <tss@iki.fi>
parents:
7931
diff
changeset
|
61 struct mail_index_map_modseq * |
32a045eaf6b6
Fixed crashes related to struct mail_index_map_modseq handling.
Timo Sirainen <tss@iki.fi>
parents:
7931
diff
changeset
|
62 mail_index_map_modseq_clone(const struct mail_index_map_modseq *mmap); |
32a045eaf6b6
Fixed crashes related to struct mail_index_map_modseq handling.
Timo Sirainen <tss@iki.fi>
parents:
7931
diff
changeset
|
63 void mail_index_map_modseq_free(struct mail_index_map_modseq **mmap); |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
64 |
7812
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
65 bool mail_index_modseq_get_next_log_offset(struct mail_index_view *view, |
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
66 uint64_t modseq, uint32_t *log_seq_r, |
d10cb44ab446
Modseqs are no longer calculated from transaction log sequence + offset.
Timo Sirainen <tss@iki.fi>
parents:
7629
diff
changeset
|
67 uoff_t *log_offset_r); |
7629 | 68 |
7627
4fd41f9467ea
Left out from initial CONDSTORE commit.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
69 #endif |