diff options
author | Michael Zucci <zucchi@src.gnome.org> | 2003-08-02 05:07:43 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2003-08-02 05:07:43 +0800 |
commit | e2cd78ca9b706f30f51a648db9da220e9b5a68a2 (patch) | |
tree | a1a211c5f2e2447b22eb2d610c25f58173961c6f /camel/providers/imapp/camel-imapp-driver.h | |
parent | 330ecafed407197d31c30170e1c76674d3ed91e8 (diff) | |
download | gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar.gz gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar.bz2 gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar.lz gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar.xz gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.tar.zst gsoc2013-evolution-e2cd78ca9b706f30f51a648db9da220e9b5a68a2.zip |
experimental, non-working imap implementation
svn path=/trunk/; revision=22061
Diffstat (limited to 'camel/providers/imapp/camel-imapp-driver.h')
-rw-r--r-- | camel/providers/imapp/camel-imapp-driver.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/camel/providers/imapp/camel-imapp-driver.h b/camel/providers/imapp/camel-imapp-driver.h new file mode 100644 index 0000000000..3124700619 --- /dev/null +++ b/camel/providers/imapp/camel-imapp-driver.h @@ -0,0 +1,81 @@ + +#ifndef _CAMEL_IMAPP_DRIVER_H +#define _CAMEL_IMAPP_DRIVER_H + +#include <camel/camel-object.h> +#include "camel-imapp-stream.h" +#include <e-util/e-msgport.h> + +#define CAMEL_IMAPP_DRIVER_TYPE (camel_imapp_driver_get_type ()) +#define CAMEL_IMAPP_DRIVER(obj) (CAMEL_CHECK_CAST((obj), CAMEL_IMAPP_DRIVER_TYPE, CamelIMAPPDriver)) +#define CAMEL_IMAPP_DRIVER_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_IMAPP_DRIVER_TYPE, CamelIMAPPDriverClass)) +#define CAMEL_IS_IMAP_DRIVER(o) (CAMEL_CHECK_TYPE((o), CAMEL_IMAPP_DRIVER_TYPE)) + +typedef struct _CamelIMAPPDriver CamelIMAPPDriver; +typedef struct _CamelIMAPPDriverClass CamelIMAPPDriverClass; + +typedef int (*CamelIMAPPDriverFunc)(struct _CamelIMAPPDriver *driver, void *data); +typedef struct _CamelSasl * (*CamelIMAPPSASLFunc)(struct _CamelIMAPPDriver *driver, void *data); +typedef void (*CamelIMAPPLoginFunc)(struct _CamelIMAPPDriver *driver, char **login, char **pass, void *data); + +struct _CamelMimeMessage; + +struct _CamelIMAPPDriver { + CamelObject parent_object; + + struct _CamelIMAPPEngine *engine; + + struct _CamelIMAPPFolder *folder; + + /* current folder stuff */ + GPtrArray *summary; + guint32 uidvalidity; + guint32 exists; + guint32 recent; + guint32 unseen; + guint32 permanentflags; + + /* list stuff */ + GPtrArray *list_result; + GSList *list_commands; + guint32 list_flags; + + /* sem_t list_sem; for controlled access to list variables */ + + /* this is so the node is always in a list - easier exception management */ + EDList body_fetch; + EDList body_fetch_done; + + /* factory to get an appropriate sasl mech */ + CamelIMAPPSASLFunc get_sasl; + void *get_sasl_data; + + /* callbacks, get login username/pass */ + CamelIMAPPLoginFunc get_login; + void *get_login_data; +}; + +struct _CamelIMAPPDriverClass { + CamelObjectClass parent_class; +}; + +CamelType camel_imapp_driver_get_type (void); + +CamelIMAPPDriver * camel_imapp_driver_new(CamelIMAPPStream *stream); + +void camel_imapp_driver_set_sasl_factory(CamelIMAPPDriver *id, CamelIMAPPSASLFunc get_sasl, void *sasl_data); +void camel_imapp_driver_set_login_query(CamelIMAPPDriver *id, CamelIMAPPLoginFunc get_login, void *login_data); + +void camel_imapp_driver_login(CamelIMAPPDriver *id); + +void camel_imapp_driver_select(CamelIMAPPDriver *id, struct _CamelIMAPPFolder *folder); +void camel_imapp_driver_update(CamelIMAPPDriver *id, struct _CamelIMAPPFolder *folder); +void camel_imapp_driver_sync(CamelIMAPPDriver *id, gboolean expunge, struct _CamelIMAPPFolder *folder); + +struct _CamelStream * camel_imapp_driver_fetch(CamelIMAPPDriver *id, struct _CamelIMAPPFolder *folder, const char *uid, const char *body); +GPtrArray * camel_imapp_driver_list(CamelIMAPPDriver *id, const char *name, guint32 flags); + +struct _CamelStream *camel_imapp_driver_get(CamelIMAPPDriver *id, struct _CamelIMAPPFolder *folder, const char *uid); +void camel_imapp_driver_append(CamelIMAPPDriver *id, struct _CamelIMAPPFolder *folder, struct _CamelDataWrapper *); + +#endif |