52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo SirainenARRAY_DEFINE_TYPE(view_log_sync_area, struct mail_index_view_log_sync_area);
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen uint32_t (*get_messages_count)(struct mail_index_view *view);
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen (*lookup_full)(struct mail_index_view *view, uint32_t seq,
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen struct mail_index_map **map_r, bool *expunged_r);
4ee00532a265bdfb38539d811fcd12d51210ac35Timo Sirainen void (*lookup_uid)(struct mail_index_view *view, uint32_t seq,
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen void (*lookup_seq_range)(struct mail_index_view *view,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen void (*lookup_first)(struct mail_index_view *view,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen void (*lookup_keywords)(struct mail_index_view *view, uint32_t seq,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen void (*lookup_ext_full)(struct mail_index_view *view, uint32_t seq,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen uint32_t ext_id, struct mail_index_map **map_r,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen void (*get_header_ext)(struct mail_index_view *view,
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen bool (*ext_get_reset_id)(struct mail_index_view *view,
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen /* All mappings where we have returned records. They need to be kept
f6b8ff28fe15eff03e0127f11cd122d3eb872e2eTimo Sirainen valid until view is synchronized. */
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen /* expunge <= head */
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen uint32_t log_file_expunge_seq, log_file_head_seq;
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen uoff_t log_file_expunge_offset, log_file_head_offset;
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen /* Transaction log offsets which we don't want to return in view sync */
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen /* Module-specific contexts. */
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen ARRAY(union mail_index_view_module_context *) module_contexts;
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen struct mail_index_transaction *transactions_list;
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen /* this view was created by mail_index_sync_begin() */
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainen /* this view is being synced */
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainenmail_index_view_open_with_map(struct mail_index *index,
efe78d3ba24fc866af1c79b9223dc0809ba26cadStephan Boschvoid mail_index_view_clone(struct mail_index_view *dest,
2fa41e3cd6393ce4b5f7e6f6048d7706aa93ac0dTimo Sirainenmail_index_view_dup_private(const struct mail_index_view *src);
52ffa11d672a9bd150ae3e758a19f1cc4f01471bTimo Sirainenvoid mail_index_view_ref(struct mail_index_view *view);
ffcf7f97c7d82b895bbb745031042ee8c378c6b6Timo Sirainenvoid mail_index_view_unref_maps(struct mail_index_view *view);
ffcf7f97c7d82b895bbb745031042ee8c378c6b6Timo Sirainenvoid mail_index_view_add_hidden_transaction(struct mail_index_view *view,
c68ba18d99f3e4fead1e259b9dc50cb139e0b1c7Timo Sirainen unsigned int length);