index-search-private.h revision e15b305e90c9834734ccf35ed78f0ad29d570ee9
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen#ifndef INDEX_SEARCH_PRIVATE_H
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen#define INDEX_SEARCH_PRIVATE_H
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen#include "mail-storage-private.h"
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainenstruct index_search_context {
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct mail_search_context mail_ctx;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct mail_index_view *view;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct mailbox *box;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
e29f8a6a52ca72fc6010132fb86dd00e9d96432aTimo Sirainen enum mail_fetch_field extra_wanted_fields;
e29f8a6a52ca72fc6010132fb86dd00e9d96432aTimo Sirainen struct mailbox_header_lookup_ctx *extra_wanted_headers;
e29f8a6a52ca72fc6010132fb86dd00e9d96432aTimo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen uint32_t seq1, seq2;
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen struct mail *cur_mail;
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen struct index_mail *cur_imail;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct mail_thread_context *thread_ctx;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen ARRAY_DEFINE(mails, struct mail *);
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen unsigned int unused_mail_idx;
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen unsigned int max_mails;
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct timeval search_start_time, last_notify;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen struct timeval last_nonblock_timeval;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned long long cost, next_time_check_cost;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned int failed:1;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned int sorted:1;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned int have_seqsets:1;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned int have_index_args:1;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen unsigned int have_mailbox_args:1;
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen};
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
e15b305e90c9834734ccf35ed78f0ad29d570ee9Timo Sirainenstruct mail *index_search_get_mail(struct index_search_context *ctx);
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen
56b8bee5943ad628f292a307a68a8cff7e966132Timo Sirainen#endif