CamelIMAPXListResponse

CamelIMAPXListResponse — Stores an IMAP LIST response

Synopsis

#include <camel/camel.h>

struct              CamelIMAPXListResponse;
CamelIMAPXListResponse * camel_imapx_list_response_new  (CamelIMAPXInputStream *stream,
                                                         GCancellable *cancellable,
                                                         GError **error);
guint               camel_imapx_list_response_hash      (CamelIMAPXListResponse *response);
gboolean            camel_imapx_list_response_equal     (CamelIMAPXListResponse *response_a,
                                                         CamelIMAPXListResponse *response_b);
gint                camel_imapx_list_response_compare   (CamelIMAPXListResponse *response_a,
                                                         CamelIMAPXListResponse *response_b);
const gchar *       camel_imapx_list_response_get_mailbox_name
                                                        (CamelIMAPXListResponse *response);
gchar               camel_imapx_list_response_get_separator
                                                        (CamelIMAPXListResponse *response);
#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
void                camel_imapx_list_response_add_attribute
                                                        (CamelIMAPXListResponse *response,
                                                         const gchar *attribute);
gboolean            camel_imapx_list_response_has_attribute
                                                        (CamelIMAPXListResponse *response,
                                                         const gchar *attribute);
GHashTable *        camel_imapx_list_response_dup_attributes
                                                        (CamelIMAPXListResponse *response);
GVariant *          camel_imapx_list_response_ref_extended_item
                                                        (CamelIMAPXListResponse *response,
                                                         const gchar *extended_item_tag);
const gchar *       camel_imapx_list_response_get_oldname
                                                        (CamelIMAPXListResponse *response);

Object Hierarchy

  GObject
   +----CamelIMAPXListResponse

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().

Details

struct CamelIMAPXListResponse

struct CamelIMAPXListResponse;

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

Since 3.10


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.

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.

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.

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.

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.

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.

response :

a CamelIMAPXListResponse

Returns :

the mailbox path separator character

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


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.

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.

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.

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.

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.

response :

a CamelIMAPXListResponse

Returns :

the old mailbox name, or NULL

Since 3.12