|  |  |  | 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_STREAM,
	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 queuewith a matchingtag, orNULLif no match is found.
The returned CamelIMAPXCommand is referenced for thread-safety and should
be unreferenced withcamel_imapx_command_unref()when finished with it. | 
Since 3.10