| Camel Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#define CAMEL_IS_IMAPX_COMMAND (command) enum CamelIMAPXCommandPartType; void (*CamelIMAPXCommandFunc) (struct _CamelIMAPXServer *is,CamelIMAPXCommand *ic); struct CamelIMAPXCommand; struct CamelIMAPXCommandPart; CamelIMAPXCommand * camel_imapx_command_new (struct _CamelIMAPXServer *is,const gchar *name,CamelIMAPXMailbox *mailbox,const gchar *format,...); CamelIMAPXCommand * camel_imapx_command_ref (CamelIMAPXCommand *ic); void camel_imapx_command_unref (CamelIMAPXCommand *ic); gboolean camel_imapx_command_check (CamelIMAPXCommand *ic); gint camel_imapx_command_compare (CamelIMAPXCommand *ic1,CamelIMAPXCommand *ic2); struct _CamelIMAPXJob * camel_imapx_command_get_job (CamelIMAPXCommand *ic); void camel_imapx_command_set_job (CamelIMAPXCommand *ic,struct _CamelIMAPXJob *job); CamelIMAPXMailbox * camel_imapx_command_ref_mailbox (CamelIMAPXCommand *ic); void camel_imapx_command_add (CamelIMAPXCommand *ic,const gchar *format,...); void camel_imapx_command_addv (CamelIMAPXCommand *ic,const gchar *format,va_list ap); void camel_imapx_command_add_part (CamelIMAPXCommand *ic,CamelIMAPXCommandPartType type,gpointer data); void camel_imapx_command_close (CamelIMAPXCommand *ic); void camel_imapx_command_wait (CamelIMAPXCommand *ic); void camel_imapx_command_done (CamelIMAPXCommand *ic); void camel_imapx_command_failed (CamelIMAPXCommand *ic,const GError *error); gboolean camel_imapx_command_set_error_if_failed (CamelIMAPXCommand *ic,GError **error); CamelIMAPXCommandQueue; CamelIMAPXCommandQueue * camel_imapx_command_queue_new (void); void camel_imapx_command_queue_free (CamelIMAPXCommandQueue *queue); void camel_imapx_command_queue_transfer (CamelIMAPXCommandQueue *from,CamelIMAPXCommandQueue *to); void camel_imapx_command_queue_push_tail (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic); void camel_imapx_command_queue_insert_sorted (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic); gboolean camel_imapx_command_queue_is_empty (CamelIMAPXCommandQueue *queue); guint camel_imapx_command_queue_get_length (CamelIMAPXCommandQueue *queue); CamelIMAPXCommand * camel_imapx_command_queue_peek_head (CamelIMAPXCommandQueue *queue); GList * camel_imapx_command_queue_peek_head_link (CamelIMAPXCommandQueue *queue); gboolean camel_imapx_command_queue_remove (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic); void camel_imapx_command_queue_delete_link (CamelIMAPXCommandQueue *queue,GList *link); CamelIMAPXCommand * camel_imapx_command_queue_ref_by_tag (CamelIMAPXCommandQueue *queue,guint32 tag);
typedef enum {
CAMEL_IMAPX_COMMAND_SIMPLE = 0,
CAMEL_IMAPX_COMMAND_DATAWRAPPER,
CAMEL_IMAPX_COMMAND_AUTH,
CAMEL_IMAPX_COMMAND_FILE,
CAMEL_IMAPX_COMMAND_STRING,
CAMEL_IMAPX_COMMAND_MASK = 0xff,
/* Continuation with LITERAL+ */
CAMEL_IMAPX_COMMAND_LITERAL_PLUS = 1 << 14,
/* Does this command expect continuation? */
CAMEL_IMAPX_COMMAND_CONTINUATION = 1 << 15
} CamelIMAPXCommandPartType;
void (*CamelIMAPXCommandFunc) (struct _CamelIMAPXServer *is,CamelIMAPXCommand *ic);
struct CamelIMAPXCommand {
struct _CamelIMAPXServer *is;
gint pri;
/* Command name/type (e.g. FETCH) */
const gchar *name;
/* Status for command, indicates it is complete if != NULL. */
struct _status_info *status;
guint32 tag;
GQueue parts;
GList *current_part;
/* Responsible for free'ing the command. */
CamelIMAPXCommandFunc complete;
};
struct CamelIMAPXCommandPart {
gint data_size;
gchar *data;
CamelIMAPXCommandPartType type;
gint ob_size;
gpointer ob;
};
CamelIMAPXCommand * camel_imapx_command_new (struct _CamelIMAPXServer *is,const gchar *name,CamelIMAPXMailbox *mailbox,const gchar *format,...);
gint camel_imapx_command_compare (CamelIMAPXCommand *ic1,CamelIMAPXCommand *ic2);
struct _CamelIMAPXJob * camel_imapx_command_get_job (CamelIMAPXCommand *ic);
void camel_imapx_command_set_job (CamelIMAPXCommand *ic,struct _CamelIMAPXJob *job);
CamelIMAPXMailbox * camel_imapx_command_ref_mailbox (CamelIMAPXCommand *ic);
void camel_imapx_command_add (CamelIMAPXCommand *ic,const gchar *format,...);
void camel_imapx_command_addv (CamelIMAPXCommand *ic,const gchar *format,va_list ap);
void camel_imapx_command_add_part (CamelIMAPXCommand *ic,CamelIMAPXCommandPartType type,gpointer data);
void camel_imapx_command_failed (CamelIMAPXCommand *ic,const GError *error);
Copies error to be returned in camel_imapx_command_set_error_if_failed().
Call this function if a networking or parsing error occurred to force all
active IMAP commands to abort processing.
|
a CamelIMAPXCommand |
|
the error which caused the failure |
Since 3.10
gboolean camel_imapx_command_set_error_if_failed (CamelIMAPXCommand *ic,GError **error);
void camel_imapx_command_queue_free (CamelIMAPXCommandQueue *queue);
void camel_imapx_command_queue_transfer (CamelIMAPXCommandQueue *from,CamelIMAPXCommandQueue *to);
void camel_imapx_command_queue_push_tail (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic);
void camel_imapx_command_queue_insert_sorted (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic);
gboolean camel_imapx_command_queue_is_empty (CamelIMAPXCommandQueue *queue);
guint camel_imapx_command_queue_get_length
(CamelIMAPXCommandQueue *queue);
CamelIMAPXCommand * camel_imapx_command_queue_peek_head (CamelIMAPXCommandQueue *queue);
GList * camel_imapx_command_queue_peek_head_link
(CamelIMAPXCommandQueue *queue);
gboolean camel_imapx_command_queue_remove (CamelIMAPXCommandQueue *queue,CamelIMAPXCommand *ic);
void camel_imapx_command_queue_delete_link (CamelIMAPXCommandQueue *queue,GList *link);
CamelIMAPXCommand * camel_imapx_command_queue_ref_by_tag (CamelIMAPXCommandQueue *queue,guint32 tag);
|
a CamelIMAPXCommandQueue |
|
a CamelIMAPXCommand tag |
Returns : |
the CamelIMAPXCommand in queue with a matching tag, or NULL
if no match is found.
The returned CamelIMAPXCommand is referenced for thread-safety and should
be unreferenced with camel_imapx_command_unref() when finished with it. |
Since 3.10