13 #include "dc_loginparam.h"
16 typedef struct _dc_imap dc_imap_t;
19 typedef char* (*dc_get_config_t) (dc_imap_t*,
const char*,
const char*);
20 typedef void (*dc_set_config_t) (dc_imap_t*,
const char*,
const char*);
22 typedef int (*dc_precheck_imf_t) (dc_imap_t*,
const char* rfc724_mid,
23 const char* server_folder,
26 #define DC_IMAP_SEEN 0x0001L
27 typedef void (*dc_receive_imf_t) (dc_imap_t*,
const char* imf_raw_not_terminated,
size_t imf_raw_bytes,
const char* server_folder, uint32_t server_uid, uint32_t flags);
48 char* selected_folder;
49 int selected_folder_needs_expunge;
57 pthread_cond_t watch_cond;
58 pthread_mutex_t watch_condmutex;
61 struct mailimap_fetch_type* fetch_type_prefetch;
62 struct mailimap_fetch_type* fetch_type_body;
63 struct mailimap_fetch_type* fetch_type_flags;
65 dc_get_config_t get_config;
66 dc_set_config_t set_config;
67 dc_precheck_imf_t precheck_imf;
68 dc_receive_imf_t receive_imf;
72 int log_connect_errors;
73 int skip_log_capabilities;
86 dc_imap_t* dc_imap_new (dc_get_config_t, dc_set_config_t,
87 dc_precheck_imf_t, dc_receive_imf_t,
89 void dc_imap_unref (dc_imap_t*);
91 int dc_imap_connect (dc_imap_t*,
const dc_loginparam_t*);
92 void dc_imap_set_watch_folder (dc_imap_t*,
const char* watch_folder);
93 void dc_imap_disconnect (dc_imap_t*);
94 int dc_imap_is_connected (
const dc_imap_t*);
95 int dc_imap_fetch (dc_imap_t*);
97 void dc_imap_idle (dc_imap_t*);
98 void dc_imap_interrupt_idle (dc_imap_t*);
100 dc_imap_res dc_imap_move (dc_imap_t*,
const char* folder, uint32_t uid,
101 const char* dest_folder, uint32_t* dest_uid);
102 dc_imap_res dc_imap_set_seen (dc_imap_t*,
const char* folder, uint32_t uid);
103 dc_imap_res dc_imap_set_mdnsent (dc_imap_t*,
const char* folder, uint32_t uid);
105 int dc_imap_delete_msg (dc_imap_t*,
const char* rfc724_mid,
const char* folder, uint32_t server_uid);
106 void dc_imap_empty_folder (dc_imap_t*,
const char* folder);
108 int dc_imap_is_error (dc_imap_t* imap,
int code);
114 #endif // __DC_IMAP_H__