static gboolean receive_update_got_folderinfo(CamelStore *store, CamelFolderInfo *info, void *data) { if (info) { GPtrArray *folders = g_ptr_array_new(); struct _refresh_folders_msg *m; struct _send_info *sinfo = data; m = mail_msg_new(&refresh_folders_info); m->store = store; camel_object_ref(store); m->folders = folders; m->info = sinfo; m->finfo = info; mail_msg_unordered_push (m); /* do not free folder info, we will free it later */ return FALSE; } else { receive_done ("", data); } return TRUE; }
static void receive_update_got_store (char *uri, CamelStore *store, void *data) { struct _send_info *info = data; if (store) { mail_note_store(store, info->cancel, receive_update_got_folderinfo, info); } else { receive_done("", info); } }
static void receive_update_got_store (CamelStore *store, struct _send_info *info) { EMailSession *session; MailFolderCache *folder_cache; session = info->session; folder_cache = e_mail_session_get_folder_cache (session); if (store) { mail_folder_cache_note_store ( folder_cache, store, info->cancellable, receive_update_got_folderinfo, info); } else { receive_done (-1, info); } }
static void refresh_folders_done (struct _refresh_folders_msg *m) { receive_done("", m->info); }
static void send_done (gpointer data) { receive_done (-1, data); }