|
|
This topic describes the data structures defined in mail.h that are used in the creation of message store drivers.
char *name;
Name by which the driver is known to the C client.
unsigned long flags;
Attribute flags for this driver:
DRIVER *next;
Pointer to the next driver which this application supports (or NIL if this is the last driver). Drivers are lunk together via the mail_lin function.
DRIVER *driver_valid (char *mailbox);
This function returns a pointer to the driver's DRIVER dispatch vector if this driver accepts the given name as a valid mailbox for this driver. Otherwise, it returns the value of the next driver's driver_valid or NIL if there is no next driver. In other words, calling driver_valid for the first driver will return the driver dispatch vector for the driver which supports this type of mailbox.
void *driver_parameters(long function, void *value);
This function implements mail_parameters for this driver.
void driver_scan(MAILSTREAM *stream, char *ref, char *pat, char *contents);
This function implements mail_scan for this driver.
void driver_list(MAILSTREAM *stream, char *ref, char *pat);
This function implements mail_list for this driver.
void driver_lsub (MAILSTREAM *stream, char *ref, char *pat);
This function implements mail_lsub for this driver.
long driver_subscribe(MAILSTREAM *stream, char *mailbox);
This function implements mail_subscribe for this driver.
long driver_unsubscribe(MAILSTREAM *stream, char *mailbox);
This function implements mail_unsubscribe for this driver.
long driver_create(MAILSTREAM *stream, char *mailbox);
This function implements mail_create for this driver.
long driver_delete(MAILSTREAM *stream, char *mailbox);
This function implements mail_delete for this driver.
long driver_rename(MAILSTREAM *stream, char *old, char *new);
This function implements mail_rename for this driver.
long driver_status(MAILSTREAM *stream, char *mailbox, long flags);
This function implements mail_status for this driver.
MAILSTREAM *driver_open(MAILSTREAM *stream);
This function opens the mailbox identified by the given stream.
It may use the data on the stream and create additional data on
stream->local
as necessary. It should return the given
stream unless it failed to open the mailbox, in which case it
should return NIL.
void driver_close(MAILSTREAM *stream, long options);
This function implements mail_close for this driver.
void driver_fetchfast(MAILSTREAM *stream, char *sequence, long flags);
This function implements mail_fetchfast for this driver.
void driver_fetchflags(MAILSTREAM *stream, char *sequence, long flags);
This function implements mail_fetchflags for this driver.
ENVELOPE *driver_fetchstructure(MAILSTREAM *stream, unsigned long msgno, BODY **body, long flags);
This function implements mail_fetchstructure for this driver.
char *driver_fetchheader(MAILSTREAM *stream, unsigned long msgno, STRINGLIST *lines, unsigned long *len, long flags);
This function implements mail_fetchheader for this driver.
char *driver_fetchtext(MAILSTREAM *stream, unsigned long msgno, unsigned long *len, long flags);
This function implements mail_fetchtext for this driver.
char *driver_fetchbody(MAILSTREAM *stream, unsigned long msgno, char *section, unsigned long *len, long flags);
This function implements mail_fetchbody for this driver.
void driver_setflag(MAILSTREAM *stream, char *sequence, char *flag, long flags);
This function implements mail_setflag for this driver.
void driver_clearflag(MAILSTREAM *stream, char *sequence, char *flag, long flags);
This function implements mail_clearflag for this driver.
void driver_search(MAILSTREAM *stream, char *charset, SEARCHPGM *pgm, long flags);
This function implements mail_search for this driver.
unsigned long *driver_sort(MAILSTREAM *stream, char *charset, SEARCHPGM *spg, SORTPGM *pgm, long flags);
This function implements mail_sort for this driver.
void *driver_thread(MAILSTREAM *stream, char *seq, long function, long flag);
This dispatch is reserved for a future threading capability.
long driver_ping(MAILSTREAM *stream);
This function implements mail_ping for this driver.
void driver_check(MAILSTREAM *stream);
This function implements mail_check for this driver.
void driver_expunge(MAILSTREAM *stream);
This function implements mail_expunge for this driver.
long driver_copy(MAILSTREAM *stream, char *sequence, char *mailbox, long options);
This function implements mail_copy for this driver.
long driver_append(MAILSTREAM *stream, char *mailbox, char *flags, char *date, STRING *message);
This function implements mail_append for this driver.
void driver_gc(MAILSTREAM *stream, long gcflags);
This function implements mail_gc for this driver.