## CamelIMAPXListResponse

CamelIMAPXListResponse — Stores an IMAP LIST response

## Functions

CamelIMAPXListResponse * | camel_imapx_list_response_new ()
guint | camel_imapx_list_response_hash ()
gboolean | camel_imapx_list_response_equal ()
gint | camel_imapx_list_response_compare ()
const gchar * | camel_imapx_list_response_get_mailbox_name ()
gchar | camel_imapx_list_response_get_separator ()
void | camel_imapx_list_response_add_attribute ()
gboolean | camel_imapx_list_response_has_attribute ()
GHashTable * | camel_imapx_list_response_dup_attributes ()
GVariant * | camel_imapx_list_response_ref_extended_item ()
const gchar * | camel_imapx_list_response_get_oldname ()

## Types and Values

struct | CamelIMAPXListResponse
#define | CAMEL_IMAPX_LIST_ATTR_NOINFERIORS
#define | CAMEL_IMAPX_LIST_ATTR_NOSELECT
#define | CAMEL_IMAPX_LIST_ATTR_MARKED
#define | CAMEL_IMAPX_LIST_ATTR_UNMARKED
#define | CAMEL_IMAPX_LIST_ATTR_NONEXISTENT
#define | CAMEL_IMAPX_LIST_ATTR_SUBSCRIBED
#define | CAMEL_IMAPX_LIST_ATTR_REMOTE
#define | CAMEL_IMAPX_LIST_ATTR_HASCHILDREN
#define | CAMEL_IMAPX_LIST_ATTR_HASNOCHILDREN
#define | CAMEL_IMAPX_LIST_ATTR_ALL
#define | CAMEL_IMAPX_LIST_ATTR_ARCHIVE
#define | CAMEL_IMAPX_LIST_ATTR_DRAFTS
#define | CAMEL_IMAPX_LIST_ATTR_FLAGGED
#define | CAMEL_IMAPX_LIST_ATTR_JUNK
#define | CAMEL_IMAPX_LIST_ATTR_SENT
#define | CAMEL_IMAPX_LIST_ATTR_TRASH

## Object Hierarchy

        GObject
        ╰── CamelIMAPXListResponse

## Includes

    #include <camel/camel.h>

## Description

CamelIMAPXListResponse encapsulates an IMAP LIST response, which consists of a set of mailbox attributes, a mailbox separator character, and the mailbox name. (Extended information for LIST responses, as described in

RFC 5258, to be

supported at a later date.)

CamelIMAPXListResponse can also convert the mailbox attributes to a CamelStoreInfoFlags / CamelFolderInfoFlags value for use with `camel_store_get_folder_info()`.

## Functions

### camel_imapx_list_response_new ()

    CamelIMAPXListResponse *
    camel_imapx_list_response_new (CamelIMAPXInputStream *stream,
                                   GCancellable *cancellable,
                                   GError **error);

Attempts to parse an IMAP LIST response from `stream` and, if successful, stores the response data in a new CamelIMAPXListResponse. If an error occurs, the function sets `error` and returns `NULL`.

#### Parameters

stream | a CamelIMAPXInputStream |
cancellable | a GCancellable |
error | return location for a GError, or `NULL` |

#### Returns

a CamelIMAPXListResponse, or `NULL`

Since 3.10

### camel_imapx_list_response_hash ()

    guint
    camel_imapx_list_response_hash (CamelIMAPXListResponse *response);

Generates a hash value for `response` based on the mailbox name. This function is intended for easily hashing a CamelIMAPXListResponse to add to a GHashTable or similar data structure.

#### Parameters

response | a CamelIMAPXListResponse |

#### Returns

a hash value for `response`

Since 3.10

### camel_imapx_list_response_equal ()

    gboolean
    camel_imapx_list_response_equal (CamelIMAPXListResponse *response_a,
                                     CamelIMAPXListResponse *response_b);

Checks two CamelIMAPXListResponse instances for equality based on their mailbox names.

#### Parameters

response_a | the first CamelIMAPXListResponse |
response_b | the second CamelIMAPXListResponse |

#### Returns

`TRUE` if `response_a` and `response_b` are equal

Since 3.10

### camel_imapx_list_response_compare ()

    gint
    camel_imapx_list_response_compare (CamelIMAPXListResponse *response_a,
                                       CamelIMAPXListResponse *response_b);

Compares two CamelIMAPXListResponse instances by their mailbox names.

#### Parameters

response_a | the first CamelIMAPXListResponse |
response_b | the second CamelIMAPXListResponse |

#### Returns

a negative value if `response_a` compares before `response_b` , zero if they compare equal, or a positive value if `response_a` compares after `response_b`

Since 3.10

### camel_imapx_list_response_get_mailbox_name ()

    const gchar *
    camel_imapx_list_response_get_mailbox_name
                                   (CamelIMAPXListResponse *response);

Returns the mailbox name for `response` .

#### Parameters

response | a CamelIMAPXListResponse |

#### Returns

the mailbox name

Since 3.10

### camel_imapx_list_response_get_separator ()

    gchar
    camel_imapx_list_response_get_separator
                                   (CamelIMAPXListResponse *response);

Returns the mailbox path separator character for `response` .

#### Parameters

response | a CamelIMAPXListResponse |

#### Returns

the mailbox path separator character

Since 3.10

### camel_imapx_list_response_add_attribute ()

    void
    camel_imapx_list_response_add_attribute
                                   (CamelIMAPXListResponse *response,
                                    const gchar *attribute);

Adds a mailbox attribute to `response` . The `attribute` should be one of the LIST attribute macros defined above.

#### Parameters

response | a CamelIMAPXListResponse |
attribute | a mailbox attribute |

Since 3.10

### camel_imapx_list_response_has_attribute ()

    gboolean
    camel_imapx_list_response_has_attribute
                                   (CamelIMAPXListResponse *response,
                                    const gchar *attribute);

Returns whether `response` includes the given mailbox attribute. The `attribute` should be one of the LIST attribute macros defined above.

#### Parameters

response | a CamelIMAPXListResponse |
attribute | a mailbox attribute |

#### Returns

`TRUE` if `response` has `attribute` , or else `FALSE`

Since 3.10

### camel_imapx_list_response_dup_attributes ()

    GHashTable *
    camel_imapx_list_response_dup_attributes
                                   (CamelIMAPXListResponse *response);

Returns a GHashTable of mailbox attributes to be used as a set. Use `g_hash_table_contains()` and `g_hash_table_get_keys()` to query for and list all mailbox attributes, respectively.

The hash table keys are all internalized strings and must not be freed. Free the returned GHashTable with `g_hash_table_destroy()` when finished with it.

#### Parameters

response | a CamelIMAPXListResponse |

#### Returns

a newly-created GHashTable

Since 3.10

### camel_imapx_list_response_ref_extended_item ()

    GVariant *
    camel_imapx_list_response_ref_extended_item
                                   (CamelIMAPXListResponse *response,
                                    const gchar *extended_item_tag);

Returns the extended item value for `extended_item_tag` as a GVariant. The type of the GVariant depends on the extended item. If no value for `extended_item_tag` exists, the function returns `NULL`.

The returned GVariant is referenced for thread-safety and should be unreferenced with `g_variant_unref()` when finished with it.

#### Parameters

response | a CamelIMAPXListResponse |
extended_item_tag | an extended item tag |

#### Returns

a GVariant, or `NULL`

Since 3.10

### camel_imapx_list_response_get_oldname ()

    const gchar *
    camel_imapx_list_response_get_oldname (CamelIMAPXListResponse *response);

Convenience function returns the value of the "OLDNAME" extended data item, or `NULL` if no such extended data item is present.

The presence of this extended data item indicates the mailbox has been renamed. See RFC 5465 Section 5.4 for further details.

#### Parameters

response | a CamelIMAPXListResponse |

#### Returns

the old mailbox name, or `NULL`

Since 3.12

## Types and Values

### struct CamelIMAPXListResponse

    struct CamelIMAPXListResponse;

Contains only private data that should be read and manipulated using the functions below.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_NOINFERIORS

    #define CAMEL_IMAPX_LIST_ATTR_NOINFERIORS "\\NoInferiors"

Refer to RFC 3501 section 7.2.2.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_NOSELECT

    #define CAMEL_IMAPX_LIST_ATTR_NOSELECT		"\\NoSelect"

Refer to RFC 3501 section 7.2.2.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_MARKED

    #define CAMEL_IMAPX_LIST_ATTR_MARKED		"\\Marked"

Refer to RFC 3501 section 7.2.2.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_UNMARKED

    #define CAMEL_IMAPX_LIST_ATTR_UNMARKED		"\\Unmarked"

Refer to RFC 3501 section 7.2.2.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_NONEXISTENT

    #define CAMEL_IMAPX_LIST_ATTR_NONEXISTENT "\\NonExistent"

Refer to RFC 5258 section 3.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_SUBSCRIBED

    #define CAMEL_IMAPX_LIST_ATTR_SUBSCRIBED "\\Subscribed"

Refer to RFC 5258 section 3.1.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_REMOTE

    #define CAMEL_IMAPX_LIST_ATTR_REMOTE		"\\Remote"

Refer to RFC 5258 section 3.1.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_HASCHILDREN

    #define CAMEL_IMAPX_LIST_ATTR_HASCHILDREN "\\HasChildren"

Refer to RFC 5258 section 4.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_HASNOCHILDREN

    #define CAMEL_IMAPX_LIST_ATTR_HASNOCHILDREN "\\HasNoChildren"

Refer to RFC 5258 section 4.

Since 3.10

### CAMEL_IMAPX_LIST_ATTR_ALL

    #define CAMEL_IMAPX_LIST_ATTR_ALL		"\\All"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_ARCHIVE

    #define CAMEL_IMAPX_LIST_ATTR_ARCHIVE		"\\Archive"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_DRAFTS

    #define CAMEL_IMAPX_LIST_ATTR_DRAFTS		"\\Drafts"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_FLAGGED

    #define CAMEL_IMAPX_LIST_ATTR_FLAGGED		"\\Flagged"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_JUNK

    #define CAMEL_IMAPX_LIST_ATTR_JUNK		"\\Junk"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_SENT

    #define CAMEL_IMAPX_LIST_ATTR_SENT		"\\Sent"

Refer to RFC 6154 section 2.

Since 3.12

### CAMEL_IMAPX_LIST_ATTR_TRASH

    #define CAMEL_IMAPX_LIST_ATTR_TRASH		"\\Trash"

Refer to RFC 6154 section 2.

Since 3.12