Lines Matching refs:uidmap
499 struct virtual_backend_uidmap uidmap;
518 /* add the found UIDs to uidmap. virtual_uid gets assigned later. */
519 i_zero(&uidmap);
522 uidmap.real_uid = mail->uid;
523 array_append(&bbox->uids, &uidmap, 1);
533 const struct virtual_backend_uidmap *uidmap)
535 return *uidp < uidmap->real_uid ? -1 :
536 (*uidp > uidmap->real_uid ? 1 : 0);
545 struct virtual_backend_uidmap *uidmap;
554 uidmap = array_get_modifiable(&bbox->uids, &rec_count);
557 /* find the first uidmap record to be removed */
566 while (uidmap[src].real_uid != uid) {
567 uidmap[dest++] = uidmap[src++];
573 i_assert(uidmap[src].real_uid == uid);
574 if (uidmap[src].virtual_uid == 0) {
579 uidmap[src].virtual_uid,
593 struct virtual_backend_uidmap *uidmap;
605 uidmap = array_get_modifiable(&bbox->uids, &rec_count);
607 added_uids[0].seq1 > uidmap[rec_count-1].real_uid) {
622 uidmap = array_get_modifiable(&bbox->uids, &rec_count);
630 while (src < rec_count && uidmap[src].real_uid < add_uid)
631 uidmap[dest++] = uidmap[src++];
636 uidmap[dest].real_uid = add_uid;
637 uidmap[dest].virtual_uid = 0;
691 /* the uidmap must be sorted by real_uids */
715 struct virtual_backend_uidmap uidmap;
720 i_zero(&uidmap);
721 uidmap.real_uid = real_uid;
722 uidmap.virtual_uid = vuid;
723 array_append(&bbox->uids, &uidmap, 1);
870 const struct virtual_backend_uidmap *uidmap;
882 uidmap = array_get_modifiable(&bbox->uids, &count);
888 if (uidmap[i].real_uid < add_uid) {
892 if (uidmap[i].real_uid == add_uid) {
906 const struct virtual_backend_uidmap *uidmap;
920 uidmap = array_get_modifiable(&bbox->uids, &count);
922 if (uidmap[i].real_uid < remove_uid) {
926 if (uidmap[i].real_uid != remove_uid)
1011 const struct virtual_backend_uidmap *uidmap;
1021 uidmap = array_get_modifiable(&bbox->uids, &count);
1022 if (idx == count || uidmap[idx].real_uid > uid2)
1026 while (idx < count && uidmap[idx].real_uid <= uid2) idx++;
1035 struct virtual_backend_uidmap *uidmap;
1047 uidmap = array_get_modifiable(&bbox->uids, &count);
1049 if (uidmap[i].real_uid > uid2)
1051 seq_range_array_add(&ctx->sync_expunges, uidmap[i].real_uid);
1060 const struct virtual_backend_uidmap *uidmap;
1081 uidmap = array_idx(&bbox->uids, 0);
1083 vuid = uidmap[idx1].virtual_uid;
1096 uidmap[idx1].real_uid);
1166 const struct virtual_backend_uidmap *uidmap;
1172 array_foreach(&bbox->uids, uidmap)
1173 seq_range_array_add(&removed_uids, uidmap->real_uid);
1292 struct virtual_backend_uidmap *uidmap = NULL;
1326 add_rec.rec.real_uid = uidmap[j].real_uid;
1336 uidmap = array_get_modifiable(&bbox->uids,
1344 /* if virtual record doesn't exist in uidmap, it's expunged */
1346 if (uidmap[j].real_uid >= vrec->real_uid)
1350 add_rec.rec.real_uid = uidmap[j].real_uid;
1353 if (j == uidmap_count || uidmap[j].real_uid != vrec->real_uid)
1356 /* exists - update uidmap and flags */
1357 uidmap[j++].virtual_uid = vuid;
1371 add_rec.rec.real_uid = uidmap[j].real_uid;
1380 struct virtual_backend_uidmap *uidmap;
1392 uidmap = array_get_modifiable(&bboxes[i]->uids, &uidmap_count);
1394 add_rec.rec.real_uid = uidmap[j].real_uid;
1463 struct virtual_backend_uidmap *uidmap;
1509 /* update virtual UIDs in uidmap */
1521 uidmap = array_idx_modifiable(&bbox->uids, idx);
1522 i_assert(uidmap->virtual_uid == 0);
1523 uidmap->virtual_uid = first_uid + i;
1536 struct virtual_backend_uidmap uidmap;
1554 i_zero(&uidmap);
1559 uidmap.real_uid = vrec->real_uid;
1560 mail_index_lookup_uid(ctx->sync_view, seq, &uidmap.virtual_uid);
1570 array_append(&bbox->uids, &uidmap, 1);
1677 const struct virtual_backend_uidmap *uidmap;
1679 array_foreach(&bboxes[i]->uids, uidmap)
1680 i_assert(uidmap->virtual_uid > 0);