Lines Matching defs:_mail
410 static int fts_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
413 struct mail_private *mail = (struct mail_private *)_mail;
415 struct fts_transaction_context *ft = FTS_CONTEXT_REQUIRE(_mail->transaction);
421 scores = array_bsearch(&ft->scores->score_map, &_mail->uid,
425 i_assert(scores->uid == _mail->uid);
433 return fmail->module_ctx.super.get_special(_mail, field, value_r);
467 static int fts_mail_precache_init(struct mail *_mail)
469 struct fts_transaction_context *ft = FTS_CONTEXT_REQUIRE(_mail->transaction);
470 struct fts_mailbox_list *flist = FTS_LIST_CONTEXT_REQUIRE(_mail->box->list);
473 if (fts_mailbox_get_last_cached_seq(_mail->box, &last_seq) < 0)
484 static void fts_mail_index(struct mail *_mail)
486 struct fts_transaction_context *ft = FTS_CONTEXT_REQUIRE(_mail->transaction);
487 struct fts_mailbox_list *flist = FTS_LIST_CONTEXT_REQUIRE(_mail->box->list);
493 if (fts_mail_precache_init(_mail) < 0) {
498 if (ft->next_index_seq < _mail->seq) {
501 fts_backend_update_set_mailbox(flist->update_ctx, _mail->box);
502 if (fts_mail_precache_range(_mail->transaction,
505 _mail->seq-1,
512 if (ft->next_index_seq == _mail->seq) {
513 fts_backend_update_set_mailbox(flist->update_ctx, _mail->box);
514 if (fts_build_mail(flist->update_ctx, _mail) < 0) {
515 mail_storage_set_internal_error(_mail->box->storage);
518 ft->next_index_seq = _mail->seq + 1;
522 static void fts_mail_precache(struct mail *_mail)
524 struct mail_private *mail = (struct mail_private *)_mail;
526 struct fts_transaction_context *ft = FTS_CONTEXT_REQUIRE(_mail->transaction);
528 fmail->module_ctx.super.precache(_mail);
530 if (ft->highest_virtual_uid < _mail->uid)
531 ft->highest_virtual_uid = _mail->uid;
533 fts_mail_index(_mail);
537 void fts_mail_allocated(struct mail *_mail)
539 struct mail_private *mail = (struct mail_private *)_mail;
541 struct fts_mailbox *fbox = FTS_CONTEXT(_mail->box);
550 fmail->virtual_mail = _mail->box->virtual_vfuncs != NULL;