Mercurial > dovecot > original-hg > dovecot-1.2
view src/lib-storage/index/maildir/maildir-uidlist.h @ 2050:ee1095ccfd23 HEAD
Index header changes now go through transaction log. Removed the kludgy
parameters for mail_index_sync_end(). Removed code duplication of syncing
index root mapping and view mapping. Some fixes to handling uidvalidity and
nextuid in syncing.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 24 May 2004 04:50:16 +0300 |
parents | 739b469b99e2 |
children | 596267d8e2e2 |
line wrap: on
line source
#ifndef __MAILDIR_UIDLIST_H #define __MAILDIR_UIDLIST_H #define MAILDIR_UIDLIST_NAME "dovecot-uidlist" enum maildir_uidlist_rec_flag { MAILDIR_UIDLIST_REC_FLAG_NEW_DIR = 0x01, MAILDIR_UIDLIST_REC_FLAG_MOVED = 0x02, MAILDIR_UIDLIST_REC_FLAG_RECENT = 0x04, MAILDIR_UIDLIST_REC_FLAG_NONSYNCED = 0x08 }; int maildir_uidlist_try_lock(struct maildir_uidlist *uidlist); void maildir_uidlist_unlock(struct maildir_uidlist *uidlist); struct maildir_uidlist * maildir_uidlist_init(struct index_mailbox *ibox, uint32_t uid_validity); void maildir_uidlist_deinit(struct maildir_uidlist *uidlist); /* Returns -1 if error, 0 if file is broken or lost, 1 if ok. */ int maildir_uidlist_update(struct maildir_uidlist *uidlist); /* Returns uidlist record for given filename, or NULL if not found. */ const char * maildir_uidlist_lookup(struct maildir_uidlist *uidlist, uint32_t uid, enum maildir_uidlist_rec_flag *flags_r); /* Returns TRUE if mail with given UID is recent. */ int maildir_uidlist_is_recent(struct maildir_uidlist *uidlist, uint32_t uid); /* Returns number of recent messages. */ uint32_t maildir_uidlist_get_recent_count(struct maildir_uidlist *uidlist); uint32_t maildir_uidlist_get_uid_validity(struct maildir_uidlist *uidlist); uint32_t maildir_uidlist_get_next_uid(struct maildir_uidlist *uidlist); /* Sync uidlist with what's actually on maildir. */ struct maildir_uidlist_sync_ctx * maildir_uidlist_sync_init(struct maildir_uidlist *uidlist, int partial); /* Returns 1 = ok, -1 = error, 0 = new file and dovecot-uidlist is locked */ int maildir_uidlist_sync_next_pre(struct maildir_uidlist_sync_ctx *ctx, const char *filename); int maildir_uidlist_sync_next(struct maildir_uidlist_sync_ctx *ctx, const char *filename, enum maildir_uidlist_rec_flag flags); /* Returns 1 = ok, 0 = uidlist is locked, don't try syncing any further */ int maildir_uidlist_sync_finish(struct maildir_uidlist_sync_ctx *ctx); int maildir_uidlist_sync_deinit(struct maildir_uidlist_sync_ctx *ctx); /* List all maildir files. */ struct maildir_uidlist_iter_ctx * maildir_uidlist_iter_init(struct maildir_uidlist *uidlist); int maildir_uidlist_iter_next(struct maildir_uidlist_iter_ctx *ctx, uint32_t *uid_r, enum maildir_uidlist_rec_flag *flags_r, const char **filename_r); void maildir_uidlist_iter_deinit(struct maildir_uidlist_iter_ctx *ctx); #endif