## CamelIMAPXJob CamelIMAPXJob |

## Functions

#define | CAMEL_IS_IMAPX_JOB()
CamelIMAPXJob * | camel_imapx_job_new ()
CamelIMAPXJob * | camel_imapx_job_ref ()
void | camel_imapx_job_unref ()
gboolean | camel_imapx_job_check ()
void | camel_imapx_job_cancel ()
gboolean | camel_imapx_job_wait ()
void | camel_imapx_job_done ()
gboolean | camel_imapx_job_run ()
gboolean | camel_imapx_job_matches ()
gpointer | camel_imapx_job_get_data ()
void | camel_imapx_job_set_data ()
gboolean | camel_imapx_job_has_mailbox ()
CamelIMAPXMailbox * | camel_imapx_job_ref_mailbox ()
void | camel_imapx_job_set_mailbox ()
GCancellable * | camel_imapx_job_get_cancellable ()
void | camel_imapx_job_take_error ()

## Types and Values

struct | CamelIMAPXJob

## Description

## Functions

### CAMEL_IS_IMAPX_JOB()

    #define             CAMEL_IS_IMAPX_JOB(job)

### camel_imapx_job_new ()

    CamelIMAPXJob *
    camel_imapx_job_new (GCancellable *cancellable);

### camel_imapx_job_ref ()

    CamelIMAPXJob *
    camel_imapx_job_ref (CamelIMAPXJob *job);

### camel_imapx_job_unref ()

    void
    camel_imapx_job_unref (CamelIMAPXJob *job);

### camel_imapx_job_check ()

    gboolean
    camel_imapx_job_check (CamelIMAPXJob *job);

### camel_imapx_job_cancel ()

    void
    camel_imapx_job_cancel (CamelIMAPXJob *job);

### camel_imapx_job_wait ()

    gboolean
    camel_imapx_job_wait (CamelIMAPXJob *job,
                          GError **error);

Blocks until `job` completes by way of `camel_imapx_job_done()`. If `job` completed successfully, the function returns `TRUE`. If `job` was given a GError by way of `camel_imapx_job_take_error()`, or its GCancellable was cancelled, the function sets `error` and returns `FALSE`.

#### Parameters

job | a CamelIMAPXJob |
error | return location for a GError, or `NULL` |

#### Returns

whether `job` completed successfully

Since 3.10

### camel_imapx_job_done ()

    void
    camel_imapx_job_done (CamelIMAPXJob *job);

### camel_imapx_job_run ()

    gboolean
    camel_imapx_job_run (CamelIMAPXJob *job,
                         CamelIMAPXServer *is,
                         GError **error);

### camel_imapx_job_matches ()

    gboolean
    camel_imapx_job_matches (CamelIMAPXJob *job,
                             CamelIMAPXMailbox *mailbox,
                             const gchar *uid);

### camel_imapx_job_get_data ()

    gpointer
    camel_imapx_job_get_data (CamelIMAPXJob *job);

### camel_imapx_job_set_data ()

    void
    camel_imapx_job_set_data (CamelIMAPXJob *job,
                              gpointer data,
                              GDestroyNotify destroy_data);

### camel_imapx_job_has_mailbox ()

    gboolean
    camel_imapx_job_has_mailbox (CamelIMAPXJob *job,
                                 CamelIMAPXMailbox *mailbox);

### camel_imapx_job_ref_mailbox ()

    CamelIMAPXMailbox *
    camel_imapx_job_ref_mailbox (CamelIMAPXJob *job);

### camel_imapx_job_set_mailbox ()

    void
    camel_imapx_job_set_mailbox (CamelIMAPXJob *job,
                                 CamelIMAPXMailbox *mailbox);

### camel_imapx_job_get_cancellable ()

    GCancellable *
    camel_imapx_job_get_cancellable (CamelIMAPXJob *job);

### camel_imapx_job_take_error ()

    void
    camel_imapx_job_take_error (CamelIMAPXJob *job,
                                GError *error);

Takes over the caller's ownership of `error` , so the caller does not need to free it any more. Call this when a CamelIMAPXCommand fails and the `job` is to be aborted.

The `error` will be returned to callers of `camel_imapx_job_wait()` or `camel_imapx_job_run()`.

#### Parameters

job | a CamelIMAPXJob |
error | a GError |

Since 3.10

## Types and Values

### struct CamelIMAPXJob

    struct CamelIMAPXJob {
    	/* Whether to pop a status message off the
    	 * GCancellable when the job is finalized. */
    	gboolean pop_operation_msg;

    	gboolean (*start)		(CamelIMAPXJob *job,
    						 CamelIMAPXServer *is,
    						 GCancellable *cancellable,
    						 GError **error);
    	gboolean (*matches)		(CamelIMAPXJob *job,
    						 CamelIMAPXMailbox *mailbox,
    						 const gchar *uid);

    	guint noreply:1; /* dont wait for reply */
    	guint32 type;		/* operation type */
    	gint pri;		/* the command priority */
    	volatile gint commands; /* counts how many commands are outstanding */
    };