view src/lib-index/mbox/mbox-index.h @ 160:ff05b320482c HEAD

Bigger changes.. full_virtual_size was removed from index record and MessagePart caching is now forced. Also added per-message flags, including binary flags which can be used to check if CRs need to be inserted into message data. Added mbox-rewrite support which can be used to write out mbox file with updated flags. This still has the problem of being able to read changed custom flags, that'll require another bigger change. There's also several other mostly mbox related fixes.
author Timo Sirainen <tss@iki.fi>
date Fri, 06 Sep 2002 16:43:58 +0300
parents a946ce1f09b7
children b045148bf408
line wrap: on
line source

#ifndef __MBOX_INDEX_H
#define __MBOX_INDEX_H

#include "md5.h"
#include "mail-index.h"

typedef struct {
	MailFlags flags;
	MD5Context md5;
	int received;
        const char *custom_flags[MAIL_CUSTOM_FLAGS_COUNT];
} MboxHeaderContext;

MailIndex *mbox_index_alloc(const char *dir, const char *mbox_path);

void mbox_header_init_context(MboxHeaderContext *ctx,
			      const char*custom_flags[MAIL_CUSTOM_FLAGS_COUNT]);
void mbox_header_func(MessagePart *part __attr_unused__,
		      const char *name, unsigned int name_len,
		      const char *value, unsigned int value_len,
		      void *context);
void mbox_keywords_parse(const char *value, unsigned int len,
			 const char *custom_flags[MAIL_CUSTOM_FLAGS_COUNT],
			 void (*func)(const char *, unsigned int, int, void *),
			 void *context);
int mbox_skip_crlf(IOBuffer *inbuf);
int mbox_mail_get_start_offset(MailIndex *index, MailIndexRecord *rec,
			       uoff_t *offset);

int mbox_index_rebuild(MailIndex *index);
int mbox_index_sync(MailIndex *index);
int mbox_index_fsck(MailIndex *index);
IOBuffer *mbox_open_mail(MailIndex *index, MailIndexRecord *rec);

int mbox_index_append(MailIndex *index, IOBuffer *inbuf);

time_t mbox_from_parse_date(const char *msg, unsigned int size);
const char *mbox_from_create(const char *sender, time_t time);

int mbox_index_rewrite(MailIndex *index,
		       const char *custom_flags[MAIL_CUSTOM_FLAGS_COUNT]);

#endif