<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"/> <title>mail::folder::readSubFolders</title> <link rel="stylesheet" href="manpage.css" type="text/css"/> <link rel="start" href="index.html" title="Cone: COnsole Newsreader And Emailer"/> <link rel="up" href="libmail-folder.html" title="mail::folder Native API reference"/> <link rel="prev" href="folder-readfolderinfo.html" title="mail::folder::readFolderInfo"/> <link rel="next" href="folder-renamefolder.html" title="mail::folder::renameFolder"/> <link xmlns="" rel="icon" href="icon.gif" type="image/gif"/> <meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/> <!-- Copyright 2002 - 2007 Double Precision, Inc. See COPYING for distribution information. --> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center" rowspan="1"> mail::folder::readSubFolders</th> </tr> <tr> <td width="20%" align="left" rowspan="1" colspan="1"> <a accesskey="p" href="folder-readfolderinfo.html" shape="rect">Prev</a> </td> <th width="60%" align="center" rowspan="1" colspan="1"> <span class="structname">mail::folder</span> Native API reference</th> <td width="20%" align="right" rowspan="1" colspan="1">  <a accesskey="n" href="folder-renamefolder.html" shape="rect">Next</a></td> </tr> </table> <hr/> </div> <div class="refentry" lang="en" xml:lang="en"> <a id="folder-readsubfolders" shape="rect" name="folder-readsubfolders"> </a> <div class="titlepage"/> <div class="refnamediv"> <h2>Name</h2> <p>mail::folder::readSubFolders — Enumerate subfolders</p> </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="literallayout"> <p><br clear="none"/> <br clear="none"/> <br clear="none"/> <br clear="none"/> #include <libmail/mail.H><br clear="none"/> <br clear="none"/> <br clear="none"/> class myCallback : public mail::callback {<br clear="none"/> public:<br clear="none"/>     void success(std::string msg);<br clear="none"/>     void fail(std::string msg);<br clear="none"/> };<br clear="none"/></p> </div> <div class="literallayout"> <p><br clear="none"/> class myFolderCallback : public mail::callback::folderlist {<br clear="none"/> public:<br clear="none"/>     void success(const std::vector<const mail::folder *> &folders);<br clear="none"/> };<br clear="none"/></p> </div> <div class="literallayout"> <p><br clear="none"/> mail::folder *folder;<br clear="none"/></p> </div> <div class="funcsynopsis"> <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> <tr> <td rowspan="1" colspan="1"><code class="funcdef">folder-><b class="fsfunc">readSubFolders</b>(</code></td> <td rowspan="1" colspan="1">myFolderCallback & </td> <td rowspan="1" colspan="1"><var class="pdparam">folderCallback</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">myCallback & </td> <td rowspan="1" colspan="1"><var class="pdparam">callback</var><code>)</code>;</td> </tr> </table> </div> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id632015" shape="rect" name="id632015"> </a> <h2>USAGE</h2> <p>A mail account contains folders that are arranged in a tree-like hierarchy. <code class="function">mail::folder::readSubFolders</code> enumerates <em class="parameter"><code>folder</code></em>'s subfolders.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>Use <a class="link" href="folder-hassubfolders.html" title="mail::folder::hasSubFolders" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::folder::hasSubFolders</span>(3x)</span></a> to check if <em class="parameter"><code>folder</code></em> contains subfolders, and invoke <code class="function">mail::folder::readSubFolders</code> only if <code class="function">mail::folder::hasSubFolders</code> returns true.</p> </div> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id632077" shape="rect" name="id632077"> </a> <h2>RETURN CODES AND CALLBACKS</h2> <p>The application must wait until <em class="parameter"><code>callback</code></em>'s <code class="function">success</code> or <code class="function">fail</code> method is invoked. The <code class="function">success</code> method is invoked when this request is succesfully processed. The <code class="function">fail</code> method is invoked if this request cannot be processed. The application must not destroy <em class="parameter"><code>callback</code></em> until either the <code class="function">success</code> or <code class="function">fail</code> method is invoked.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p><em class="parameter"><code>callback</code></em>'s <code class="function">fail</code> method may be invoked even after other callback methods were invoked. This indicates that the request was partially completed before the error was encountered.</p> </div> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>The application must not destroy <em class="parameter"><code>folderCallback</code></em> until this request fails or succeeds. <em class="parameter"><code>folderCallback</code></em>'s <code class="function">success</code> method is invoked just before the <em class="parameter"><code>callback</code></em>'s <code class="function">success</code> method.</p> </div> <p>The <code class="function">folderCallback.success</code> method receives a vector of pointers to <span class="structname">mail::folder</span> objects, that enumerates <em class="parameter"><code>folder</code></em>'s subfolders. The vector will be empty if <em class="parameter"><code>folder</code></em> does not have any subfolders.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>Subfolders received by <code class="function">mail::callback::folder::success</code> are linked to the same account that <em class="parameter"><code>folder</code></em> is linked to.</p> </div> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p><span class="structname">mail::folder</span>s are linked to their corresponding <span class="structname">mail::account</span>s. A <span class="structname">mail::folder</span> created by one <span class="structname">mail::account</span> may not be used with a different <span class="structname">mail::folder</span>. All <span class="structname">mail::folder</span>s created by a <span class="structname">mail::account</span> are invalidated when this <span class="structname">mail::account</span> object is destroyed. Note that the <span class="structname">mail::folder</span> objects are not automatically destroyed; the application is still responsible for destroying any remaining <span class="structname">mail::folder</span>s, after their a <span class="structname">mail::account</span> is destroyed.</p> </div> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>The <code class="function">folderCallback.success</code> method receives a (possibly empty) vector of pointers to <span class="structname">mail::folder</span> objects. These objects will be destroyed when <code class="function">folderCallback.success</code> terminates. The application must use <a class="link" href="folder-clone.html" title="mail::folder::clone" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::folder::clone</span>(3x)</span></a> to create copies of <span class="structname">mail::folder</span> objects it wants to use later.</p> </div> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>Both <code class="function">folderCallback.success</code> and <code class="function">myCallback.success</code> method will be invoked if this request succeeds. <code class="function">folderCallback.success</code> will be invoked before <code class="function">myCallback.success</code> (since by definition this indicates that the request has been completed).</p> </div> <p><em class="parameter"><code>callback</code></em>'s <code class="function">success</code> method is then invoked, after all <span class="structname">mail::folder</span> objects are destroyed.</p> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id632421" shape="rect" name="id632421"> </a> <h2>SEE ALSO</h2> <p><a class="link" href="mail-readtoplevel.html" title="mail::account::readTopLevelFolders" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::readTopLevelFolders</span>(3x)</span></a>, <a class="link" href="folder-clone.html" title="mail::folder::clone" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::folder::clone</span>(3x)</span></a>, <a class="link" href="folder-getparentfolder.html" title="mail::folder::getParentFolder" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::folder::getParentFolder</span>(3x)</span></a>.</p> </div> </div> <div class="navfooter"> <hr/> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left" rowspan="1" colspan="1"> <a accesskey="p" href="folder-readfolderinfo.html" shape="rect">Prev</a> </td> <td width="20%" align="center" rowspan="1" colspan="1"> <a accesskey="u" href="libmail-folder.html" shape="rect">Up</a></td> <td width="40%" align="right" rowspan="1" colspan="1">  <a accesskey="n" href="folder-renamefolder.html" shape="rect">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top" rowspan="1" colspan="1">mail::folder::readFolderInfo </td> <td width="20%" align="center" rowspan="1" colspan="1"> <a accesskey="h" href="index.html" shape="rect">Home</a> | <a accesskey="t" href="bk01-toc.html" shape="rect">ToC</a></td> <td width="40%" align="right" valign="top" rowspan="1" colspan="1"> mail::folder::renameFolder</td> </tr> </table> </div> </body> </html>