CamelFolderSummary
3
CAMEL Library

# CamelFolderSummary

## Synopsis

    struct              CamelFolderSummary;
                        CamelMessageInfo;
                        CamelMessageInfoBase;
                        CamelFolderMetaSummary;
    struct              CamelMessageContentInfo;
    enum                CamelMessageFlags;
    #define             CAMEL_MESSAGE_SYSTEM_MASK
                        CamelFlag;
                        CamelTag;
                        CamelSummaryMessageID;
                        CamelSummaryReferences;
    enum                CamelFolderSummaryFlags;
    CamelFolderSummary* camel_folder_summary_new            (struct _CamelFolder *folder);
    void                camel_folder_summary_set_filename   (CamelFolderSummary *summary,
                                                             const char *filename);
    void                camel_folder_summary_set_index      (CamelFolderSummary *summary,
                                                             CamelIndex *index);
    void                camel_folder_summary_set_build_content
                                                            (CamelFolderSummary *summary,
                                                             gboolean state);
    guint32             camel_folder_summary_next_uid       (CamelFolderSummary *summary);
    char*               camel_folder_summary_next_uid_string
                                                            (CamelFolderSummary *summary);
    void                camel_folder_summary_set_uid        (CamelFolderSummary *summary,
                                                             guint32 uid);
    int                 camel_folder_summary_load           (CamelFolderSummary *summary);
    int                 camel_folder_summary_save           (CamelFolderSummary *summary);
    int                 camel_folder_summary_header_load    (CamelFolderSummary *summary);
    void                camel_folder_summary_touch          (CamelFolderSummary *summary);
    void                camel_folder_summary_add            (CamelFolderSummary *summary,
                                                             CamelMessageInfo *info);
    CamelMessageInfo*   camel_folder_summary_add_from_header
                                                            (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *headers);
    CamelMessageInfo*   camel_folder_summary_add_from_parser
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeParser *parser);
    CamelMessageInfo*   camel_folder_summary_add_from_message
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeMessage *message);
    CamelMessageInfo*   camel_folder_summary_info_new_from_header
                                                            (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *headers);
    CamelMessageInfo*   camel_folder_summary_info_new_from_parser
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeParser *parser);
    CamelMessageInfo*   camel_folder_summary_info_new_from_message
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeMessage *message);
    CamelMessageContentInfo* camel_folder_summary_content_info_new
                                                            (CamelFolderSummary *summary);
    void                camel_folder_summary_content_info_free
                                                            (CamelFolderSummary *summary,
                                                             CamelMessageContentInfo *ci);
    void                camel_folder_summary_remove         (CamelFolderSummary *summary,
                                                             CamelMessageInfo *info);
    void                camel_folder_summary_remove_uid     (CamelFolderSummary *summary,
                                                             const char *uid);
    void                camel_folder_summary_remove_index   (CamelFolderSummary *summary,
                                                             int index);
    void                camel_folder_summary_remove_range   (CamelFolderSummary *summary,
                                                             int start,
                                                             int end);
    void                camel_folder_summary_clear          (CamelFolderSummary *summary);
    int                 camel_folder_summary_count          (CamelFolderSummary *summary);
    CamelMessageInfo*   camel_folder_summary_index          (CamelFolderSummary *summary,
                                                             int index);
    CamelMessageInfo*   camel_folder_summary_uid            (CamelFolderSummary *summary,
                                                             const char *uid);
    GPtrArray*          camel_folder_summary_array          (CamelFolderSummary *summary);
    void                camel_folder_summary_array_free     (CamelFolderSummary *summary,
                                                             GPtrArray *array);
    int                 camel_folder_summary_encode_token   (FILE *out,
                                                             const char *str);
    int                 camel_folder_summary_decode_token   (FILE *in,
                                                             char **str);
    gboolean            camel_flag_get                      (CamelFlag **list,
                                                             const char *name);
    gboolean            camel_flag_set                      (CamelFlag **list,
                                                             const char *name,
                                                             gboolean state);
    gboolean            camel_flag_list_copy                (CamelFlag **to,
                                                             CamelFlag **from);
    int                 camel_flag_list_size                (CamelFlag **list);
    void                camel_flag_list_free                (CamelFlag **list);
    guint32             camel_system_flag                   (const char *name);
    gboolean            camel_system_flag_get               (guint32 flags,
                                                             const char *name);
    const char*         camel_tag_get                       (CamelTag **list,
                                                             const char *name);
    gboolean            camel_tag_set                       (CamelTag **list,
                                                             const char *name,
                                                             const char *value);
    gboolean            camel_tag_list_copy                 (CamelTag **to,
                                                             CamelTag **from);
    int                 camel_tag_list_size                 (CamelTag **list);
    void                camel_tag_list_free                 (CamelTag **list);
    void*               camel_message_info_new              (CamelFolderSummary *summary);
    void                camel_message_info_ref              (void *info);
    CamelMessageInfo*   camel_message_info_new_from_header  (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *header);
    void                camel_message_info_free             (void *info);
    void*               camel_message_info_clone            (const void *info);
    const void*         camel_message_info_ptr              (const CamelMessageInfo *mi,
                                                             int id);
    guint32             camel_message_info_uint32           (const CamelMessageInfo *mi,
                                                             int id);
    time_t              camel_message_info_time             (const CamelMessageInfo *mi,
                                                             int id);
    #define             camel_message_info_uid              (mi)
    #define             camel_message_info_subject          (mi)
    #define             camel_message_info_from             (mi)
    #define             camel_message_info_to               (mi)
    #define             camel_message_info_cc               (mi)
    #define             camel_message_info_mlist            (mi)
    #define             camel_message_info_flags            (mi)
    #define             camel_message_info_size             (mi)
    #define             camel_message_info_date_sent        (mi)
    #define             camel_message_info_date_received    (mi)
    #define             camel_message_info_message_id       (mi)
    #define             camel_message_info_references       (mi)
    #define             camel_message_info_user_flags       (mi)
    #define             camel_message_info_user_tags        (mi)
    gboolean            camel_message_info_user_flag        (const CamelMessageInfo *mi,
                                                             const char *id);
    const char*         camel_message_info_user_tag         (const CamelMessageInfo *mi,
                                                             const char *id);
    gboolean            camel_message_info_set_flags        (CamelMessageInfo *mi,
                                                             guint32 mask,
                                                             guint32 set);
    gboolean            camel_message_info_set_user_flag    (CamelMessageInfo *mi,
                                                             const char *id,
                                                             gboolean state);
    gboolean            camel_message_info_set_user_tag     (CamelMessageInfo *mi,
                                                             const char *id,
                                                             const char *val);
    void                camel_content_info_dump             (CamelMessageContentInfo *ci,
                                                             int depth);
    void                camel_message_info_dump             (CamelMessageInfo *mi);

## Description

## Details

### struct CamelFolderSummary

    struct CamelFolderSummary {
    	CamelObject parent;

    	struct _CamelFolderSummaryPrivate *priv;

    	/* header info */
    	guint32 version;	/* version of file loaded/loading */
    	guint32 flags;		/* flags */
    	guint32 nextuid;	/* next uid? */
    	time_t time;		/* timestamp for this summary (for implementors to use) */
    	guint32 saved_count;	/* how many were saved/loaded */
    	guint32 unread_count;	/* handy totals */
    	guint32 deleted_count;
    	guint32 junk_count;

    	/* sizes of memory objects */
    	guint32 message_info_size;
    	guint32 content_info_size;

    	/* memory allocators (setup automatically) */
    	struct _EMemChunk *message_info_chunks;
    	struct _EMemChunk *content_info_chunks;

    	char *summary_path;
    	gboolean build_content;	/* do we try and parse/index the content, or not? */

    	GPtrArray *messages;	/* CamelMessageInfo's */
    	GHashTable *messages_uid; /* CamelMessageInfo's by uid */

    	struct _CamelFolder *folder; /* parent folder, for events */
    	struct _CamelFolderMetaSummary *meta_summary; /* Meta summary */
    };

### CamelMessageInfo

    typedef struct {
    	CamelFolderSummary *summary;

    	guint32 refcount;	/* ??? */
    	char *uid;
    } CamelMessageInfo;

### CamelMessageInfoBase

    typedef struct {
    	CamelFolderSummary *summary;

    	guint32 refcount;	/* ??? */
    	char *uid;

    	const char *subject;
    	const char *from;
    	const char *to;
    	const char *cc;
    	const char *mlist;

    	guint32 flags;
    	guint32 size;

    	time_t date_sent;
    	time_t date_received;

    	CamelSummaryMessageID message_id;
    	CamelSummaryReferences *references;/* from parent to root */

    	struct _CamelFlag *user_flags;
    	struct _CamelTag *user_tags;

    	/* tree of content description - NULL if it is not available */
    	CamelMessageContentInfo *content;
    	struct _camel_header_param *headers;
    } CamelMessageInfoBase;

### CamelFolderMetaSummary

    typedef struct {
    	guint32 major;		/* Major version of meta-summary */
    	guint32 minor;		/* Minor version of meta-summary */
    	guint32 uid_len;	/* Length of UID (for implementors to use) */
    	gboolean msg_expunged;	/* Whether any message is expunged or not */
    	char *path;		/* Path to meta-summary-file */
    } CamelFolderMetaSummary;

### struct CamelMessageContentInfo

    struct CamelMessageContentInfo {
    	struct _CamelMessageContentInfo *next;

    	struct _CamelMessageContentInfo *childs;
    	struct _CamelMessageContentInfo *parent;

    	CamelContentType *type;
    	char *id;
    	char *description;
    	char *encoding;		/* this should be an enum?? */
    	guint32 size;
    };

### enum CamelMessageFlags

    typedef enum _CamelMessageFlags {
    	CAMEL_MESSAGE_ANSWERED = 1<<0,
    	CAMEL_MESSAGE_DELETED = 1<<1,
    	CAMEL_MESSAGE_DRAFT = 1<<2,
    	CAMEL_MESSAGE_FLAGGED = 1<<3,
    	CAMEL_MESSAGE_SEEN = 1<<4,

    	/* these aren't really system flag bits, but are convenience flags */
    	CAMEL_MESSAGE_ATTACHMENTS = 1<<5,
    	CAMEL_MESSAGE_ANSWERED_ALL = 1<<6,
    	CAMEL_MESSAGE_JUNK = 1<<7,
    	CAMEL_MESSAGE_SECURE = 1<<8,
    	CAMEL_MESSAGE_USER_NOT_DELETABLE = 1<<9,
    	CAMEL_MESSAGE_HIDDEN = 1<<10,
    	CAMEL_MESSAGE_NOTJUNK = 1<<11,

    	/* following flags are for the folder, and are not really permanent flags */
    	CAMEL_MESSAGE_FOLDER_FLAGGED = 1<<16, /* for use by the folder implementation */

    	/* flags after 1<<16 are used by camel providers,
               if adding non permanent flags, add them to the end  */

    	CAMEL_MESSAGE_JUNK_LEARN = 1<<30, /* used when setting CAMEL_MESSAGE_JUNK flag
    					     to say that we request junk plugin
    					     to learn that message as junk/non junk */
    	CAMEL_MESSAGE_USER = 1<<31 /* supports user flags */
    } CamelMessageFlags;

### CAMEL_MESSAGE_SYSTEM_MASK

    #define CAMEL_MESSAGE_SYSTEM_MASK (0xffff << 16)

### CamelFlag

    typedef struct {
    	struct _CamelFlag *next;
    	char name[1];		/* name allocated as part of the structure */
    } CamelFlag;

### CamelTag

    typedef struct {
    	struct _CamelTag *next;
    	char *value;
    	char name[1];		/* name allocated as part of the structure */
    } CamelTag;

### CamelSummaryMessageID

    typedef struct {
    	union {
    		guint64 id;
    		unsigned char hash[8];
    		struct {
    			guint32 hi;
    			guint32 lo;
    		} part;
    	} id;
    } CamelSummaryMessageID;

### CamelSummaryReferences

    typedef struct {
    	int size;
    	CamelSummaryMessageID references[1];
    } CamelSummaryReferences;

### enum CamelFolderSummaryFlags

    typedef enum _CamelFolderSummaryFlags {
    	CAMEL_SUMMARY_DIRTY = 1<<0
    } CamelFolderSummaryFlags;

### camel_folder_summary_new ()

    CamelFolderSummary* camel_folder_summary_new            (struct _CamelFolder *folder);

`folder` :

Returns :

### camel_folder_summary_set_filename ()

    void                camel_folder_summary_set_filename   (CamelFolderSummary *summary,
                                                             const char *filename);

`summary` :

`filename` :

### camel_folder_summary_set_index ()

    void                camel_folder_summary_set_index      (CamelFolderSummary *summary,
                                                             CamelIndex *index);

`summary` :

`index` :

### camel_folder_summary_set_build_content ()

    void                camel_folder_summary_set_build_content
                                                            (CamelFolderSummary *summary,
                                                             gboolean state);

`summary` :

`state` :

### camel_folder_summary_next_uid ()

    guint32             camel_folder_summary_next_uid       (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_next_uid_string ()

    char*               camel_folder_summary_next_uid_string
                                                            (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_set_uid ()

    void                camel_folder_summary_set_uid        (CamelFolderSummary *summary,
                                                             guint32 uid);

`summary` :

`uid` :

### camel_folder_summary_load ()

    int                 camel_folder_summary_load           (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_save ()

    int                 camel_folder_summary_save           (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_header_load ()

    int                 camel_folder_summary_header_load    (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_touch ()

    void                camel_folder_summary_touch          (CamelFolderSummary *summary);

`summary` :

### camel_folder_summary_add ()

    void                camel_folder_summary_add            (CamelFolderSummary *summary,
                                                             CamelMessageInfo *info);

`summary` :

`info` :

### camel_folder_summary_add_from_header ()

    CamelMessageInfo*   camel_folder_summary_add_from_header
                                                            (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *headers);

`summary` :

`headers` :

Returns :

### camel_folder_summary_add_from_parser ()

    CamelMessageInfo*   camel_folder_summary_add_from_parser
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeParser *parser);

`summary` :

`parser` :

Returns :

### camel_folder_summary_add_from_message ()

    CamelMessageInfo*   camel_folder_summary_add_from_message
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeMessage *message);

`summary` :

`message` :

Returns :

### camel_folder_summary_info_new_from_header ()

    CamelMessageInfo*   camel_folder_summary_info_new_from_header
                                                            (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *headers);

`summary` :

`headers` :

Returns :

### camel_folder_summary_info_new_from_parser ()

    CamelMessageInfo*   camel_folder_summary_info_new_from_parser
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeParser *parser);

`summary` :

`parser` :

Returns :

### camel_folder_summary_info_new_from_message ()

    CamelMessageInfo*   camel_folder_summary_info_new_from_message
                                                            (CamelFolderSummary *summary,
                                                             CamelMimeMessage *message);

`summary` :

`message` :

Returns :

### camel_folder_summary_content_info_new ()

    CamelMessageContentInfo* camel_folder_summary_content_info_new
                                                            (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_content_info_free ()

    void                camel_folder_summary_content_info_free
                                                            (CamelFolderSummary *summary,
                                                             CamelMessageContentInfo *ci);

`summary` :

`ci` :

### camel_folder_summary_remove ()

    void                camel_folder_summary_remove         (CamelFolderSummary *summary,
                                                             CamelMessageInfo *info);

`summary` :

`info` :

### camel_folder_summary_remove_uid ()

    void                camel_folder_summary_remove_uid     (CamelFolderSummary *summary,
                                                             const char *uid);

`summary` :

`uid` :

### camel_folder_summary_remove_index ()

    void                camel_folder_summary_remove_index   (CamelFolderSummary *summary,
                                                             int index);

`summary` :

`index` :

### camel_folder_summary_remove_range ()

    void                camel_folder_summary_remove_range   (CamelFolderSummary *summary,
                                                             int start,
                                                             int end);

`summary` :

`start` :

`end` :

### camel_folder_summary_clear ()

    void                camel_folder_summary_clear          (CamelFolderSummary *summary);

`summary` :

### camel_folder_summary_count ()

    int                 camel_folder_summary_count          (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_index ()

    CamelMessageInfo*   camel_folder_summary_index          (CamelFolderSummary *summary,
                                                             int index);

`summary` :

`index` :

Returns :

### camel_folder_summary_uid ()

    CamelMessageInfo*   camel_folder_summary_uid            (CamelFolderSummary *summary,
                                                             const char *uid);

`summary` :

`uid` :

Returns :

### camel_folder_summary_array ()

    GPtrArray*          camel_folder_summary_array          (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_folder_summary_array_free ()

    void                camel_folder_summary_array_free     (CamelFolderSummary *summary,
                                                             GPtrArray *array);

`summary` :

`array` :

### camel_folder_summary_encode_token ()

    int                 camel_folder_summary_encode_token   (FILE *out,
                                                             const char *str);

`out` :

`str` :

Returns :

### camel_folder_summary_decode_token ()

    int                 camel_folder_summary_decode_token   (FILE *in,
                                                             char **str);

`in` :

`str` :

Returns :

### camel_flag_get ()

    gboolean            camel_flag_get                      (CamelFlag **list,
                                                             const char *name);

`list` :

`name` :

Returns :

### camel_flag_set ()

    gboolean            camel_flag_set                      (CamelFlag **list,
                                                             const char *name,
                                                             gboolean state);

`list` :

`name` :

`state` :

Returns :

### camel_flag_list_copy ()

    gboolean            camel_flag_list_copy                (CamelFlag **to,
                                                             CamelFlag **from);

`to` :

`from` :

Returns :

### camel_flag_list_size ()

    int                 camel_flag_list_size                (CamelFlag **list);

`list` :

Returns :

### camel_flag_list_free ()

    void                camel_flag_list_free                (CamelFlag **list);

`list` :

### camel_system_flag ()

    guint32             camel_system_flag                   (const char *name);

`name` :

Returns :

### camel_system_flag_get ()

    gboolean            camel_system_flag_get               (guint32 flags,
                                                             const char *name);

`flags` :

`name` :

Returns :

### camel_tag_get ()

    const char*         camel_tag_get                       (CamelTag **list,
                                                             const char *name);

`list` :

`name` :

Returns :

### camel_tag_set ()

    gboolean            camel_tag_set                       (CamelTag **list,
                                                             const char *name,
                                                             const char *value);

`list` :

`name` :

`value` :

Returns :

### camel_tag_list_copy ()

    gboolean            camel_tag_list_copy                 (CamelTag **to,
                                                             CamelTag **from);

`to` :

`from` :

Returns :

### camel_tag_list_size ()

    int                 camel_tag_list_size                 (CamelTag **list);

`list` :

Returns :

### camel_tag_list_free ()

    void                camel_tag_list_free                 (CamelTag **list);

`list` :

### camel_message_info_new ()

    void*               camel_message_info_new              (CamelFolderSummary *summary);

`summary` :

Returns :

### camel_message_info_ref ()

    void                camel_message_info_ref              (void *info);

`info` :

### camel_message_info_new_from_header ()

    CamelMessageInfo*   camel_message_info_new_from_header  (CamelFolderSummary *summary,
                                                             struct _camel_header_raw *header);

`summary` :

`header` :

Returns :

### camel_message_info_free ()

    void                camel_message_info_free             (void *info);

`info` :

### camel_message_info_clone ()

    void*               camel_message_info_clone            (const void *info);

`info` :

Returns :

### camel_message_info_ptr ()

    const void*         camel_message_info_ptr              (const CamelMessageInfo *mi,
                                                             int id);

`mi` :

`id` :

Returns :

### camel_message_info_uint32 ()

    guint32             camel_message_info_uint32           (const CamelMessageInfo *mi,
                                                             int id);

`mi` :

`id` :

Returns :

### camel_message_info_time ()

    time_t              camel_message_info_time             (const CamelMessageInfo *mi,
                                                             int id);

`mi` :

`id` :

Returns :

### camel_message_info_uid()

    #define camel_message_info_uid(mi) ((const char *)((const CamelMessageInfo *)mi)->uid)

`mi` :

### camel_message_info_subject()

    #define camel_message_info_subject(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SUBJECT))

`mi` :

### camel_message_info_from()

    #define camel_message_info_from(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FROM))

`mi` :

### camel_message_info_to()

    #define camel_message_info_to(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_TO))

`mi` :

### camel_message_info_cc()

    #define camel_message_info_cc(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_CC))

`mi` :

### camel_message_info_mlist()

    #define camel_message_info_mlist(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MLIST))

`mi` :

### camel_message_info_flags()

    #define camel_message_info_flags(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FLAGS)

`mi` :

### camel_message_info_size()

    #define camel_message_info_size(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SIZE)

`mi` :

### camel_message_info_date_sent()

    #define camel_message_info_date_sent(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_SENT)

`mi` :

### camel_message_info_date_received()

    #define camel_message_info_date_received(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_RECEIVED)

`mi` :

### camel_message_info_message_id()

    #define camel_message_info_message_id(mi) ((const CamelSummaryMessageID *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MESSAGE_ID))

`mi` :

### camel_message_info_references()

    #define camel_message_info_references(mi) ((const CamelSummaryReferences *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_REFERENCES))

`mi` :

### camel_message_info_user_flags()

    #define camel_message_info_user_flags(mi) ((const CamelFlag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_FLAGS))

`mi` :

### camel_message_info_user_tags()

    #define camel_message_info_user_tags(mi) ((const CamelTag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_TAGS))

`mi` :

### camel_message_info_user_flag ()

    gboolean            camel_message_info_user_flag        (const CamelMessageInfo *mi,
                                                             const char *id);

`mi` :

`id` :

Returns :

### camel_message_info_user_tag ()

    const char*         camel_message_info_user_tag         (const CamelMessageInfo *mi,
                                                             const char *id);

`mi` :

`id` :

Returns :

### camel_message_info_set_flags ()

    gboolean            camel_message_info_set_flags        (CamelMessageInfo *mi,
                                                             guint32 mask,
                                                             guint32 set);

`mi` :

`mask` :

`set` :

Returns :

### camel_message_info_set_user_flag ()

    gboolean            camel_message_info_set_user_flag    (CamelMessageInfo *mi,
                                                             const char *id,
                                                             gboolean state);

`mi` :

`id` :

`state` :

Returns :

### camel_message_info_set_user_tag ()

    gboolean            camel_message_info_set_user_tag     (CamelMessageInfo *mi,
                                                             const char *id,
                                                             const char *val);

`mi` :

`id` :

`val` :

Returns :

### camel_content_info_dump ()

    void                camel_content_info_dump             (CamelMessageContentInfo *ci,
                                                             int depth);

`ci` :

`depth` :

### camel_message_info_dump ()

    void                camel_message_info_dump             (CamelMessageInfo *mi);

`mi` :