summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan/generic/mailfolder.c
Unidiff
Diffstat (limited to 'kmicromail/libetpan/generic/mailfolder.c') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libetpan/generic/mailfolder.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/kmicromail/libetpan/generic/mailfolder.c b/kmicromail/libetpan/generic/mailfolder.c
new file mode 100644
index 0000000..2ddc37d
--- a/dev/null
+++ b/kmicromail/libetpan/generic/mailfolder.c
@@ -0,0 +1,96 @@
1#include "mailfolder.h"
2
3#include "maildriver.h"
4
5int mailfolder_noop(struct mailfolder * folder)
6{
7 return mailsession_noop(folder->fld_session);
8}
9
10int mailfolder_check(struct mailfolder * folder)
11{
12 return mailsession_check_folder(folder->fld_session);
13}
14
15int mailfolder_expunge(struct mailfolder * folder)
16{
17 return mailsession_expunge_folder(folder->fld_session);
18}
19
20int mailfolder_status(struct mailfolder * folder,
21 uint32_t * result_messages, uint32_t * result_recent,
22 uint32_t * result_unseen)
23{
24 return mailsession_status_folder(folder->fld_session,
25 folder->fld_pathname, result_messages,
26 result_recent, result_unseen);
27}
28
29int mailfolder_append_message(struct mailfolder * folder,
30 char * message, size_t size)
31{
32 return mailsession_append_message(folder->fld_session, message, size);
33}
34
35int mailfolder_get_messages_list(struct mailfolder * folder,
36 struct mailmessage_list ** result)
37{
38 int r;
39 struct mailmessage_list * msg_list;
40 unsigned int i;
41
42 r = mailsession_get_messages_list(folder->fld_session, &msg_list);
43 if (r != MAIL_NO_ERROR)
44 return r;
45
46 for(i = 0 ; i < carray_count(msg_list->msg_tab) ; i ++) {
47 mailmessage * msg;
48
49 msg = carray_get(msg_list->msg_tab, i);
50 msg->msg_folder = folder;
51 }
52
53 * result = msg_list;
54
55 return MAIL_NO_ERROR;
56}
57
58int mailfolder_get_envelopes_list(struct mailfolder * folder,
59 struct mailmessage_list * result)
60{
61 return mailsession_get_envelopes_list(folder->fld_session, result);
62}
63
64int mailfolder_get_message(struct mailfolder * folder,
65 uint32_t num, mailmessage ** result)
66{
67 mailmessage * msg;
68 int r;
69
70 r = mailsession_get_message(folder->fld_session, num, &msg);
71 if (r != MAIL_NO_ERROR)
72 return r;
73
74 msg->msg_folder = folder;
75
76 * result = msg;
77
78 return MAIL_NO_ERROR;
79}
80
81int mailfolder_get_message_by_uid(struct mailfolder * folder,
82 const char * uid, mailmessage ** result)
83{
84 mailmessage * msg;
85 int r;
86
87 r = mailsession_get_message_by_uid(folder->fld_session, uid, &msg);
88 if (r != MAIL_NO_ERROR)
89 return r;
90
91 msg->msg_folder = folder;
92
93 * result = msg;
94
95 return MAIL_NO_ERROR;
96}