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

<refnamediv>
<refname>CamelStore</refname>
<refpurpose></refpurpose>
</refnamediv>

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

<synopsis>
struct              <link linkend="CamelStore">CamelStore</link>;
                    <link linkend="CamelFolderInfo">CamelFolderInfo</link>;
#define             <link linkend="CAMEL-FOLDER-NOSELECT--CAPS">CAMEL_FOLDER_NOSELECT</link>
#define             <link linkend="CAMEL-FOLDER-NOINFERIORS--CAPS">CAMEL_FOLDER_NOINFERIORS</link>
#define             <link linkend="CAMEL-FOLDER-CHILDREN--CAPS">CAMEL_FOLDER_CHILDREN</link>
#define             <link linkend="CAMEL-FOLDER-NOCHILDREN--CAPS">CAMEL_FOLDER_NOCHILDREN</link>
#define             <link linkend="CAMEL-FOLDER-SUBSCRIBED--CAPS">CAMEL_FOLDER_SUBSCRIBED</link>
#define             <link linkend="CAMEL-FOLDER-VIRTUAL--CAPS">CAMEL_FOLDER_VIRTUAL</link>
#define             <link linkend="CAMEL-FOLDER-SYSTEM--CAPS">CAMEL_FOLDER_SYSTEM</link>
#define             <link linkend="CAMEL-FOLDER-VTRASH--CAPS">CAMEL_FOLDER_VTRASH</link>
#define             <link linkend="CAMEL-FOLDER-SHARED-TO-ME--CAPS">CAMEL_FOLDER_SHARED_TO_ME</link>
#define             <link linkend="CAMEL-FOLDER-SHARED-BY-ME--CAPS">CAMEL_FOLDER_SHARED_BY_ME</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-MASK--CAPS">CAMEL_FOLDER_TYPE_MASK</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-BIT--CAPS">CAMEL_FOLDER_TYPE_BIT</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-NORMAL--CAPS">CAMEL_FOLDER_TYPE_NORMAL</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-INBOX--CAPS">CAMEL_FOLDER_TYPE_INBOX</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-OUTBOX--CAPS">CAMEL_FOLDER_TYPE_OUTBOX</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-TRASH--CAPS">CAMEL_FOLDER_TYPE_TRASH</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-JUNK--CAPS">CAMEL_FOLDER_TYPE_JUNK</link>
#define             <link linkend="CAMEL-FOLDER-TYPE-SENT--CAPS">CAMEL_FOLDER_TYPE_SENT</link>
#define             <link linkend="CAMEL-STORE-READ--CAPS">CAMEL_STORE_READ</link>
#define             <link linkend="CAMEL-STORE-WRITE--CAPS">CAMEL_STORE_WRITE</link>
                    <link linkend="CamelRenameInfo">CamelRenameInfo</link>;
#define             <link linkend="CAMEL-STORE-SUBSCRIPTIONS--CAPS">CAMEL_STORE_SUBSCRIPTIONS</link>
#define             <link linkend="CAMEL-STORE-VTRASH--CAPS">CAMEL_STORE_VTRASH</link>
#define             <link linkend="CAMEL-STORE-FILTER-INBOX--CAPS">CAMEL_STORE_FILTER_INBOX</link>
#define             <link linkend="CAMEL-STORE-VJUNK--CAPS">CAMEL_STORE_VJUNK</link>
#define             <link linkend="CAMEL-STORE-PROXY--CAPS">CAMEL_STORE_PROXY</link>
#define             <link linkend="CAMEL-STORE-FOLDER-CREATE--CAPS">CAMEL_STORE_FOLDER_CREATE</link>
#define             <link linkend="CAMEL-STORE-FOLDER-EXCL--CAPS">CAMEL_STORE_FOLDER_EXCL</link>
#define             <link linkend="CAMEL-STORE-FOLDER-BODY-INDEX--CAPS">CAMEL_STORE_FOLDER_BODY_INDEX</link>
#define             <link linkend="CAMEL-STORE-FOLDER-PRIVATE--CAPS">CAMEL_STORE_FOLDER_PRIVATE</link>
#define             <link linkend="CAMEL-STORE-FOLDER-CREATE-EXCL--CAPS">CAMEL_STORE_FOLDER_CREATE_EXCL</link>
#define             <link linkend="CAMEL-STORE-FOLDER-INFO-FAST--CAPS">CAMEL_STORE_FOLDER_INFO_FAST</link>
#define             <link linkend="CAMEL-STORE-FOLDER-INFO-RECURSIVE--CAPS">CAMEL_STORE_FOLDER_INFO_RECURSIVE</link>
#define             <link linkend="CAMEL-STORE-FOLDER-INFO-SUBSCRIBED--CAPS">CAMEL_STORE_FOLDER_INFO_SUBSCRIBED</link>
#define             <link linkend="CAMEL-STORE-FOLDER-INFO-NO-VIRTUAL--CAPS">CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL</link>
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-store-get-folder">camel_store_get_folder</link>              (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-store-get-inbox">camel_store_get_inbox</link>               (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-store-get-trash">camel_store_get_trash</link>               (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-store-get-junk">camel_store_get_junk</link>                (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="CamelFolderInfo">CamelFolderInfo</link> *   <link linkend="camel-store-create-folder">camel_store_create_folder</link>           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *parent_name,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-delete-folder">camel_store_delete_folder</link>           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-rename-folder">camel_store_rename_folder</link>           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *old_namein,
                                                         const <link linkend="char">char</link> *new_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-sync">camel_store_sync</link>                    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="int">int</link> expunge,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="CamelFolderInfo">CamelFolderInfo</link> *   <link linkend="camel-store-get-folder-info">camel_store_get_folder_info</link>         (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *top,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-free-folder-info">camel_store_free_folder_info</link>        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);
<link linkend="void">void</link>                <link linkend="camel-store-free-folder-info-full">camel_store_free_folder_info_full</link>   (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);
<link linkend="void">void</link>                <link linkend="camel-store-free-folder-info-nop">camel_store_free_folder_info_nop</link>    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);
<link linkend="CamelFolderInfo">CamelFolderInfo</link> *   <link linkend="camel-folder-info-new">camel_folder_info_new</link>               (void);
<link linkend="void">void</link>                <link linkend="camel-folder-info-free">camel_folder_info_free</link>              (<link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);
<link linkend="CamelFolderInfo">CamelFolderInfo</link> *   <link linkend="camel-folder-info-build">camel_folder_info_build</link>             (<link linkend="GPtrArray">GPtrArray</link> *folders,
                                                         const <link linkend="char">char</link> *namespace,
                                                         <link linkend="char">char</link> separator,
                                                         <link linkend="gboolean">gboolean</link> short_names);
<link linkend="CamelFolderInfo">CamelFolderInfo</link> *   <link linkend="camel-folder-info-clone">camel_folder_info_clone</link>             (<link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-store-supports-subscriptions">camel_store_supports_subscriptions</link>  (<link linkend="CamelStore">CamelStore</link> *store);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-store-folder-subscribed">camel_store_folder_subscribed</link>       (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name);
<link linkend="void">void</link>                <link linkend="camel-store-subscribe-folder">camel_store_subscribe_folder</link>        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-unsubscribe-folder">camel_store_unsubscribe_folder</link>      (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-store-noop">camel_store_noop</link>                    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="int">int</link>                 <link linkend="camel-store-folder-uri-equal">camel_store_folder_uri_equal</link>        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *uri0,
                                                         const <link linkend="char">char</link> *uri1);
<link linkend="gboolean">gboolean</link>            <link linkend="camel-store-can-refresh-folder">camel_store_can_refresh_folder</link>      (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *info,
                                                         <link linkend="CamelException">CamelException</link> *ex);
                    <link linkend="CamelISubscribe">CamelISubscribe</link>;
<link linkend="gboolean">gboolean</link>            <link linkend="camel-isubscribe-subscribed">camel_isubscribe_subscribed</link>         (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *name);
<link linkend="void">void</link>                <link linkend="camel-isubscribe-subscribe">camel_isubscribe_subscribe</link>          (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-isubscribe-unsubscribe">camel_isubscribe_unsubscribe</link>        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);
</synopsis>
</refsynopsisdiv>









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

<refsect1 id="camel-CamelStore.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="CamelStore" role="struct">
<title>struct CamelStore</title>
<indexterm zone="CamelStore"><primary sortas="CamelStore">CamelStore</primary></indexterm><programlisting>struct CamelStore {
	CamelService parent_object;
	struct _CamelStorePrivate *priv;
	
	CamelObjectBag *folders;
	struct _CamelDB *cdb_r;
	struct _CamelDB *cdb_w;

	guint32 flags;
	guint32 mode;

	/* Future ABI expansion */
	gpointer later[4];
};
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelFolderInfo" role="struct">
<title>CamelFolderInfo</title>
<indexterm zone="CamelFolderInfo"><primary sortas="CamelFolderInfo">CamelFolderInfo</primary></indexterm><programlisting>typedef struct {
	struct _CamelFolderInfo *next;
	struct _CamelFolderInfo *parent;
	struct _CamelFolderInfo *child;

	char *uri;
	char *name;
	char *full_name;

	guint32 flags;
	gint32 unread;
	gint32 total;
} CamelFolderInfo;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-NOSELECT--CAPS" role="macro">
<title>CAMEL_FOLDER_NOSELECT</title>
<indexterm zone="CAMEL-FOLDER-NOSELECT--CAPS"><primary sortas="CAMEL_FOLDER_NOSELECT">CAMEL_FOLDER_NOSELECT</primary></indexterm><programlisting>#define CAMEL_FOLDER_NOSELECT (1&lt;&lt;0)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-NOINFERIORS--CAPS" role="macro">
<title>CAMEL_FOLDER_NOINFERIORS</title>
<indexterm zone="CAMEL-FOLDER-NOINFERIORS--CAPS"><primary sortas="CAMEL_FOLDER_NOINFERIORS">CAMEL_FOLDER_NOINFERIORS</primary></indexterm><programlisting>#define CAMEL_FOLDER_NOINFERIORS (1&lt;&lt;1)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-CHILDREN--CAPS" role="macro">
<title>CAMEL_FOLDER_CHILDREN</title>
<indexterm zone="CAMEL-FOLDER-CHILDREN--CAPS"><primary sortas="CAMEL_FOLDER_CHILDREN">CAMEL_FOLDER_CHILDREN</primary></indexterm><programlisting>#define CAMEL_FOLDER_CHILDREN (1&lt;&lt;2)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-NOCHILDREN--CAPS" role="macro">
<title>CAMEL_FOLDER_NOCHILDREN</title>
<indexterm zone="CAMEL-FOLDER-NOCHILDREN--CAPS"><primary sortas="CAMEL_FOLDER_NOCHILDREN">CAMEL_FOLDER_NOCHILDREN</primary></indexterm><programlisting>#define CAMEL_FOLDER_NOCHILDREN (1&lt;&lt;3)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-SUBSCRIBED--CAPS" role="macro">
<title>CAMEL_FOLDER_SUBSCRIBED</title>
<indexterm zone="CAMEL-FOLDER-SUBSCRIBED--CAPS"><primary sortas="CAMEL_FOLDER_SUBSCRIBED">CAMEL_FOLDER_SUBSCRIBED</primary></indexterm><programlisting>#define CAMEL_FOLDER_SUBSCRIBED (1&lt;&lt;4)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-VIRTUAL--CAPS" role="macro">
<title>CAMEL_FOLDER_VIRTUAL</title>
<indexterm zone="CAMEL-FOLDER-VIRTUAL--CAPS"><primary sortas="CAMEL_FOLDER_VIRTUAL">CAMEL_FOLDER_VIRTUAL</primary></indexterm><programlisting>#define CAMEL_FOLDER_VIRTUAL (1&lt;&lt;5)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-SYSTEM--CAPS" role="macro">
<title>CAMEL_FOLDER_SYSTEM</title>
<indexterm zone="CAMEL-FOLDER-SYSTEM--CAPS"><primary sortas="CAMEL_FOLDER_SYSTEM">CAMEL_FOLDER_SYSTEM</primary></indexterm><programlisting>#define CAMEL_FOLDER_SYSTEM (1&lt;&lt;6)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-VTRASH--CAPS" role="macro">
<title>CAMEL_FOLDER_VTRASH</title>
<indexterm zone="CAMEL-FOLDER-VTRASH--CAPS"><primary sortas="CAMEL_FOLDER_VTRASH">CAMEL_FOLDER_VTRASH</primary></indexterm><programlisting>#define CAMEL_FOLDER_VTRASH (1&lt;&lt;7)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-SHARED-TO-ME--CAPS" role="macro">
<title>CAMEL_FOLDER_SHARED_TO_ME</title>
<indexterm zone="CAMEL-FOLDER-SHARED-TO-ME--CAPS"><primary sortas="CAMEL_FOLDER_SHARED_TO_ME">CAMEL_FOLDER_SHARED_TO_ME</primary></indexterm><programlisting>#define CAMEL_FOLDER_SHARED_TO_ME (1&lt;&lt;8)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-SHARED-BY-ME--CAPS" role="macro">
<title>CAMEL_FOLDER_SHARED_BY_ME</title>
<indexterm zone="CAMEL-FOLDER-SHARED-BY-ME--CAPS"><primary sortas="CAMEL_FOLDER_SHARED_BY_ME">CAMEL_FOLDER_SHARED_BY_ME</primary></indexterm><programlisting>#define CAMEL_FOLDER_SHARED_BY_ME (1&lt;&lt;9)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-MASK--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_MASK</title>
<indexterm zone="CAMEL-FOLDER-TYPE-MASK--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_MASK">CAMEL_FOLDER_TYPE_MASK</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_MASK (7 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-BIT--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_BIT</title>
<indexterm zone="CAMEL-FOLDER-TYPE-BIT--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_BIT">CAMEL_FOLDER_TYPE_BIT</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_BIT (10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-NORMAL--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_NORMAL</title>
<indexterm zone="CAMEL-FOLDER-TYPE-NORMAL--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_NORMAL">CAMEL_FOLDER_TYPE_NORMAL</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_NORMAL (0 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-INBOX--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_INBOX</title>
<indexterm zone="CAMEL-FOLDER-TYPE-INBOX--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_INBOX">CAMEL_FOLDER_TYPE_INBOX</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_INBOX (1 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-OUTBOX--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_OUTBOX</title>
<indexterm zone="CAMEL-FOLDER-TYPE-OUTBOX--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_OUTBOX">CAMEL_FOLDER_TYPE_OUTBOX</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_OUTBOX (2 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-TRASH--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_TRASH</title>
<indexterm zone="CAMEL-FOLDER-TYPE-TRASH--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_TRASH">CAMEL_FOLDER_TYPE_TRASH</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_TRASH (3 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-JUNK--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_JUNK</title>
<indexterm zone="CAMEL-FOLDER-TYPE-JUNK--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_JUNK">CAMEL_FOLDER_TYPE_JUNK</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_JUNK (4 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-FOLDER-TYPE-SENT--CAPS" role="macro">
<title>CAMEL_FOLDER_TYPE_SENT</title>
<indexterm zone="CAMEL-FOLDER-TYPE-SENT--CAPS"><primary sortas="CAMEL_FOLDER_TYPE_SENT">CAMEL_FOLDER_TYPE_SENT</primary></indexterm><programlisting>#define CAMEL_FOLDER_TYPE_SENT (5 &lt;&lt; 10)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-READ--CAPS" role="macro">
<title>CAMEL_STORE_READ</title>
<indexterm zone="CAMEL-STORE-READ--CAPS"><primary sortas="CAMEL_STORE_READ">CAMEL_STORE_READ</primary></indexterm><programlisting>#define CAMEL_STORE_READ  (1 &lt;&lt; 0)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-WRITE--CAPS" role="macro">
<title>CAMEL_STORE_WRITE</title>
<indexterm zone="CAMEL-STORE-WRITE--CAPS"><primary sortas="CAMEL_STORE_WRITE">CAMEL_STORE_WRITE</primary></indexterm><programlisting>#define CAMEL_STORE_WRITE (1 &lt;&lt; 1)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CamelRenameInfo" role="struct">
<title>CamelRenameInfo</title>
<indexterm zone="CamelRenameInfo"><primary sortas="CamelRenameInfo">CamelRenameInfo</primary></indexterm><programlisting>typedef struct {
	char *old_base;
	struct _CamelFolderInfo *new;
} CamelRenameInfo;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-SUBSCRIPTIONS--CAPS" role="macro">
<title>CAMEL_STORE_SUBSCRIPTIONS</title>
<indexterm zone="CAMEL-STORE-SUBSCRIPTIONS--CAPS"><primary sortas="CAMEL_STORE_SUBSCRIPTIONS">CAMEL_STORE_SUBSCRIPTIONS</primary></indexterm><programlisting>#define CAMEL_STORE_SUBSCRIPTIONS	(1 &lt;&lt; 0)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-VTRASH--CAPS" role="macro">
<title>CAMEL_STORE_VTRASH</title>
<indexterm zone="CAMEL-STORE-VTRASH--CAPS"><primary sortas="CAMEL_STORE_VTRASH">CAMEL_STORE_VTRASH</primary></indexterm><programlisting>#define CAMEL_STORE_VTRASH		(1 &lt;&lt; 1)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FILTER-INBOX--CAPS" role="macro">
<title>CAMEL_STORE_FILTER_INBOX</title>
<indexterm zone="CAMEL-STORE-FILTER-INBOX--CAPS"><primary sortas="CAMEL_STORE_FILTER_INBOX">CAMEL_STORE_FILTER_INBOX</primary></indexterm><programlisting>#define CAMEL_STORE_FILTER_INBOX	(1 &lt;&lt; 2)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-VJUNK--CAPS" role="macro">
<title>CAMEL_STORE_VJUNK</title>
<indexterm zone="CAMEL-STORE-VJUNK--CAPS"><primary sortas="CAMEL_STORE_VJUNK">CAMEL_STORE_VJUNK</primary></indexterm><programlisting>#define CAMEL_STORE_VJUNK		(1 &lt;&lt; 3)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-PROXY--CAPS" role="macro">
<title>CAMEL_STORE_PROXY</title>
<indexterm zone="CAMEL-STORE-PROXY--CAPS"><primary sortas="CAMEL_STORE_PROXY">CAMEL_STORE_PROXY</primary></indexterm><programlisting>#define CAMEL_STORE_PROXY		(1 &lt;&lt; 4)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-CREATE--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_CREATE</title>
<indexterm zone="CAMEL-STORE-FOLDER-CREATE--CAPS"><primary sortas="CAMEL_STORE_FOLDER_CREATE">CAMEL_STORE_FOLDER_CREATE</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_CREATE (1&lt;&lt;0)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-EXCL--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_EXCL</title>
<indexterm zone="CAMEL-STORE-FOLDER-EXCL--CAPS"><primary sortas="CAMEL_STORE_FOLDER_EXCL">CAMEL_STORE_FOLDER_EXCL</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_EXCL (1&lt;&lt;1)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-BODY-INDEX--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_BODY_INDEX</title>
<indexterm zone="CAMEL-STORE-FOLDER-BODY-INDEX--CAPS"><primary sortas="CAMEL_STORE_FOLDER_BODY_INDEX">CAMEL_STORE_FOLDER_BODY_INDEX</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_BODY_INDEX (1&lt;&lt;2)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-PRIVATE--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_PRIVATE</title>
<indexterm zone="CAMEL-STORE-FOLDER-PRIVATE--CAPS"><primary sortas="CAMEL_STORE_FOLDER_PRIVATE">CAMEL_STORE_FOLDER_PRIVATE</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_PRIVATE (1&lt;&lt;3) /* a private folder, that shouldn't show up in unmatched/folder info's, etc */
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-CREATE-EXCL--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_CREATE_EXCL</title>
<indexterm zone="CAMEL-STORE-FOLDER-CREATE-EXCL--CAPS"><primary sortas="CAMEL_STORE_FOLDER_CREATE_EXCL">CAMEL_STORE_FOLDER_CREATE_EXCL</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_CREATE_EXCL (CAMEL_STORE_FOLDER_CREATE | CAMEL_STORE_FOLDER_EXCL)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-INFO-FAST--CAPS" role="macro" condition="deprecated:">
<title>CAMEL_STORE_FOLDER_INFO_FAST</title>
<indexterm zone="CAMEL-STORE-FOLDER-INFO-FAST--CAPS" role="deprecated"><primary sortas="CAMEL_STORE_FOLDER_INFO_FAST">CAMEL_STORE_FOLDER_INFO_FAST</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_INFO_FAST       (1 &lt;&lt; 0)
</programlisting>
<warning><para><literal>CAMEL_STORE_FOLDER_INFO_FAST</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-INFO-RECURSIVE--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_INFO_RECURSIVE</title>
<indexterm zone="CAMEL-STORE-FOLDER-INFO-RECURSIVE--CAPS"><primary sortas="CAMEL_STORE_FOLDER_INFO_RECURSIVE">CAMEL_STORE_FOLDER_INFO_RECURSIVE</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_INFO_RECURSIVE  (1 &lt;&lt; 1)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-INFO-SUBSCRIBED--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_INFO_SUBSCRIBED</title>
<indexterm zone="CAMEL-STORE-FOLDER-INFO-SUBSCRIBED--CAPS"><primary sortas="CAMEL_STORE_FOLDER_INFO_SUBSCRIBED">CAMEL_STORE_FOLDER_INFO_SUBSCRIBED</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_INFO_SUBSCRIBED (1 &lt;&lt; 2)
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-STORE-FOLDER-INFO-NO-VIRTUAL--CAPS" role="macro">
<title>CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL</title>
<indexterm zone="CAMEL-STORE-FOLDER-INFO-NO-VIRTUAL--CAPS"><primary sortas="CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL">CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL</primary></indexterm><programlisting>#define CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL (1 &lt;&lt; 3)  /* don't include vTrash/vJunk folders */
</programlisting>
<para>
</para></refsect2>
<refsect2 id="camel-store-get-folder" role="function">
<title>camel_store_get_folder ()</title>
<indexterm zone="camel-store-get-folder"><primary sortas="camel_store_get_folder">camel_store_get_folder</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_store_get_folder              (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Get a specific folder object from the store by name.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> name of the folder to get
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> folder flags (create, save body index, etc)
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the folder corresponding to the path <parameter>folder_name</parameter> or <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-get-inbox" role="function">
<title>camel_store_get_inbox ()</title>
<indexterm zone="camel-store-get-inbox"><primary sortas="camel_store_get_inbox">camel_store_get_inbox</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_store_get_inbox               (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the folder in the store into which new mail is delivered,
or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if no such folder exists.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-get-trash" role="function">
<title>camel_store_get_trash ()</title>
<indexterm zone="camel-store-get-trash"><primary sortas="camel_store_get_trash">camel_store_get_trash</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_store_get_trash               (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the folder in the store into which trash is delivered, or
<link linkend="NULL--CAPS"><literal>NULL</literal></link> if no such folder exists.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-get-junk" role="function">
<title>camel_store_get_junk ()</title>
<indexterm zone="camel-store-get-junk"><primary sortas="camel_store_get_junk">camel_store_get_junk</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_store_get_junk                (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the folder in the store into which junk is delivered, or
<link linkend="NULL--CAPS"><literal>NULL</literal></link> if no such folder exists.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-create-folder" role="function">
<title>camel_store_create_folder ()</title>
<indexterm zone="camel-store-create-folder"><primary sortas="camel_store_create_folder">camel_store_create_folder</primary></indexterm><programlisting><link linkend="CamelFolderInfo">CamelFolderInfo</link> *   camel_store_create_folder           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *parent_name,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Creates a new folder as a child of an existing folder.
<parameter>parent_name</parameter> can be <link linkend="NULL--CAPS"><literal>NULL</literal></link> to create a new top-level folder.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>parent_name</parameter>&#160;:</term>
<listitem><simpara> name of the new folder's parent, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> name of the folder to create
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> info about the created folder, which the caller must
free with <link linkend="camel-store-free-folder-info"><type>camel_store_free_folder_info</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-delete-folder" role="function">
<title>camel_store_delete_folder ()</title>
<indexterm zone="camel-store-delete-folder"><primary sortas="camel_store_delete_folder">camel_store_delete_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_delete_folder           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Deletes the named folder. The folder must be empty.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> name of the folder to delete
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-rename-folder" role="function">
<title>camel_store_rename_folder ()</title>
<indexterm zone="camel-store-rename-folder"><primary sortas="camel_store_rename_folder">camel_store_rename_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_rename_folder           (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *old_namein,
                                                         const <link linkend="char">char</link> *new_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Rename a named folder to a new name.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>old_namein</parameter>&#160;:</term>
<listitem><simpara> the current name of the folder
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>new_name</parameter>&#160;:</term>
<listitem><simpara> the new name of the folder
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-sync" role="function">
<title>camel_store_sync ()</title>
<indexterm zone="camel-store-sync"><primary sortas="camel_store_sync">camel_store_sync</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_sync                    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="int">int</link> expunge,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Syncs any changes that have been made to the store object and its
folders with the real store.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>expunge</parameter>&#160;:</term>
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if an expunge should be done after sync or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-get-folder-info" role="function">
<title>camel_store_get_folder_info ()</title>
<indexterm zone="camel-store-get-folder-info"><primary sortas="camel_store_get_folder_info">camel_store_get_folder_info</primary></indexterm><programlisting><link linkend="CamelFolderInfo">CamelFolderInfo</link> *   camel_store_get_folder_info         (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *top,
                                                         <link linkend="guint32">guint32</link> flags,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
This fetches information about the folder structure of <parameter>store</parameter>,
starting with <parameter>top</parameter>, and returns a tree of CamelFolderInfo
structures. If <parameter>flags</parameter> includes <link linkend="CAMEL-STORE-FOLDER-INFO-SUBSCRIBED--CAPS"><type>CAMEL_STORE_FOLDER_INFO_SUBSCRIBED</type></link>,
only subscribed folders will be listed.   If the store doesn't support
subscriptions, then it will list all folders.  If <parameter>flags</parameter> includes
<link linkend="CAMEL-STORE-FOLDER-INFO-RECURSIVE--CAPS"><type>CAMEL_STORE_FOLDER_INFO_RECURSIVE</type></link>, the returned tree will include
all levels of hierarchy below <parameter>top</parameter>. If not, it will only include
the immediate subfolders of <parameter>top</parameter>. If <parameter>flags</parameter> includes
<link linkend="CAMEL-STORE-FOLDER-INFO-FAST--CAPS"><type>CAMEL_STORE_FOLDER_INFO_FAST</type></link>, the unread_message_count fields of
some or all of the structures may be set to <link linkend="1--CAPS"><literal>-1</literal></link>, if the store cannot
determine that information quickly.  If <parameter>flags</parameter> includes
<link linkend="CAMEL-STORE-FOLDER-INFO-NO-VIRTUAL--CAPS"><type>CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL</type></link>, don't include special virtual
folders (such as vTrash or vJunk).
</para>
<para>
The CAMEL_STORE_FOLDER_INFO_FAST flag should be considered
deprecated; most backends will behave the same whether it is
supplied or not.  The only guaranteed way to get updated folder
counts is to both open the folder and invoke <link linkend="refresh-info"><function>refresh_info()</function></link> it.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>top</parameter>&#160;:</term>
<listitem><simpara> the name of the folder to start from
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> various CAMEL_STORE_FOLDER_INFO_* flags to control behavior
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> tree, which must be freed with
<link linkend="camel-store-free-folder-info"><type>camel_store_free_folder_info</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-free-folder-info" role="function">
<title>camel_store_free_folder_info ()</title>
<indexterm zone="camel-store-free-folder-info"><primary sortas="camel_store_free_folder_info">camel_store_free_folder_info</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_free_folder_info        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);</programlisting>
<para>
Frees the data returned by <link linkend="camel-store-get-folder-info"><type>camel_store_get_folder_info</type></link>. If <parameter>fi</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>,
nothing is done, the routine simply returns.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> as gotten via <link linkend="camel-store-get-folder-info"><type>camel_store_get_folder_info</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-free-folder-info-full" role="function">
<title>camel_store_free_folder_info_full ()</title>
<indexterm zone="camel-store-free-folder-info-full"><primary sortas="camel_store_free_folder_info_full">camel_store_free_folder_info_full</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_free_folder_info_full   (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);</programlisting>
<para>
An implementation for <link linkend="CamelStore-free-folder-info"><type>"free_folder_info"</type></link>. Frees all
of the data.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> as gotten via <link linkend="camel-store-get-folder-info"><type>camel_store_get_folder_info</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-free-folder-info-nop" role="function">
<title>camel_store_free_folder_info_nop ()</title>
<indexterm zone="camel-store-free-folder-info-nop"><primary sortas="camel_store_free_folder_info_nop">camel_store_free_folder_info_nop</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_free_folder_info_nop    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);</programlisting>
<para>
An implementation for <link linkend="CamelStore-free-folder-info"><type>"free_folder_info"</type></link>. Does nothing.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> as gotten via <link linkend="camel-store-get-folder-info"><type>camel_store_get_folder_info</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-info-new" role="function">
<title>camel_folder_info_new ()</title>
<indexterm zone="camel-folder-info-new"><primary sortas="camel_folder_info_new">camel_folder_info_new</primary></indexterm><programlisting><link linkend="CamelFolderInfo">CamelFolderInfo</link> *   camel_folder_info_new               (void);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new empty CamelFolderInfo instance
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-info-free" role="function">
<title>camel_folder_info_free ()</title>
<indexterm zone="camel-folder-info-free"><primary sortas="camel_folder_info_free">camel_folder_info_free</primary></indexterm><programlisting><link linkend="void">void</link>                camel_folder_info_free              (<link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);</programlisting>
<para>
Frees <parameter>fi</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>fi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-info-build" role="function" condition="deprecated:">
<title>camel_folder_info_build ()</title>
<indexterm zone="camel-folder-info-build" role="deprecated"><primary sortas="camel_folder_info_build">camel_folder_info_build</primary></indexterm><programlisting><link linkend="CamelFolderInfo">CamelFolderInfo</link> *   camel_folder_info_build             (<link linkend="GPtrArray">GPtrArray</link> *folders,
                                                         const <link linkend="char">char</link> *namespace,
                                                         <link linkend="char">char</link> separator,
                                                         <link linkend="gboolean">gboolean</link> short_names);</programlisting>
<warning><para><literal>camel_folder_info_build</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>
This takes an array of folders and attaches them together according
to the hierarchy described by their full_names and <parameter>separator</parameter>. If
<parameter>namespace</parameter> is non-<link linkend="NULL--CAPS"><literal>NULL</literal></link>, then it will be ignored as a full_name
prefix, for purposes of comparison. If necessary,
<link linkend="camel-folder-info-build"><type>camel_folder_info_build</type></link> will create additional <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> with
<link linkend="NULL--CAPS"><literal>NULL</literal></link> urls to fill in gaps in the tree. The value of <parameter>short_names</parameter>
is used in constructing the names of these intermediate folders.
</para>
<para>
NOTE: This is deprected, do not use this.
FIXME: remove this/move it to imap, which is the only user of it now.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>folders</parameter>&#160;:</term>
<listitem><simpara> an array of <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>namespace</parameter>&#160;:</term>
<listitem><simpara> an ignorable prefix on the folder names
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>separator</parameter>&#160;:</term>
<listitem><simpara> the hieararchy separator character
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>short_names</parameter>&#160;:</term>
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the (short) name of a folder is the part after
the last <parameter>separator</parameter> in the full name. <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if it is the full name.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the top level of the tree of linked folder info.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-folder-info-clone" role="function">
<title>camel_folder_info_clone ()</title>
<indexterm zone="camel-folder-info-clone"><primary sortas="camel_folder_info_clone">camel_folder_info_clone</primary></indexterm><programlisting><link linkend="CamelFolderInfo">CamelFolderInfo</link> *   camel_folder_info_clone             (<link linkend="CamelFolderInfo">CamelFolderInfo</link> *fi);</programlisting>
<para>
Clones <parameter>fi</parameter> recursively.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>fi</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the cloned <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link> tree.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-supports-subscriptions" role="function">
<title>camel_store_supports_subscriptions ()</title>
<indexterm zone="camel-store-supports-subscriptions"><primary sortas="camel_store_supports_subscriptions">camel_store_supports_subscriptions</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_store_supports_subscriptions  (<link linkend="CamelStore">CamelStore</link> *store);</programlisting>
<para>
Get whether or not <parameter>store</parameter> supports subscriptions to folders.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if folder subscriptions are supported or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-folder-subscribed" role="function">
<title>camel_store_folder_subscribed ()</title>
<indexterm zone="camel-store-folder-subscribed"><primary sortas="camel_store_folder_subscribed">camel_store_folder_subscribed</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_store_folder_subscribed       (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name);</programlisting>
<para>
Find out if a folder has been subscribed to.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> full path of the folder
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the folder has been subscribed to or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-subscribe-folder" role="function">
<title>camel_store_subscribe_folder ()</title>
<indexterm zone="camel-store-subscribe-folder"><primary sortas="camel_store_subscribe_folder">camel_store_subscribe_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_subscribe_folder        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Subscribe to the folder described by <parameter>folder_name</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> full path of the folder
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-unsubscribe-folder" role="function">
<title>camel_store_unsubscribe_folder ()</title>
<indexterm zone="camel-store-unsubscribe-folder"><primary sortas="camel_store_unsubscribe_folder">camel_store_unsubscribe_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_unsubscribe_folder      (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *folder_name,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Unsubscribe from the folder described by <parameter>folder_name</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folder_name</parameter>&#160;:</term>
<listitem><simpara> full path of the folder
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-noop" role="function">
<title>camel_store_noop ()</title>
<indexterm zone="camel-store-noop"><primary sortas="camel_store_noop">camel_store_noop</primary></indexterm><programlisting><link linkend="void">void</link>                camel_store_noop                    (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Pings <parameter>store</parameter> so that its connection doesn't timeout.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-folder-uri-equal" role="function">
<title>camel_store_folder_uri_equal ()</title>
<indexterm zone="camel-store-folder-uri-equal"><primary sortas="camel_store_folder_uri_equal">camel_store_folder_uri_equal</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_store_folder_uri_equal        (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *uri0,
                                                         const <link linkend="char">char</link> *uri1);</programlisting>
<para>
Compares 2 folder uris to check that they are equal.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link> object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uri0</parameter>&#160;:</term>
<listitem><simpara> a folder uri
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>uri1</parameter>&#160;:</term>
<listitem><simpara> another folder uri
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if they are equal or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-store-can-refresh-folder" role="function">
<title>camel_store_can_refresh_folder ()</title>
<indexterm zone="camel-store-can-refresh-folder"><primary sortas="camel_store_can_refresh_folder">camel_store_can_refresh_folder</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_store_can_refresh_folder      (<link linkend="CamelStore">CamelStore</link> *store,
                                                         <link linkend="CamelFolderInfo">CamelFolderInfo</link> *info,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Returns if this folder (param info) should be checked for new mail or not.
It should not look into sub infos (info->child) or next infos, it should
return value only for the actual folder info.
Default behavior is that all Inbox folders are intended to be refreshed.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelStore"><type>CamelStore</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>info</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelFolderInfo"><type>CamelFolderInfo</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="CamelException"><type>CamelException</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> whether folder should be checked for new mails
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="CamelISubscribe" role="struct">
<title>CamelISubscribe</title>
<indexterm zone="CamelISubscribe"><primary sortas="CamelISubscribe">CamelISubscribe</primary></indexterm><programlisting>typedef struct {
	CamelInterface iface;

	gboolean (*subscribed)(CamelStore *store, const char *folder_name);
	void (*subscribe)(CamelStore *store, const char *folder_name, CamelException *ex);
	void (*unsubscribe)(CamelStore *store, const char *folder_name, CamelException *ex);
} CamelISubscribe;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="camel-isubscribe-subscribed" role="function">
<title>camel_isubscribe_subscribed ()</title>
<indexterm zone="camel-isubscribe-subscribed"><primary sortas="camel_isubscribe_subscribed">camel_isubscribe_subscribed</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            camel_isubscribe_subscribed         (<link linkend="CamelStore">CamelStore</link> *store,
                                                         const <link linkend="char">char</link> *name);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>store</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</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-isubscribe-subscribe" role="function">
<title>camel_isubscribe_subscribe ()</title>
<indexterm zone="camel-isubscribe-subscribe"><primary sortas="camel_isubscribe_subscribe">camel_isubscribe_subscribe</primary></indexterm><programlisting><link linkend="void">void</link>                camel_isubscribe_subscribe          (<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>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>
</variablelist></refsect2>
<refsect2 id="camel-isubscribe-unsubscribe" role="function">
<title>camel_isubscribe_unsubscribe ()</title>
<indexterm zone="camel-isubscribe-unsubscribe"><primary sortas="camel_isubscribe_unsubscribe">camel_isubscribe_unsubscribe</primary></indexterm><programlisting><link linkend="void">void</link>                camel_isubscribe_unsubscribe        (<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>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>
</variablelist></refsect2>

</refsect1>




</refentry>
