<refentry id="camel-CamelFolderSummary">
<refmeta>
<refentrytitle role="top_of_page" id="camel-CamelFolderSummary.top_of_page">CamelFolderSummary</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAMEL Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>CamelFolderSummary</refname>
<refpurpose></refpurpose>
</refnamediv>

<refsynopsisdiv id="camel-CamelFolderSummary.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
struct              <link linkend="CamelFolderSummary">CamelFolderSummary</link>;
                    <link linkend="CamelMessageInfo">CamelMessageInfo</link>;
                    <link linkend="CamelMessageInfoBase">CamelMessageInfoBase</link>;
                    <link linkend="CamelFolderMetaSummary">CamelFolderMetaSummary</link>;
struct              <link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link>;
enum                <link linkend="CamelMessageFlags">CamelMessageFlags</link>;
#define             <link linkend="CAMEL-MESSAGE-SYSTEM-MASK--CAPS">CAMEL_MESSAGE_SYSTEM_MASK</link>
                    <link linkend="CamelFlag">CamelFlag</link>;
                    <link linkend="CamelTag">CamelTag</link>;
                    <link linkend="CamelSummaryMessageID">CamelSummaryMessageID</link>;
                    <link linkend="CamelSummaryReferences">CamelSummaryReferences</link>;
enum                <link linkend="CamelFolderSummaryFlags">CamelFolderSummaryFlags</link>;
<link linkend="CamelFolderSummary">CamelFolderSummary</link> * <link linkend="camel-folder-summary-new">camel_folder_summary_new</link>           (<link linkend="struct--CamelFolder">struct _CamelFolder</link> *folder);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-set-filename">camel_folder_summary_set_filename</link>   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *filename);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-set-index">camel_folder_summary_set_index</link>      (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelIndex">CamelIndex</link> *index);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-set-build-content">camel_folder_summary_set_build_content</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="gboolean">gboolean</link> state);
<link linkend="guint32">guint32</link>             <link linkend="camel-folder-summary-next-uid">camel_folder_summary_next_uid</link>       (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="char">char</link> *              <link linkend="camel-folder-summary-next-uid-string">camel_folder_summary_next_uid_string</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-set-uid">camel_folder_summary_set_uid</link>        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="guint32">guint32</link> uid);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-load">camel_folder_summary_load</link>           (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-save">camel_folder_summary_save</link>           (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-save-to-db">camel_folder_summary_save_to_db</link>     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-load-from-db">camel_folder_summary_load_from_db</link>   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-header-load">camel_folder_summary_header_load</link>    (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-header-load-from-db">camel_folder_summary_header_load_from_db</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-header-save-to-db">camel_folder_summary_header_save_to_db</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-touch">camel_folder_summary_touch</link>          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-add">camel_folder_summary_add</link>            (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info);
<link linkend="GPtrArray">GPtrArray</link> *         <link linkend="camel-folder-summary-get-changed">camel_folder_summary_get_changed</link>    (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-cache-size">camel_folder_summary_cache_size</link>     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-reload-from-db">camel_folder_summary_reload_from_db</link> (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-insert">camel_folder_summary_insert</link>         (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info,
                                                         <link linkend="gboolean">gboolean</link> load);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove-index-fast">camel_folder_summary_remove_index_fast</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="int">int</link> index);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove-uid-fast">camel_folder_summary_remove_uid_fast</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         const <link linkend="char">char</link> *uid);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-add-from-header">camel_folder_summary_add_from_header</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *headers);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-add-from-parser">camel_folder_summary_add_from_parser</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeParser">CamelMimeParser</link> *parser);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-add-from-message">camel_folder_summary_add_from_message</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeMessage">CamelMimeMessage</link> *message);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-info-new-from-header">camel_folder_summary_info_new_from_header</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *headers);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-info-new-from-parser">camel_folder_summary_info_new_from_parser</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeParser">CamelMimeParser</link> *parser);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-info-new-from-message">camel_folder_summary_info_new_from_message</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeMessage">CamelMimeMessage</link> *message);
<link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> * <link linkend="camel-folder-summary-content-info-new">camel_folder_summary_content_info_new</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-content-info-free">camel_folder_summary_content_info_free</link>
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> *ci);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove">camel_folder_summary_remove</link>         (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove-uid">camel_folder_summary_remove_uid</link>     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *uid);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove-index">camel_folder_summary_remove_index</link>   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> index);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-remove-range">camel_folder_summary_remove_range</link>   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> start,
                                                         <link linkend="int">int</link> end);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-clear">camel_folder_summary_clear</link>          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="void">void</link>                <link linkend="camel-folder-summary-clear-db">camel_folder_summary_clear_db</link>       (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);
<link linkend="guint">guint</link>               <link linkend="camel-folder-summary-count">camel_folder_summary_count</link>          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-index">camel_folder_summary_index</link>          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> index);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-folder-summary-uid">camel_folder_summary_uid</link>            (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *uid);
<link linkend="char">char</link> *              <link linkend="camel-folder-summary-uid-from-index">camel_folder_summary_uid_from_index</link> (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="int">int</link> i);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-folder-summary-check-uid">camel_folder_summary_check_uid</link>      (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         const <link linkend="char">char</link> *uid);
<link linkend="GPtrArray">GPtrArray</link> *         <link linkend="camel-folder-summary-array">camel_folder_summary_array</link>          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-encode-token">camel_folder_summary_encode_token</link>   (<link linkend="FILE--CAPS">FILE</link> *out,
                                                         const <link linkend="char">char</link> *str);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-decode-token">camel_folder_summary_decode_token</link>   (<link linkend="FILE--CAPS">FILE</link> *in,
                                                         <link linkend="char">char</link> **str);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-flag-get">camel_flag_get</link>                      (<link linkend="CamelFlag">CamelFlag</link> **list,
                                                         const <link linkend="char">char</link> *name);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-flag-set">camel_flag_set</link>                      (<link linkend="CamelFlag">CamelFlag</link> **list,
                                                         const <link linkend="char">char</link> *name,
                                                         <link linkend="gboolean">gboolean</link> value);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-flag-list-copy">camel_flag_list_copy</link>                (<link linkend="CamelFlag">CamelFlag</link> **to,
                                                         <link linkend="CamelFlag">CamelFlag</link> **from);
<link linkend="int">int</link>                 <link linkend="camel-flag-list-size">camel_flag_list_size</link>                (<link linkend="CamelFlag">CamelFlag</link> **list);
<link linkend="void">void</link>                <link linkend="camel-flag-list-free">camel_flag_list_free</link>                (<link linkend="CamelFlag">CamelFlag</link> **list);
<link linkend="guint32">guint32</link>             <link linkend="camel-system-flag">camel_system_flag</link>                   (const <link linkend="char">char</link> *name);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-system-flag-get">camel_system_flag_get</link>               (<link linkend="guint32">guint32</link> flags,
                                                         const <link linkend="char">char</link> *name);
const <link linkend="char">char</link> *        <link linkend="camel-tag-get">camel_tag_get</link>                       (<link linkend="CamelTag">CamelTag</link> **list,
                                                         const <link linkend="char">char</link> *name);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-tag-set">camel_tag_set</link>                       (<link linkend="CamelTag">CamelTag</link> **list,
                                                         const <link linkend="char">char</link> *name,
                                                         const <link linkend="char">char</link> *value);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-tag-list-copy">camel_tag_list_copy</link>                 (<link linkend="CamelTag">CamelTag</link> **to,
                                                         <link linkend="CamelTag">CamelTag</link> **from);
<link linkend="int">int</link>                 <link linkend="camel-tag-list-size">camel_tag_list_size</link>                 (<link linkend="CamelTag">CamelTag</link> **list);
<link linkend="void">void</link>                <link linkend="camel-tag-list-free">camel_tag_list_free</link>                 (<link linkend="CamelTag">CamelTag</link> **list);
<link linkend="void">void</link> *              <link linkend="camel-message-info-new">camel_message_info_new</link>              (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);
<link linkend="void">void</link>                <link linkend="camel-message-info-ref">camel_message_info_ref</link>              (<link linkend="void">void</link> *info);
<link linkend="CamelMessageInfo">CamelMessageInfo</link> *  <link linkend="camel-message-info-new-from-header">camel_message_info_new_from_header</link>  (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *header);
<link linkend="void">void</link>                <link linkend="camel-message-info-free">camel_message_info_free</link>             (<link linkend="void">void</link> *info);
<link linkend="void">void</link> *              <link linkend="camel-message-info-clone">camel_message_info_clone</link>            (const <link linkend="void">void</link> *info);
const <link linkend="void">void</link> *        <link linkend="camel-message-info-ptr">camel_message_info_ptr</link>              (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);
<link linkend="guint32">guint32</link>             <link linkend="camel-message-info-uint32">camel_message_info_uint32</link>           (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);
<link linkend="time-t">time_t</link>              <link linkend="camel-message-info-time">camel_message_info_time</link>             (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);
#define             <link linkend="camel-message-info-uid">camel_message_info_uid</link>              (mi)
#define             <link linkend="camel-message-info-subject">camel_message_info_subject</link>          (mi)
#define             <link linkend="camel-message-info-from">camel_message_info_from</link>             (mi)
#define             <link linkend="camel-message-info-to">camel_message_info_to</link>               (mi)
#define             <link linkend="camel-message-info-cc">camel_message_info_cc</link>               (mi)
#define             <link linkend="camel-message-info-mlist">camel_message_info_mlist</link>            (mi)
#define             <link linkend="camel-message-info-flags">camel_message_info_flags</link>            (mi)
#define             <link linkend="camel-message-info-size">camel_message_info_size</link>             (mi)
#define             <link linkend="camel-message-info-date-sent">camel_message_info_date_sent</link>        (mi)
#define             <link linkend="camel-message-info-date-received">camel_message_info_date_received</link>    (mi)
#define             <link linkend="camel-message-info-message-id">camel_message_info_message_id</link>       (mi)
#define             <link linkend="camel-message-info-references">camel_message_info_references</link>       (mi)
#define             <link linkend="camel-message-info-user-flags">camel_message_info_user_flags</link>       (mi)
#define             <link linkend="camel-message-info-user-tags">camel_message_info_user_tags</link>        (mi)
#define             <link linkend="camel-message-info-headers">camel_message_info_headers</link>          (mi)
<link linkend="gboolean">gboolean</link>            <link linkend="camel-message-info-user-flag">camel_message_info_user_flag</link>        (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id);
const <link linkend="char">char</link> *        <link linkend="camel-message-info-user-tag">camel_message_info_user_tag</link>         (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-message-info-set-flags">camel_message_info_set_flags</link>        (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="guint32">guint32</link> set);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-message-info-set-user-flag">camel_message_info_set_user_flag</link>    (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id,
                                                         <link linkend="gboolean">gboolean</link> state);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-message-info-set-user-tag">camel_message_info_set_user_tag</link>     (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id,
                                                         const <link linkend="char">char</link> *val);
<link linkend="void">void</link>                <link linkend="camel-content-info-dump">camel_content_info_dump</link>             (<link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> *ci,
                                                         <link linkend="int">int</link> depth);
<link linkend="void">void</link>                <link linkend="camel-message-info-dump">camel_message_info_dump</link>             (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi);
<link linkend="int">int</link>                 <link linkend="camel-folder-summary-migrate-infos">camel_folder_summary_migrate_infos</link>  (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);
</synopsis>
</refsynopsisdiv>









<refsect1 id="camel-CamelFolderSummary.description" role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>

<refsect1 id="camel-CamelFolderSummary.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="CamelFolderSummary" role="struct">
<title>struct CamelFolderSummary</title>
<indexterm zone="CamelFolderSummary"><primary sortas="CamelFolderSummary">CamelFolderSummary</primary></indexterm><programlisting>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;
	guint32 junk_not_deleted_count;
	guint32 visible_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? */

#if 0  /* Deprecated */
	GPtrArray *messages;	/* CamelMessageInfo's */
	GHashTable *messages_uid; /* CamelMessageInfo's by uid */
#endif

	/* New members to replace the above depreacted members */
	GPtrArray *uids;
	GHashTable *loaded_infos;

	struct _CamelFolder *folder; /* parent folder, for events */
	struct _CamelFolderMetaSummary *meta_summary; /* Meta summary */
	time_t cache_load_time;
	guint timeout_handle;
	
	const char *collate;
	const char *sort_by;

	/* Future ABI expansion */
	gpointer later[4];
};
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelMessageInfo" role="struct">
<title>CamelMessageInfo</title>
<indexterm zone="CamelMessageInfo"><primary sortas="CamelMessageInfo">CamelMessageInfo</primary></indexterm><programlisting>typedef struct {
	CamelFolderSummary *summary;

	guint32 refcount;	/* ??? */
	const char *uid;
	/*FIXME: Make it work with the CAMEL_MESSADE_DB_DIRTY flag instead of another 4 bytes*/
	int dirty:1;
} CamelMessageInfo;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelMessageInfoBase" role="struct">
<title>CamelMessageInfoBase</title>
<indexterm zone="CamelMessageInfoBase"><primary sortas="CamelMessageInfoBase">CamelMessageInfoBase</primary></indexterm><programlisting>typedef struct {
	CamelFolderSummary *summary;

	guint32 refcount;	/* ??? */
	const char *uid;
	/*FIXME: Make it work with the CAMEL_MESSADE_DB_DIRTY flag instead of another 4 bytes*/
	int dirty:1;
	
	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;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelFolderMetaSummary" role="struct">
<title>CamelFolderMetaSummary</title>
<indexterm zone="CamelFolderMetaSummary"><primary sortas="CamelFolderMetaSummary">CamelFolderMetaSummary</primary></indexterm><programlisting>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;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelMessageContentInfo" role="struct">
<title>struct CamelMessageContentInfo</title>
<indexterm zone="CamelMessageContentInfo"><primary sortas="CamelMessageContentInfo">CamelMessageContentInfo</primary></indexterm><programlisting>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;
};
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelMessageFlags" role="enum">
<title>enum CamelMessageFlags</title>
<indexterm zone="CamelMessageFlags"><primary sortas="CamelMessageFlags">CamelMessageFlags</primary></indexterm><programlisting>typedef enum _CamelMessageFlags {
	CAMEL_MESSAGE_ANSWERED = 1&lt;&lt;0,
	CAMEL_MESSAGE_DELETED = 1&lt;&lt;1,
	CAMEL_MESSAGE_DRAFT = 1&lt;&lt;2,
	CAMEL_MESSAGE_FLAGGED = 1&lt;&lt;3,
	CAMEL_MESSAGE_SEEN = 1&lt;&lt;4,
	
	/* these aren't really system flag bits, but are convenience flags */
	CAMEL_MESSAGE_ATTACHMENTS = 1&lt;&lt;5,
	CAMEL_MESSAGE_ANSWERED_ALL = 1&lt;&lt;6,
	CAMEL_MESSAGE_JUNK = 1&lt;&lt;7,
	CAMEL_MESSAGE_SECURE = 1&lt;&lt;8,
	CAMEL_MESSAGE_USER_NOT_DELETABLE = 1&lt;&lt;9,
	CAMEL_MESSAGE_HIDDEN = 1&lt;&lt;10,
	CAMEL_MESSAGE_NOTJUNK = 1&lt;&lt;11,
	CAMEL_MESSAGE_FORWARDED = 1&lt;&lt;12,

	/* following flags are for the folder, and are not really permanent flags */
	CAMEL_MESSAGE_FOLDER_FLAGGED = 1&lt;&lt;16, /* for use by the folder implementation */
	/* flags after 1&lt;&lt;16 are used by camel providers,
           if adding non permanent flags, add them to the end  */

	CAMEL_MESSAGE_JUNK_LEARN = 1&lt;&lt;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&lt;&lt;31 /* supports user flags */
} CamelMessageFlags;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-MESSAGE-SYSTEM-MASK--CAPS" role="macro">
<title>CAMEL_MESSAGE_SYSTEM_MASK</title>
<indexterm zone="CAMEL-MESSAGE-SYSTEM-MASK--CAPS"><primary sortas="CAMEL_MESSAGE_SYSTEM_MASK">CAMEL_MESSAGE_SYSTEM_MASK</primary></indexterm><programlisting>#define CAMEL_MESSAGE_SYSTEM_MASK (0xffff &lt;&lt; 16)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelFlag" role="struct">
<title>CamelFlag</title>
<indexterm zone="CamelFlag"><primary sortas="CamelFlag">CamelFlag</primary></indexterm><programlisting>typedef struct {
	struct _CamelFlag *next;
	char name[1];		/* name allocated as part of the structure */
} CamelFlag;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelTag" role="struct">
<title>CamelTag</title>
<indexterm zone="CamelTag"><primary sortas="CamelTag">CamelTag</primary></indexterm><programlisting>typedef struct {
	struct _CamelTag *next;
	char *value;
	char name[1];		/* name allocated as part of the structure */
} CamelTag;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelSummaryMessageID" role="struct">
<title>CamelSummaryMessageID</title>
<indexterm zone="CamelSummaryMessageID"><primary sortas="CamelSummaryMessageID">CamelSummaryMessageID</primary></indexterm><programlisting>typedef struct {
	union {
		guint64 id;
		unsigned char hash[8];
		struct {
			guint32 hi;
			guint32 lo;
		} part;
	} id;
} CamelSummaryMessageID;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelSummaryReferences" role="struct">
<title>CamelSummaryReferences</title>
<indexterm zone="CamelSummaryReferences"><primary sortas="CamelSummaryReferences">CamelSummaryReferences</primary></indexterm><programlisting>typedef struct {
	int size;
	CamelSummaryMessageID references[1];
} CamelSummaryReferences;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelFolderSummaryFlags" role="enum">
<title>enum CamelFolderSummaryFlags</title>
<indexterm zone="CamelFolderSummaryFlags"><primary sortas="CamelFolderSummaryFlags">CamelFolderSummaryFlags</primary></indexterm><programlisting>typedef enum _CamelFolderSummaryFlags {
	CAMEL_SUMMARY_DIRTY = 1&lt;&lt;0
} CamelFolderSummaryFlags;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="camel-folder-summary-new" role="function">
<title>camel_folder_summary_new ()</title>
<indexterm zone="camel-folder-summary-new"><primary sortas="camel_folder_summary_new">camel_folder_summary_new</primary></indexterm><programlisting><link linkend="CamelFolderSummary">CamelFolderSummary</link> * camel_folder_summary_new           (<link linkend="struct--CamelFolder">struct _CamelFolder</link> *folder);</programlisting>
<para>
Create a new <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>folder</parameter>&#160;:</term>
<listitem><simpara> parent <link linkend="CamelFolder"><type>CamelFolder</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-set-filename" role="function">
<title>camel_folder_summary_set_filename ()</title>
<indexterm zone="camel-folder-summary-set-filename"><primary sortas="camel_folder_summary_set_filename">camel_folder_summary_set_filename</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_set_filename   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *filename);</programlisting>
<para>
Set the filename where the summary will be loaded to/saved from.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>filename</parameter>&#160;:</term>
<listitem><simpara> a filename
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-set-index" role="function">
<title>camel_folder_summary_set_index ()</title>
<indexterm zone="camel-folder-summary-set-index"><primary sortas="camel_folder_summary_set_index">camel_folder_summary_set_index</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_set_index      (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelIndex">CamelIndex</link> *index);</programlisting>
<para>
Set the index used to index body content.  If the index is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, or
not set (the default), no indexing of body content will take place.
</para>
<para>
Unlike earlier behaviour, build_content need not be set to perform indexing.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>index</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelIndex"><type>CamelIndex</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-set-build-content" role="function">
<title>camel_folder_summary_set_build_content ()</title>
<indexterm zone="camel-folder-summary-set-build-content"><primary sortas="camel_folder_summary_set_build_content">camel_folder_summary_set_build_content</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_set_build_content
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="gboolean">gboolean</link> state);</programlisting>
<para>
Set a flag to tell the summary to build the content info summary
(<link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>.content).  The default is not to build content
info summaries.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara> to build or not to build the content
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-next-uid" role="function">
<title>camel_folder_summary_next_uid ()</title>
<indexterm zone="camel-folder-summary-next-uid"><primary sortas="camel_folder_summary_next_uid">camel_folder_summary_next_uid</primary></indexterm><programlisting><link linkend="guint32">guint32</link>             camel_folder_summary_next_uid       (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Generate a new unique uid value as an integer.  This
may be used to create a unique sequence of numbers.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the next unique uid value
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-next-uid-string" role="function">
<title>camel_folder_summary_next_uid_string ()</title>
<indexterm zone="camel-folder-summary-next-uid-string"><primary sortas="camel_folder_summary_next_uid_string">camel_folder_summary_next_uid_string</primary></indexterm><programlisting><link linkend="char">char</link> *              camel_folder_summary_next_uid_string
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Retrieve the next uid, but as a formatted string.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the next uid as an unsigned integer string.
This string must be freed by the caller.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-set-uid" role="function">
<title>camel_folder_summary_set_uid ()</title>
<indexterm zone="camel-folder-summary-set-uid"><primary sortas="camel_folder_summary_set_uid">camel_folder_summary_set_uid</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_set_uid        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="guint32">guint32</link> uid);</programlisting>
<para>
Set the next minimum uid available.  This can be used to
ensure new uid's do not clash with existing uid's.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&#160;:</term>
<listitem><simpara> The next minimum uid to assign.  To avoid clashing
uid's, set this to the uid of a given messages + 1.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-load" role="function">
<title>camel_folder_summary_load ()</title>
<indexterm zone="camel-folder-summary-load"><primary sortas="camel_folder_summary_load">camel_folder_summary_load</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_load           (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Load the summary from disk.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="0--CAPS"><literal>0</literal></link> on success or <link linkend="1--CAPS"><literal>-1</literal></link> on fail
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-save" role="function">
<title>camel_folder_summary_save ()</title>
<indexterm zone="camel-folder-summary-save"><primary sortas="camel_folder_summary_save">camel_folder_summary_save</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_save           (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Writes the summary to disk.  The summary is only written if changes
have occured.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="0--CAPS"><literal>0</literal></link> on success or <link linkend="1--CAPS"><literal>-1</literal></link> on fail
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-save-to-db" role="function">
<title>camel_folder_summary_save_to_db ()</title>
<indexterm zone="camel-folder-summary-save-to-db"><primary sortas="camel_folder_summary_save_to_db">camel_folder_summary_save_to_db</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_save_to_db     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-load-from-db" role="function">
<title>camel_folder_summary_load_from_db ()</title>
<indexterm zone="camel-folder-summary-load-from-db"><primary sortas="camel_folder_summary_load_from_db">camel_folder_summary_load_from_db</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_load_from_db   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-header-load" role="function">
<title>camel_folder_summary_header_load ()</title>
<indexterm zone="camel-folder-summary-header-load"><primary sortas="camel_folder_summary_header_load">camel_folder_summary_header_load</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_header_load    (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Only load the header information from the summary,
keep the rest on disk.  This should only be done on
a fresh summary object.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="0--CAPS"><literal>0</literal></link> on success or <link linkend="1--CAPS"><literal>-1</literal></link> on fail
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-header-load-from-db" role="function">
<title>camel_folder_summary_header_load_from_db ()</title>
<indexterm zone="camel-folder-summary-header-load-from-db"><primary sortas="camel_folder_summary_header_load_from_db">camel_folder_summary_header_load_from_db</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_header_load_from_db
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-header-save-to-db" role="function">
<title>camel_folder_summary_header_save_to_db ()</title>
<indexterm zone="camel-folder-summary-header-save-to-db"><primary sortas="camel_folder_summary_header_save_to_db">camel_folder_summary_header_save_to_db</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_header_save_to_db
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-touch" role="function">
<title>camel_folder_summary_touch ()</title>
<indexterm zone="camel-folder-summary-touch"><primary sortas="camel_folder_summary_touch">camel_folder_summary_touch</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_touch          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Mark the summary as changed, so that a save will force it to be
written back to disk.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-add" role="function">
<title>camel_folder_summary_add ()</title>
<indexterm zone="camel-folder-summary-add"><primary sortas="camel_folder_summary_add">camel_folder_summary_add</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_add            (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info);</programlisting>
<para>
Adds a new <parameter>info</parameter> record to the summary.  If <parameter>info->uid</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>,
then a new uid is automatically re-assigned by calling
<link linkend="camel-folder-summary-next-uid-string"><type>camel_folder_summary_next_uid_string</type></link>.
</para>
<para>
The <parameter>info</parameter> record should have been generated by calling one of the
info_new_*() functions, as it will be free'd based on the summary
class.  And MUST NOT be allocated directly using malloc.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-get-changed" role="function">
<title>camel_folder_summary_get_changed ()</title>
<indexterm zone="camel-folder-summary-get-changed"><primary sortas="camel_folder_summary_get_changed">camel_folder_summary_get_changed</primary></indexterm><programlisting><link linkend="GPtrArray">GPtrArray</link> *         camel_folder_summary_get_changed    (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-cache-size" role="function">
<title>camel_folder_summary_cache_size ()</title>
<indexterm zone="camel-folder-summary-cache-size"><primary sortas="camel_folder_summary_cache_size">camel_folder_summary_cache_size</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_cache_size     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-reload-from-db" role="function">
<title>camel_folder_summary_reload_from_db ()</title>
<indexterm zone="camel-folder-summary-reload-from-db"><primary sortas="camel_folder_summary_reload_from_db">camel_folder_summary_reload_from_db</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_reload_from_db (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-insert" role="function">
<title>camel_folder_summary_insert ()</title>
<indexterm zone="camel-folder-summary-insert"><primary sortas="camel_folder_summary_insert">camel_folder_summary_insert</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_insert         (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info,
                                                         <link linkend="gboolean">gboolean</link> load);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>load</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove-index-fast" role="function">
<title>camel_folder_summary_remove_index_fast ()</title>
<indexterm zone="camel-folder-summary-remove-index-fast"><primary sortas="camel_folder_summary_remove_index_fast">camel_folder_summary_remove_index_fast</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove_index_fast
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="int">int</link> index);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>index</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove-uid-fast" role="function">
<title>camel_folder_summary_remove_uid_fast ()</title>
<indexterm zone="camel-folder-summary-remove-uid-fast"><primary sortas="camel_folder_summary_remove_uid_fast">camel_folder_summary_remove_uid_fast</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove_uid_fast
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         const <link linkend="char">char</link> *uid);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-add-from-header" role="function">
<title>camel_folder_summary_add_from_header ()</title>
<indexterm zone="camel-folder-summary-add-from-header"><primary sortas="camel_folder_summary_add_from_header">camel_folder_summary_add_from_header</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_add_from_header
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *headers);</programlisting>
<para>
Build a new info record based on a set of headers, and add it to
the summary.
</para>
<para>
Note that this function should not be used if build_content_info
has been specified for this summary.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>headers</parameter>&#160;:</term>
<listitem><simpara> rfc822 headers
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly added record
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-add-from-parser" role="function">
<title>camel_folder_summary_add_from_parser ()</title>
<indexterm zone="camel-folder-summary-add-from-parser"><primary sortas="camel_folder_summary_add_from_parser">camel_folder_summary_add_from_parser</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_add_from_parser
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeParser">CamelMimeParser</link> *parser);</programlisting>
<para>
Build a new info record based on the current position of a <link linkend="CamelMimeParser"><type>CamelMimeParser</type></link>.
</para>
<para>
The parser should be positioned before the start of the message to summarise.
This function may be used if build_contnet_info or an index has been
specified for the summary.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>parser</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMimeParser"><type>CamelMimeParser</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly added record
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-add-from-message" role="function">
<title>camel_folder_summary_add_from_message ()</title>
<indexterm zone="camel-folder-summary-add-from-message"><primary sortas="camel_folder_summary_add_from_message">camel_folder_summary_add_from_message</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_add_from_message
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeMessage">CamelMimeMessage</link> *message);</programlisting>
<para>
Add a summary item from an existing message.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>message</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMimeMessage"><type>CamelMimeMessage</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly added record
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-info-new-from-header" role="function">
<title>camel_folder_summary_info_new_from_header ()</title>
<indexterm zone="camel-folder-summary-info-new-from-header"><primary sortas="camel_folder_summary_info_new_from_header">camel_folder_summary_info_new_from_header</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_info_new_from_header
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *headers);</programlisting>
<para>
Create a new info record from a header.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>headers</parameter>&#160;:</term>
<listitem><simpara> rfc822 headers
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated record which must be freed with
<link linkend="camel-message-info-free"><type>camel_message_info_free</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-info-new-from-parser" role="function">
<title>camel_folder_summary_info_new_from_parser ()</title>
<indexterm zone="camel-folder-summary-info-new-from-parser"><primary sortas="camel_folder_summary_info_new_from_parser">camel_folder_summary_info_new_from_parser</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_info_new_from_parser
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeParser">CamelMimeParser</link> *parser);</programlisting>
<para>
Create a new info record from a parser.  If the parser cannot
determine a uid, then none will be assigned.
</para>
<para>
If indexing is enabled, and the parser cannot determine a new uid, then
one is automatically assigned.
</para>
<para>
If indexing is enabled, then the content will be indexed based
on this new uid.  In this case, the message info MUST be
added using :<link linkend="add"><function>add()</function></link>.
</para>
<para>
Once complete, the parser will be positioned at the end of
the message.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>parser</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMimeParser"><type>CamelMimeParser</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated record which must be freed with
<link linkend="camel-message-info-free"><type>camel_message_info_free</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-info-new-from-message" role="function">
<title>camel_folder_summary_info_new_from_message ()</title>
<indexterm zone="camel-folder-summary-info-new-from-message"><primary sortas="camel_folder_summary_info_new_from_message">camel_folder_summary_info_new_from_message</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_info_new_from_message
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMimeMessage">CamelMimeMessage</link> *message);</programlisting>
<para>
Create a summary item from a message.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFodlerSummary"><type>CamelFodlerSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>message</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMimeMessage"><type>CamelMimeMessage</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated record which must be freed using
<link linkend="camel-message-info-free"><type>camel_message_info_free</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-content-info-new" role="function">
<title>camel_folder_summary_content_info_new ()</title>
<indexterm zone="camel-folder-summary-content-info-new"><primary sortas="camel_folder_summary_content_info_new">camel_folder_summary_content_info_new</primary></indexterm><programlisting><link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> * camel_folder_summary_content_info_new
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Allocate a new <link linkend="CamelMessageContentInfo"><type>CamelMessageContentInfo</type></link>, suitable for adding
to this summary.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="CamelMessageContentInfo"><type>CamelMessageContentInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-content-info-free" role="function">
<title>camel_folder_summary_content_info_free ()</title>
<indexterm zone="camel-folder-summary-content-info-free"><primary sortas="camel_folder_summary_content_info_free">camel_folder_summary_content_info_free</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_content_info_free
                                                        (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> *ci);</programlisting>
<para>
Free the content info <parameter>ci</parameter>, and all associated memory.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ci</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageContentInfo"><type>CamelMessageContentInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove" role="function">
<title>camel_folder_summary_remove ()</title>
<indexterm zone="camel-folder-summary-remove"><primary sortas="camel_folder_summary_remove">camel_folder_summary_remove</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove         (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="CamelMessageInfo">CamelMessageInfo</link> *info);</programlisting>
<para>
Remove a specific <parameter>info</parameter> record from the summary.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove-uid" role="function">
<title>camel_folder_summary_remove_uid ()</title>
<indexterm zone="camel-folder-summary-remove-uid"><primary sortas="camel_folder_summary_remove_uid">camel_folder_summary_remove_uid</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove_uid     (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *uid);</programlisting>
<para>
Remove a specific info record from the summary, by <parameter>uid</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&#160;:</term>
<listitem><simpara> a uid
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove-index" role="function">
<title>camel_folder_summary_remove_index ()</title>
<indexterm zone="camel-folder-summary-remove-index"><primary sortas="camel_folder_summary_remove_index">camel_folder_summary_remove_index</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove_index   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> index);</programlisting>
<para>
Remove a specific info record from the summary, by index.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>index</parameter>&#160;:</term>
<listitem><simpara> record index
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-remove-range" role="function">
<title>camel_folder_summary_remove_range ()</title>
<indexterm zone="camel-folder-summary-remove-range"><primary sortas="camel_folder_summary_remove_range">camel_folder_summary_remove_range</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_remove_range   (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> start,
                                                         <link linkend="int">int</link> end);</programlisting>
<para>
Removes an indexed range of info records.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>start</parameter>&#160;:</term>
<listitem><simpara> initial index
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>end</parameter>&#160;:</term>
<listitem><simpara> last index to remove
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-clear" role="function">
<title>camel_folder_summary_clear ()</title>
<indexterm zone="camel-folder-summary-clear"><primary sortas="camel_folder_summary_clear">camel_folder_summary_clear</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_clear          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Empty the summary contents.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-clear-db" role="function">
<title>camel_folder_summary_clear_db ()</title>
<indexterm zone="camel-folder-summary-clear-db"><primary sortas="camel_folder_summary_clear_db">camel_folder_summary_clear_db</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_summary_clear_db       (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-count" role="function">
<title>camel_folder_summary_count ()</title>
<indexterm zone="camel-folder-summary-count"><primary sortas="camel_folder_summary_count">camel_folder_summary_count</primary></indexterm><programlisting><link linkend="guint">guint</link>               camel_folder_summary_count          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Get the number of summary items stored in this summary.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of items in the summary
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-index" role="function">
<title>camel_folder_summary_index ()</title>
<indexterm zone="camel-folder-summary-index"><primary sortas="camel_folder_summary_index">camel_folder_summary_index</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_index          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="int">int</link> index);</programlisting>
<para>
Retrieve a summary item by index number.
</para>
<para>
A referenced to the summary item is returned, which may be
ref'd or free'd as appropriate.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>index</parameter>&#160;:</term>
<listitem><simpara> item index
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the summary item, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if <parameter>index</parameter> is out of range
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-uid" role="function">
<title>camel_folder_summary_uid ()</title>
<indexterm zone="camel-folder-summary-uid"><primary sortas="camel_folder_summary_uid">camel_folder_summary_uid</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_folder_summary_uid            (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         const <link linkend="char">char</link> *uid);</programlisting>
<para>
Retrieve a summary item by uid.
</para>
<para>
A referenced to the summary item is returned, which may be
ref'd or free'd as appropriate.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&#160;:</term>
<listitem><simpara> a uid
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the summary item, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the uid <parameter>uid</parameter> is not available
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-uid-from-index" role="function">
<title>camel_folder_summary_uid_from_index ()</title>
<indexterm zone="camel-folder-summary-uid-from-index"><primary sortas="camel_folder_summary_uid_from_index">camel_folder_summary_uid_from_index</primary></indexterm><programlisting><link linkend="char">char</link> *              camel_folder_summary_uid_from_index (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         <link linkend="int">int</link> i);</programlisting>
<para>
Retrieve a summary item's uid  by index number.
</para>
<para>
A newly allocated uid is returned, which must be
free'd as appropriate.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>i</parameter>&#160;:</term>
<listitem><simpara> item index
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the summary item's uid , or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if <parameter>index</parameter> is out of range   
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-check-uid" role="function">
<title>camel_folder_summary_check_uid ()</title>
<indexterm zone="camel-folder-summary-check-uid"><primary sortas="camel_folder_summary_check_uid">camel_folder_summary_check_uid</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_folder_summary_check_uid      (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s,
                                                         const <link linkend="char">char</link> *uid);</programlisting>
<para>
Check if the uid is valid. This isn't very efficient, so it shouldn't be called iteratively.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uid</parameter>&#160;:</term>
<listitem><simpara> a uid
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> if the uid is present in the summary or not  (<link linkend="TRUE--CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>)
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-array" role="function">
<title>camel_folder_summary_array ()</title>
<indexterm zone="camel-folder-summary-array"><primary sortas="camel_folder_summary_array">camel_folder_summary_array</primary></indexterm><programlisting><link linkend="GPtrArray">GPtrArray</link> *         camel_folder_summary_array          (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Obtain a copy of the summary array.  This is done atomically,
so cannot contain empty entries.
</para>
<para>
It must be freed using g_ptr_array_free</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="GPtrArray"><type>GPtrArray</type></link> of uids
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-encode-token" role="function">
<title>camel_folder_summary_encode_token ()</title>
<indexterm zone="camel-folder-summary-encode-token"><primary sortas="camel_folder_summary_encode_token">camel_folder_summary_encode_token</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_encode_token   (<link linkend="FILE--CAPS">FILE</link> *out,
                                                         const <link linkend="char">char</link> *str);</programlisting>
<para>
Encode a string value, but use tokenisation and compression
to reduce the size taken for common mailer words.  This
can still be used to encode normal strings as well.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>out</parameter>&#160;:</term>
<listitem><simpara> output FILE pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>str</parameter>&#160;:</term>
<listitem><simpara> string token to encode
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="0--CAPS"><literal>0</literal></link> on success or <link linkend="1--CAPS"><literal>-1</literal></link> on fail
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-decode-token" role="function">
<title>camel_folder_summary_decode_token ()</title>
<indexterm zone="camel-folder-summary-decode-token"><primary sortas="camel_folder_summary_decode_token">camel_folder_summary_decode_token</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_decode_token   (<link linkend="FILE--CAPS">FILE</link> *in,
                                                         <link linkend="char">char</link> **str);</programlisting>
<para>
Decode a token value.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>in</parameter>&#160;:</term>
<listitem><simpara> input FILE pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>str</parameter>&#160;:</term>
<listitem><simpara> string pointer to hold the decoded result
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="0--CAPS"><literal>0</literal></link> on success or <link linkend="1--CAPS"><literal>-1</literal></link> on fail
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-flag-get" role="function">
<title>camel_flag_get ()</title>
<indexterm zone="camel-flag-get"><primary sortas="camel_flag_get">camel_flag_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_flag_get                      (<link linkend="CamelFlag">CamelFlag</link> **list,
                                                         const <link linkend="char">char</link> *name);</programlisting>
<para>
Find the state of the flag <parameter>name</parameter> in <parameter>list</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelFlag"><type>CamelFlag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of the flag to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the state of the flag (<link linkend="TRUE--CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>)
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-flag-set" role="function">
<title>camel_flag_set ()</title>
<indexterm zone="camel-flag-set"><primary sortas="camel_flag_set">camel_flag_set</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_flag_set                      (<link linkend="CamelFlag">CamelFlag</link> **list,
                                                         const <link linkend="char">char</link> *name,
                                                         <link linkend="gboolean">gboolean</link> value);</programlisting>
<para>
Set the state of a flag <parameter>name</parameter> in the list <parameter>list</parameter> to <parameter>value</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelFlag"><type>CamelFlag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of the flag to set or change
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> the value to set on the flag
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the value of the flag has been changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-flag-list-copy" role="function">
<title>camel_flag_list_copy ()</title>
<indexterm zone="camel-flag-list-copy"><primary sortas="camel_flag_list_copy">camel_flag_list_copy</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_flag_list_copy                (<link linkend="CamelFlag">CamelFlag</link> **to,
                                                         <link linkend="CamelFlag">CamelFlag</link> **from);</programlisting>
<para>
Copy a flag list.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>to</parameter>&#160;:</term>
<listitem><simpara> the address of the <link linkend="CamelFlag"><type>CamelFlag</type></link> list to copy to
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>from</parameter>&#160;:</term>
<listitem><simpara> the address of the <link linkend="CamelFlag"><type>CamelFlag</type></link> list to copy from
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>to</parameter> is changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-flag-list-size" role="function">
<title>camel_flag_list_size ()</title>
<indexterm zone="camel-flag-list-size"><primary sortas="camel_flag_list_size">camel_flag_list_size</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_flag_list_size                (<link linkend="CamelFlag">CamelFlag</link> **list);</programlisting>
<para>
Get the length of the flag list.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelFlag"><type>CamelFlag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of flags in the list
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-flag-list-free" role="function">
<title>camel_flag_list_free ()</title>
<indexterm zone="camel-flag-list-free"><primary sortas="camel_flag_list_free">camel_flag_list_free</primary></indexterm><programlisting><link linkend="void">void</link>                camel_flag_list_free                (<link linkend="CamelFlag">CamelFlag</link> **list);</programlisting>
<para>
Free the memory associated with the flag list <parameter>list</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelFlag"><type>CamelFlag</type></link> list
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-system-flag" role="function">
<title>camel_system_flag ()</title>
<indexterm zone="camel-system-flag"><primary sortas="camel_system_flag">camel_system_flag</primary></indexterm><programlisting><link linkend="guint32">guint32</link>             camel_system_flag                   (const <link linkend="char">char</link> *name);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of a system flag
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the integer value of the system flag string
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-system-flag-get" role="function">
<title>camel_system_flag_get ()</title>
<indexterm zone="camel-system-flag-get"><primary sortas="camel_system_flag_get">camel_system_flag_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_system_flag_get               (<link linkend="guint32">guint32</link> flags,
                                                         const <link linkend="char">char</link> *name);</programlisting>
<para>
Find the state of the flag <parameter>name</parameter> in <parameter>flags</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> bitwise system flags
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of the flag to check for
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the named flag is set or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-tag-get" role="function">
<title>camel_tag_get ()</title>
<indexterm zone="camel-tag-get"><primary sortas="camel_tag_get">camel_tag_get</primary></indexterm><programlisting>const <link linkend="char">char</link> *        camel_tag_get                       (<link linkend="CamelTag">CamelTag</link> **list,
                                                         const <link linkend="char">char</link> *name);</programlisting>
<para>
Find the flag <parameter>name</parameter> in <parameter>list</parameter> and get the value.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelTag"><type>CamelTag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of the tag to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the value of the flag  or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if unset
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-tag-set" role="function">
<title>camel_tag_set ()</title>
<indexterm zone="camel-tag-set"><primary sortas="camel_tag_set">camel_tag_set</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_tag_set                       (<link linkend="CamelTag">CamelTag</link> **list,
                                                         const <link linkend="char">char</link> *name,
                                                         const <link linkend="char">char</link> *value);</programlisting>
<para>
Set the tag <parameter>name</parameter> in the tag list <parameter>list</parameter> to <parameter>value</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelTag"><type>CamelTag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara> name of the tag to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> value to set on the tag
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the value on the tag changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-tag-list-copy" role="function">
<title>camel_tag_list_copy ()</title>
<indexterm zone="camel-tag-list-copy"><primary sortas="camel_tag_list_copy">camel_tag_list_copy</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_tag_list_copy                 (<link linkend="CamelTag">CamelTag</link> **to,
                                                         <link linkend="CamelTag">CamelTag</link> **from);</programlisting>
<para>
Copy a tag list.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>to</parameter>&#160;:</term>
<listitem><simpara> the address of the <link linkend="CamelTag"><type>CamelTag</type></link> list to copy to
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>from</parameter>&#160;:</term>
<listitem><simpara> the address of the <link linkend="CamelTag"><type>CamelTag</type></link> list to copy from
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>to</parameter> is changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-tag-list-size" role="function">
<title>camel_tag_list_size ()</title>
<indexterm zone="camel-tag-list-size"><primary sortas="camel_tag_list_size">camel_tag_list_size</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_tag_list_size                 (<link linkend="CamelTag">CamelTag</link> **list);</programlisting>
<para>
Get the number of tags present in the tag list <parameter>list</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelTag"><type>CamelTag</type></link> list
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of tags
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-tag-list-free" role="function">
<title>camel_tag_list_free ()</title>
<indexterm zone="camel-tag-list-free"><primary sortas="camel_tag_list_free">camel_tag_list_free</primary></indexterm><programlisting><link linkend="void">void</link>                camel_tag_list_free                 (<link linkend="CamelTag">CamelTag</link> **list);</programlisting>
<para>
Free the tag list <parameter>list</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> the address of a <link linkend="CamelTag"><type>CamelTag</type></link> list
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-new" role="function">
<title>camel_message_info_new ()</title>
<indexterm zone="camel-message-info-new"><primary sortas="camel_message_info_new">camel_message_info_new</primary></indexterm><programlisting><link linkend="void">void</link> *              camel_message_info_new              (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary);</programlisting>
<para>
Create a new <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-ref" role="function">
<title>camel_message_info_ref ()</title>
<indexterm zone="camel-message-info-ref"><primary sortas="camel_message_info_ref">camel_message_info_ref</primary></indexterm><programlisting><link linkend="void">void</link>                camel_message_info_ref              (<link linkend="void">void</link> *info);</programlisting>
<para>
Reference an info.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-new-from-header" role="function">
<title>camel_message_info_new_from_header ()</title>
<indexterm zone="camel-message-info-new-from-header"><primary sortas="camel_message_info_new_from_header">camel_message_info_new_from_header</primary></indexterm><programlisting><link linkend="CamelMessageInfo">CamelMessageInfo</link> *  camel_message_info_new_from_header  (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *summary,
                                                         <link linkend="struct--camel-header-raw">struct _camel_header_raw</link> *header);</programlisting>
<para>
Create a new <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link> pre-populated with info from
<parameter>header</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>summary</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderSummary"><type>CamelFolderSummary</type></link> object or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>header</parameter>&#160;:</term>
<listitem><simpara> raw header
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-free" role="function">
<title>camel_message_info_free ()</title>
<indexterm zone="camel-message-info-free"><primary sortas="camel_message_info_free">camel_message_info_free</primary></indexterm><programlisting><link linkend="void">void</link>                camel_message_info_free             (<link linkend="void">void</link> *info);</programlisting>
<para>
Unref's and potentially frees a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link> and its contents.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-clone" role="function">
<title>camel_message_info_clone ()</title>
<indexterm zone="camel-message-info-clone"><primary sortas="camel_message_info_clone">camel_message_info_clone</primary></indexterm><programlisting><link linkend="void">void</link> *              camel_message_info_clone            (const <link linkend="void">void</link> *info);</programlisting>
<para>
Duplicate a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the duplicated <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-ptr" role="function">
<title>camel_message_info_ptr ()</title>
<indexterm zone="camel-message-info-ptr"><primary sortas="camel_message_info_ptr">camel_message_info_ptr</primary></indexterm><programlisting>const <link linkend="void">void</link> *        camel_message_info_ptr              (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);</programlisting>
<para>
Generic accessor method for getting pointer data.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> info to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the pointer data
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-uint32" role="function">
<title>camel_message_info_uint32 ()</title>
<indexterm zone="camel-message-info-uint32"><primary sortas="camel_message_info_uint32">camel_message_info_uint32</primary></indexterm><programlisting><link linkend="guint32">guint32</link>             camel_message_info_uint32           (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);</programlisting>
<para>
Generic accessor method for getting 32bit int data.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> info to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the int data
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-time" role="function">
<title>camel_message_info_time ()</title>
<indexterm zone="camel-message-info-time"><primary sortas="camel_message_info_time">camel_message_info_time</primary></indexterm><programlisting><link linkend="time-t">time_t</link>              camel_message_info_time             (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="int">int</link> id);</programlisting>
<para>
Generic accessor method for getting time_t data.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> info to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the time_t data
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-uid" role="macro">
<title>camel_message_info_uid()</title>
<indexterm zone="camel-message-info-uid"><primary sortas="camel_message_info_uid">camel_message_info_uid</primary></indexterm><programlisting>#define camel_message_info_uid(mi) ((const char *)((const CamelMessageInfo *)mi)-&gt;uid)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-subject" role="macro">
<title>camel_message_info_subject()</title>
<indexterm zone="camel-message-info-subject"><primary sortas="camel_message_info_subject">camel_message_info_subject</primary></indexterm><programlisting>#define camel_message_info_subject(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SUBJECT))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-from" role="macro">
<title>camel_message_info_from()</title>
<indexterm zone="camel-message-info-from"><primary sortas="camel_message_info_from">camel_message_info_from</primary></indexterm><programlisting>#define camel_message_info_from(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FROM))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-to" role="macro">
<title>camel_message_info_to()</title>
<indexterm zone="camel-message-info-to"><primary sortas="camel_message_info_to">camel_message_info_to</primary></indexterm><programlisting>#define camel_message_info_to(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_TO))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-cc" role="macro">
<title>camel_message_info_cc()</title>
<indexterm zone="camel-message-info-cc"><primary sortas="camel_message_info_cc">camel_message_info_cc</primary></indexterm><programlisting>#define camel_message_info_cc(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_CC))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-mlist" role="macro">
<title>camel_message_info_mlist()</title>
<indexterm zone="camel-message-info-mlist"><primary sortas="camel_message_info_mlist">camel_message_info_mlist</primary></indexterm><programlisting>#define camel_message_info_mlist(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MLIST))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-flags" role="macro">
<title>camel_message_info_flags()</title>
<indexterm zone="camel-message-info-flags"><primary sortas="camel_message_info_flags">camel_message_info_flags</primary></indexterm><programlisting>#define camel_message_info_flags(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FLAGS)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-size" role="macro">
<title>camel_message_info_size()</title>
<indexterm zone="camel-message-info-size"><primary sortas="camel_message_info_size">camel_message_info_size</primary></indexterm><programlisting>#define camel_message_info_size(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SIZE)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-date-sent" role="macro">
<title>camel_message_info_date_sent()</title>
<indexterm zone="camel-message-info-date-sent"><primary sortas="camel_message_info_date_sent">camel_message_info_date_sent</primary></indexterm><programlisting>#define camel_message_info_date_sent(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_SENT)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-date-received" role="macro">
<title>camel_message_info_date_received()</title>
<indexterm zone="camel-message-info-date-received"><primary sortas="camel_message_info_date_received">camel_message_info_date_received</primary></indexterm><programlisting>#define camel_message_info_date_received(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_RECEIVED)
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-message-id" role="macro">
<title>camel_message_info_message_id()</title>
<indexterm zone="camel-message-info-message-id"><primary sortas="camel_message_info_message_id">camel_message_info_message_id</primary></indexterm><programlisting>#define camel_message_info_message_id(mi) ((const CamelSummaryMessageID *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MESSAGE_ID))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-references" role="macro">
<title>camel_message_info_references()</title>
<indexterm zone="camel-message-info-references"><primary sortas="camel_message_info_references">camel_message_info_references</primary></indexterm><programlisting>#define camel_message_info_references(mi) ((const CamelSummaryReferences *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_REFERENCES))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-user-flags" role="macro">
<title>camel_message_info_user_flags()</title>
<indexterm zone="camel-message-info-user-flags"><primary sortas="camel_message_info_user_flags">camel_message_info_user_flags</primary></indexterm><programlisting>#define camel_message_info_user_flags(mi) ((const CamelFlag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_FLAGS))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-user-tags" role="macro">
<title>camel_message_info_user_tags()</title>
<indexterm zone="camel-message-info-user-tags"><primary sortas="camel_message_info_user_tags">camel_message_info_user_tags</primary></indexterm><programlisting>#define camel_message_info_user_tags(mi) ((const CamelTag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_TAGS))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-headers" role="macro">
<title>camel_message_info_headers()</title>
<indexterm zone="camel-message-info-headers"><primary sortas="camel_message_info_headers">camel_message_info_headers</primary></indexterm><programlisting>#define camel_message_info_headers(mi) ((const struct _camel_header_param *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_HEADERS))
</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-user-flag" role="function">
<title>camel_message_info_user_flag ()</title>
<indexterm zone="camel-message-info-user-flag"><primary sortas="camel_message_info_user_flag">camel_message_info_user_flag</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_message_info_user_flag        (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id);</programlisting>
<para>
Get the state of a user flag named <parameter>id</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> user flag to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the state of the user flag
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-user-tag" role="function">
<title>camel_message_info_user_tag ()</title>
<indexterm zone="camel-message-info-user-tag"><primary sortas="camel_message_info_user_tag">camel_message_info_user_tag</primary></indexterm><programlisting>const <link linkend="char">char</link> *        camel_message_info_user_tag         (const <link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id);</programlisting>
<para>
Get the value of a user tag named <parameter>id</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> user tag to get
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the value of the user tag
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-set-flags" role="function">
<title>camel_message_info_set_flags ()</title>
<indexterm zone="camel-message-info-set-flags"><primary sortas="camel_message_info_set_flags">camel_message_info_set_flags</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_message_info_set_flags        (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="guint32">guint32</link> set);</programlisting>
<para>
Change the state of the system flags on the <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> mask of flags to change
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>set</parameter>&#160;:</term>
<listitem><simpara> state the flags should be changed to
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if any of the flags changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-set-user-flag" role="function">
<title>camel_message_info_set_user_flag ()</title>
<indexterm zone="camel-message-info-set-user-flag"><primary sortas="camel_message_info_set_user_flag">camel_message_info_set_user_flag</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_message_info_set_user_flag    (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id,
                                                         <link linkend="gboolean">gboolean</link> state);</programlisting>
<para>
Set the state of a user flag on a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> name of the user flag to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara> state to set the flag to
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the state changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-set-user-tag" role="function">
<title>camel_message_info_set_user_tag ()</title>
<indexterm zone="camel-message-info-set-user-tag"><primary sortas="camel_message_info_set_user_tag">camel_message_info_set_user_tag</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_message_info_set_user_tag     (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi,
                                                         const <link linkend="char">char</link> *id,
                                                         const <link linkend="char">char</link> *val);</programlisting>
<para>
Set the value of a user tag on a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelMessageInfo"><type>CamelMessageInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&#160;:</term>
<listitem><simpara> name of the user tag to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>val</parameter>&#160;:</term>
<listitem><simpara> value to set
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the value changed or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-content-info-dump" role="function">
<title>camel_content_info_dump ()</title>
<indexterm zone="camel-content-info-dump"><primary sortas="camel_content_info_dump">camel_content_info_dump</primary></indexterm><programlisting><link linkend="void">void</link>                camel_content_info_dump             (<link linkend="CamelMessageContentInfo">CamelMessageContentInfo</link> *ci,
                                                         <link linkend="int">int</link> depth);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ci</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>depth</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-message-info-dump" role="function">
<title>camel_message_info_dump ()</title>
<indexterm zone="camel-message-info-dump"><primary sortas="camel_message_info_dump">camel_message_info_dump</primary></indexterm><programlisting><link linkend="void">void</link>                camel_message_info_dump             (<link linkend="CamelMessageInfo">CamelMessageInfo</link> *mi);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>mi</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-summary-migrate-infos" role="function">
<title>camel_folder_summary_migrate_infos ()</title>
<indexterm zone="camel-folder-summary-migrate-infos"><primary sortas="camel_folder_summary_migrate_infos">camel_folder_summary_migrate_infos</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_folder_summary_migrate_infos  (<link linkend="CamelFolderSummary">CamelFolderSummary</link> *s);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
