d16c0ca4761bc3c3c61ba44f0541dee5431fd871
[claws.git] / src / etpan / imap-thread.h
1 #ifndef IMAP_THREAD_H
2
3 #define IMAP_THREAD_H
4
5 #include <libetpan/libetpan.h>
6 #include "folder.h"
7
8 #define IMAP_SET_MAX_COUNT 100
9
10 void imap_main_set_timeout(int sec);
11 void imap_main_init(gboolean skip_ssl_cert_check);
12 void imap_main_done(void);
13
14 void imap_init(Folder * folder);
15 void imap_done(Folder * folder);
16
17 int imap_threaded_connect(Folder * folder, const char * server, int port);
18 int imap_threaded_connect_ssl(Folder * folder, const char * server, int port);
19 struct mailimap_capability_data * imap_threaded_capability(Folder *folder, int *ok);
20 int imap_threaded_connect_cmd(Folder * folder, const char * command,
21                               const char * server, int port);
22
23 void imap_threaded_disconnect(Folder * folder);
24
25 int imap_threaded_list(Folder * folder, const char * base,
26                        const char * wildcard,
27                        clist ** p_result);
28 int imap_threaded_login(Folder * folder,
29                         const char * login, const char * password,
30                         const char * type);
31 int imap_threaded_status(Folder * folder, const char * mb,
32                 struct mailimap_mailbox_data_status ** data_status,
33                 guint mask);
34
35 int imap_threaded_noop(Folder * folder, unsigned int * p_exists);
36 int imap_threaded_starttls(Folder * folder, const gchar *host, int port);
37 int imap_threaded_create(Folder * folder, const char * mb);
38 int imap_threaded_rename(Folder * folder,
39                          const char * mb, const char * new_name);
40 int imap_threaded_delete(Folder * folder, const char * mb);
41 int imap_threaded_select(Folder * folder, const char * mb,
42                          gint * exists, gint * recent, gint * unseen,
43                          guint32 * uid_validity);
44 int imap_threaded_examine(Folder * folder, const char * mb,
45                           gint * exists, gint * recent, gint * unseen,
46                           guint32 * uid_validity);
47
48 enum {
49         IMAP_SEARCH_TYPE_SIMPLE,
50         IMAP_SEARCH_TYPE_SEEN,
51         IMAP_SEARCH_TYPE_UNSEEN,
52         IMAP_SEARCH_TYPE_ANSWERED,
53         IMAP_SEARCH_TYPE_FLAGGED,
54         IMAP_SEARCH_TYPE_DELETED,
55 };
56
57 int imap_threaded_search(Folder * folder, int search_type,
58                          struct mailimap_set * set, clist ** result);
59
60 int imap_threaded_fetch_uid(Folder * folder, uint32_t first_index,
61                             carray ** result);
62
63 void imap_fetch_uid_list_free(carray * uid_list);
64
65 int imap_threaded_fetch_content(Folder * folder, uint32_t msg_index,
66                                 int with_body,
67                                 const char * filename);
68
69 struct imap_fetch_env_info {
70         uint32_t uid;
71         char * headers;
72         uint32_t size;
73         int flags;
74 };
75
76 int imap_threaded_fetch_env(Folder * folder, struct mailimap_set * set,
77                             carray ** p_env_list);
78
79 void imap_fetch_env_free(carray * env_list);
80
81 int imap_threaded_append(Folder * folder, const char * mailbox,
82                          const char * filename,
83                          struct mailimap_flag_list * flag_list,
84                          int *uid);
85
86 int imap_threaded_expunge(Folder * folder);
87
88 int imap_threaded_copy(Folder * folder, struct mailimap_set * set,
89                        const char * mb, struct mailimap_set **source,
90                        struct mailimap_set **dest);
91
92 int imap_threaded_store(Folder * folder, struct mailimap_set * set,
93                         struct mailimap_store_att_flags * store_att_flags);
94
95 #endif