Lines Matching refs:iter
10 #include "doveadm-mailbox-list-iter.h"
18 struct mailbox_list_iterate_context *iter;
77 struct doveadm_mailbox_list_iter *iter;
80 iter = i_new(struct doveadm_mailbox_list_iter, 1);
81 iter->ctx = ctx;
82 iter->search_args = search_args;
83 iter->user = user;
84 i_array_init(&iter->patterns, 16);
86 &iter->patterns,
89 if (array_count(&iter->patterns) == 0) {
95 array_append(&iter->patterns, &all_pattern, 1);
104 return iter;
106 array_append_zero(&iter->patterns);
108 iter->only_selectable = TRUE;
109 iter->iter_flags = iter_flags;
110 iter->iter = mailbox_list_iter_init_namespaces(user->namespaces,
111 array_idx(&iter->patterns, 0),
113 return iter;
135 struct doveadm_mailbox_list_iter *iter;
137 iter = doveadm_mailbox_list_iter_init_nsmask(ctx, user, search_args,
139 iter->only_selectable = FALSE;
140 return iter;
145 struct doveadm_mailbox_list_iter *iter = *_iter;
151 if (iter->iter == NULL)
153 else if ((ret = mailbox_list_iter_deinit(&iter->iter)) < 0) {
155 mailbox_list_get_last_internal_error(iter->user->namespaces->list, &error));
156 doveadm_mail_failed_error(iter->ctx, error);
158 array_free(&iter->patterns);
159 i_free(iter);
164 doveadm_mailbox_list_iter_next(struct doveadm_mailbox_list_iter *iter)
170 while (iter->iter == NULL) {
171 patterns = array_get(&iter->patterns, &count);
172 if (iter->pattern_idx == count)
175 iter->info.vname = patterns[iter->pattern_idx++];
176 iter->info.ns = mail_namespace_find(iter->user->namespaces,
177 iter->info.vname);
178 return &iter->info;
181 while ((info = mailbox_list_iter_next(iter->iter)) != NULL) {
186 if (iter->only_selectable)
190 if (mail_search_args_match_mailbox(iter->search_args,