Lines Matching defs:vctx
65 struct virtual_search_context *vctx)
80 seq_range_array_add(&vctx->result, ctx->seq);
91 array_append(&vctx->records, &srec, 1);
95 array_sort(&vctx->records, virtual_search_record_cmp);
97 ctx->progress_max = array_count(&vctx->records);
108 struct virtual_search_context *vctx;
113 vctx = i_new(struct virtual_search_context, 1);
114 vctx->search_state = VIRTUAL_SEARCH_STATE_BUILD;
115 i_array_init(&vctx->result, 64);
116 i_array_init(&vctx->records, 64);
117 MODULE_CONTEXT_SET(ctx, virtual_storage_module, vctx);
119 virtual_search_get_records(ctx, vctx);
120 seq_range_array_iter_init(&vctx->result_iter, &vctx->result);
126 struct virtual_search_context *vctx = VIRTUAL_CONTEXT_REQUIRE(ctx);
128 array_free(&vctx->result);
129 array_free(&vctx->records);
130 i_free(vctx);
137 struct virtual_search_context *vctx = VIRTUAL_CONTEXT_REQUIRE(ctx);
141 switch (vctx->search_state) {
144 vctx->search_state = VIRTUAL_SEARCH_STATE_SORT;
146 vctx->search_state = VIRTUAL_SEARCH_STATE_RETURN;
154 seq_range_array_add(&vctx->result, (*mail_r)->seq);
158 vctx->next_result_n = 0;
159 vctx->search_state = VIRTUAL_SEARCH_STATE_SORT_DONE;
163 if (!seq_range_array_iter_nth(&vctx->result_iter,
164 vctx->next_result_n, &seq))
166 vctx->next_result_n++;
183 struct virtual_search_context *vctx = VIRTUAL_CONTEXT_REQUIRE(ctx);
187 recs = array_get(&vctx->records, &count);
188 if (vctx->next_record_idx < count) {
190 ctx->seq = recs[vctx->next_record_idx++].virtual_seq - 1;
193 ctx->progress_cur = vctx->next_record_idx;
198 seq_range_array_iter_nth(&vctx->result_iter,
199 vctx->next_result_n, &ctx->seq)) {
202 vctx->next_result_n++;