File: ml.h

package info (click to toggle)
prayer 1.3.5-dfsg1-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,596 kB
  • sloc: ansic: 43,163; makefile: 817; sh: 445; perl: 166
file content (161 lines) | stat: -rw-r--r-- 5,572 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/* $Cambridge: hermes/src/prayer/session/ml.h,v 1.3 2008/09/16 09:59:58 dpc22 Exp $ */
/************************************************
 *    Prayer - a Webmail Interface              *
 ************************************************/

/* Copyright (c) University of Cambridge 2000 - 2008 */
/* See the file NOTICE for conditions of use and distribution. */

/* C-client interface */

#define ML_OPENTIMEOUT  (120L)   /* All in seconds */
#define ML_READTIMEOUT  (240L)
#define ML_WRITETIMEOUT (240L)

void ml_init(void);

BOOL ml_have_error(void);
void ml_clear_error(void);
void ml_set_error(void);
char *ml_errmsg(void);
BOOL ml_have_errmsg(void);
void ml_clear_errmsg(void);
void ml_set_errmsg(char *error);

BOOL ml_have_try_create(void);
void ml_clear_try_create(void);
void ml_set_try_create(void);

BOOL ml_have_close(void);
void ml_clear_have_close(void);
void ml_set_have_close(void);

BOOL ml_mailbox_update(void);
void ml_clear_mailbox_update(void);
void ml_set_mailbox_update(void);

void ml_set_errmsg(char *error);
void ml_errmsg_printf(char *fmt, ...);

/* ====================================================================== */

#define ml_fetchheader(session, stream,msgno) \
  ml_fetch_header (session, stream,msgno,NIL,NIL,NIL,FT_PEEK)
#define ml_fetchheader_full(session, stream,msgno,lines,len,flags) \
  ml_fetch_header (session, stream,msgno,NIL,lines,len,FT_PEEK | (flags))
#define ml_fetchtext(session, stream,msgno) \
  ml_fetch_text (session, stream,msgno,NIL,NIL,NIL)
#define ml_fetchtext_full(session, stream,msgno,length,flags) \
  ml_fetch_text (session, stream,msgno,NIL,length,flags)
#define ml_fetchbody(session, stream,msgno,section,length) \
  ml_fetch_body (session, stream,msgno,section,length,NIL)

#define ml_setflag(session, stream,sequence,flag) \
  ml_flag (session, stream,sequence,flag,ST_SET)
#define ml_setflag_full(session, stream,sequence,flag,flags) \
  ml_flag (session, stream,sequence,flag,ST_SET | (flags))
#define ml_clearflag(session, stream,sequence,flag) \
  ml_flag (session, stream,sequence,flag,NIL)
#define ml_clearflag_full ml_flag

#define ml_search(session, stream,criteria) \
  ml_search_full (session, stream,NIL,mail_criteria (criteria),SE_FREE);

/* ====================================================================== */

MESSAGECACHE *ml_elt(struct session *session, MAILSTREAM * stream,
                     unsigned long msgno);

unsigned long
ml_msgno(struct session *session, MAILSTREAM * stream, unsigned long uid);

unsigned long
ml_uid(struct session *session, MAILSTREAM * stream, unsigned long msgno);

BOOL
ml_fetch_fast(struct session *session, MAILSTREAM * stream,
              char *seq, unsigned long flags);

BOOL
ml_fetch_overview(struct session *session,
                  MAILSTREAM * stream, char *sequence, overview_t ofn);

ENVELOPE *ml_fetch_structure(struct session *session,
                             MAILSTREAM * stream, unsigned long msgno,
                             BODY ** body, long flags);

char *ml_fetch_message(struct session *session,
                       MAILSTREAM * stream, unsigned long msgno,
                       unsigned long *len, long flags);

char *ml_fetch_header(struct session *session,
                      MAILSTREAM * stream, unsigned long msgno,
                      char *section, STRINGLIST * lines,
                      unsigned long *len, long flags);

char *ml_fetch_text(struct session *session,
                    MAILSTREAM * stream, unsigned long msgno,
                    char *section, unsigned long *len, long flags);

char *ml_fetch_mime(struct session *session,
                    MAILSTREAM * stream, unsigned long msgno,
                    char *section, unsigned long *len, long flags);

char *ml_fetch_body(struct session *session,
                    MAILSTREAM * stream, unsigned long msgno,
                    char *section, unsigned long *len, long flags);

BODY *ml_body(struct session *session,
              MAILSTREAM * stream, unsigned long msgno, char *section);

BOOL ml_ping(struct session *session, MAILSTREAM * stream);

BOOL
ml_append(struct session *session,
          MAILSTREAM * stream, char *mailbox, STRING * message);

BOOL
ml_append_multiple(struct session *session,
                   MAILSTREAM * stream, char *mailbox,
                   append_t fn, void *ap);

BOOL
ml_copy(struct session *session,
        MAILSTREAM * stream, char *sequence, char *mailbox, long options);

BOOL ml_check(struct session *session, MAILSTREAM * stream);

void ml_close(struct session *session, MAILSTREAM * stream);

BOOL ml_create(struct session *session, MAILSTREAM * stream,
               char *mailbox);

BOOL ml_delete(struct session *session, MAILSTREAM * stream,
               char *mailbox);

BOOL ml_expunge(struct session *session, MAILSTREAM * stream);

BOOL
ml_flag(struct session *session,
        MAILSTREAM * stream, char *sequence, char *flag, long flags);

BOOL
ml_list(struct session *session, MAILSTREAM * stream, char *ref,
        char *pat);

void ml_status_callback(MAILSTATUS *status);

BOOL ml_status(struct session * session, MAILSTREAM * stream, char *mbx,
               int flags, MAILSTATUS *status);

MAILSTREAM *ml_open(struct session *session,
                    MAILSTREAM * oldstream, char *name, long options);

BOOL
ml_rename(struct session *session,
          MAILSTREAM * stream, char *oldname, char *newname);

BOOL
ml_search_full(struct session *session,
               MAILSTREAM * stream, char *charset, SEARCHPGM * pgm,
               long flags);