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

<refnamediv>
<refname>CamelVeeFolder</refname>
<refpurpose></refpurpose>
</refnamediv>

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

<synopsis>
                    <link linkend="CamelVeeFolder">CamelVeeFolder</link>;
#define             <link linkend="CAMEL-UNMATCHED-NAME--CAPS">CAMEL_UNMATCHED_NAME</link>
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-vee-folder-new">camel_vee_folder_new</link>                (<link linkend="CamelStore">CamelStore</link> *parent_store,
                                                         const <link linkend="char">char</link> *full,
                                                         <link linkend="guint32">guint32</link> flags);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-construct">camel_vee_folder_construct</link>          (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelStore">CamelStore</link> *parent_store,
                                                         const <link linkend="char">char</link> *full,
                                                         const <link linkend="char">char</link> *name,
                                                         <link linkend="guint32">guint32</link> flags);
<link linkend="CamelFolder">CamelFolder</link> *       <link linkend="camel-vee-folder-get-location">camel_vee_folder_get_location</link>       (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         const <link linkend="struct--CamelVeeMessageInfo">struct _CamelVeeMessageInfo</link> *vinfo,
                                                         <link linkend="char">char</link> **realuid);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-add-folder">camel_vee_folder_add_folder</link>         (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-remove-folder">camel_vee_folder_remove_folder</link>      (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-set-folders">camel_vee_folder_set_folders</link>        (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="GList">GList</link> *folders);
<link linkend="int">int</link>                 <link linkend="camel-vee-folder-rebuild-folder">camel_vee_folder_rebuild_folder</link>     (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub,
                                                         <link linkend="CamelException">CamelException</link> *ex);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-set-expression">camel_vee_folder_set_expression</link>     (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         const <link linkend="char">char</link> *expr);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-hash-folder">camel_vee_folder_hash_folder</link>        (<link linkend="CamelFolder">CamelFolder</link> *folder,
                                                         <link linkend="char">char</link> buffer[8]);
<link linkend="void">void</link>                <link linkend="camel-vee-folder-sync-headers">camel_vee_folder_sync_headers</link>       (<link linkend="CamelFolder">CamelFolder</link> *vf,
                                                         <link linkend="CamelException">CamelException</link> *ex);
</synopsis>
</refsynopsisdiv>









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

<refsect1 id="camel-CamelVeeFolder.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="CamelVeeFolder" role="struct">
<title>CamelVeeFolder</title>
<indexterm zone="CamelVeeFolder"><primary sortas="CamelVeeFolder">CamelVeeFolder</primary></indexterm><programlisting>typedef struct {
	CamelFolder parent;

	struct _CamelVeeFolderPrivate *priv;

	char *expression;	/* query expression */

	guint32 flags;		/* folder open flags */

	CamelFolderChangeInfo *changes;
	CamelFolderSearch *search;

	/* only set-up if our parent is a vee-store, used also as a flag to
	 * say that this folder is part of the unmatched folder */
	struct _CamelVeeStore *parent_vee_store;
	GHashTable *hashes;
	GHashTable *loaded;
	gboolean deleted;
} CamelVeeFolder;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="CAMEL-UNMATCHED-NAME--CAPS" role="macro">
<title>CAMEL_UNMATCHED_NAME</title>
<indexterm zone="CAMEL-UNMATCHED-NAME--CAPS"><primary sortas="CAMEL_UNMATCHED_NAME">CAMEL_UNMATCHED_NAME</primary></indexterm><programlisting>#define CAMEL_UNMATCHED_NAME "UNMATCHED"
</programlisting>
<para>
</para></refsect2>
<refsect2 id="camel-vee-folder-new" role="function">
<title>camel_vee_folder_new ()</title>
<indexterm zone="camel-vee-folder-new"><primary sortas="camel_vee_folder_new">camel_vee_folder_new</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_vee_folder_new                (<link linkend="CamelStore">CamelStore</link> *parent_store,
                                                         const <link linkend="char">char</link> *full,
                                                         <link linkend="guint32">guint32</link> flags);</programlisting>
<para>
Create a new CamelVeeFolder object.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>parent_store</parameter>&#160;:</term>
<listitem><simpara> the parent CamelVeeStore
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>full</parameter>&#160;:</term>
<listitem><simpara> the full path to the vfolder.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> flags of some kind
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> A new CamelVeeFolder widget.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-construct" role="function">
<title>camel_vee_folder_construct ()</title>
<indexterm zone="camel-vee-folder-construct"><primary sortas="camel_vee_folder_construct">camel_vee_folder_construct</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_construct          (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelStore">CamelStore</link> *parent_store,
                                                         const <link linkend="char">char</link> *full,
                                                         const <link linkend="char">char</link> *name,
                                                         <link linkend="guint32">guint32</link> flags);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>parent_store</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>full</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-get-location" role="function">
<title>camel_vee_folder_get_location ()</title>
<indexterm zone="camel-vee-folder-get-location"><primary sortas="camel_vee_folder_get_location">camel_vee_folder_get_location</primary></indexterm><programlisting><link linkend="CamelFolder">CamelFolder</link> *       camel_vee_folder_get_location       (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         const <link linkend="struct--CamelVeeMessageInfo">struct _CamelVeeMessageInfo</link> *vinfo,
                                                         <link linkend="char">char</link> **realuid);</programlisting>
<para>
Find the real folder (and uid)</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara> 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>vinfo</parameter>&#160;:</term>
<listitem><simpara> 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>realuid</parameter>&#160;:</term>
<listitem><simpara> if not NULL, set to the uid of the real message, must be
g_free'd by caller.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-add-folder" role="function">
<title>camel_vee_folder_add_folder ()</title>
<indexterm zone="camel-vee-folder-add-folder"><primary sortas="camel_vee_folder_add_folder">camel_vee_folder_add_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_add_folder         (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub);</programlisting>
<para>
Adds <parameter>sub</parameter> as a source folder to <parameter>vf</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara> Virtual Folder object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sub</parameter>&#160;:</term>
<listitem><simpara> source CamelFolder to add to <parameter>vf</parameter>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-remove-folder" role="function">
<title>camel_vee_folder_remove_folder ()</title>
<indexterm zone="camel-vee-folder-remove-folder"><primary sortas="camel_vee_folder_remove_folder">camel_vee_folder_remove_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_remove_folder      (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub);</programlisting>
<para>
Removed the source folder, <parameter>sub</parameter>, from the virtual folder, <parameter>vf</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara> Virtual Folder object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sub</parameter>&#160;:</term>
<listitem><simpara> source CamelFolder to remove from <parameter>vf</parameter>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-set-folders" role="function">
<title>camel_vee_folder_set_folders ()</title>
<indexterm zone="camel-vee-folder-set-folders"><primary sortas="camel_vee_folder_set_folders">camel_vee_folder_set_folders</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_set_folders        (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="GList">GList</link> *folders);</programlisting>
<para>
Set the whole list of folder sources on a vee folder.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara> 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>folders</parameter>&#160;:</term>
<listitem><simpara> 
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-rebuild-folder" role="function">
<title>camel_vee_folder_rebuild_folder ()</title>
<indexterm zone="camel-vee-folder-rebuild-folder"><primary sortas="camel_vee_folder_rebuild_folder">camel_vee_folder_rebuild_folder</primary></indexterm><programlisting><link linkend="int">int</link>                 camel_vee_folder_rebuild_folder     (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         <link linkend="CamelFolder">CamelFolder</link> *sub,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
Rebuild the folder <parameter>sub</parameter>, if it should be.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara> Virtual Folder object
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sub</parameter>&#160;:</term>
<listitem><simpara> source CamelFolder to add to <parameter>vf</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara> Exception.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-set-expression" role="function">
<title>camel_vee_folder_set_expression ()</title>
<indexterm zone="camel-vee-folder-set-expression"><primary sortas="camel_vee_folder_set_expression">camel_vee_folder_set_expression</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_set_expression     (<link linkend="CamelVeeFolder">CamelVeeFolder</link> *vf,
                                                         const <link linkend="char">char</link> *expr);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>expr</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-hash-folder" role="function">
<title>camel_vee_folder_hash_folder ()</title>
<indexterm zone="camel-vee-folder-hash-folder"><primary sortas="camel_vee_folder_hash_folder">camel_vee_folder_hash_folder</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_hash_folder        (<link linkend="CamelFolder">CamelFolder</link> *folder,
                                                         <link linkend="char">char</link> buffer[8]);</programlisting>
<para>
Create a hash string representing the folder name, which should be
unique, and remain static for a given folder.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>folder</parameter>&#160;:</term>
<listitem><simpara> 
@: 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="camel-vee-folder-sync-headers" role="function">
<title>camel_vee_folder_sync_headers ()</title>
<indexterm zone="camel-vee-folder-sync-headers"><primary sortas="camel_vee_folder_sync_headers">camel_vee_folder_sync_headers</primary></indexterm><programlisting><link linkend="void">void</link>                camel_vee_folder_sync_headers       (<link linkend="CamelFolder">CamelFolder</link> *vf,
                                                         <link linkend="CamelException">CamelException</link> *ex);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>vf</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ex</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
