<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>GNU CommonC++: ost::DirTree Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">GNU CommonC++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceost.html">ost</a></li><li class="navelem"><a class="el" href="classost_1_1_dir_tree.html">DirTree</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="classost_1_1_dir_tree-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">ost::DirTree Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>A generic class to walk a hierarchical directory structure. <a href="classost_1_1_dir_tree.html#details">More...</a></p> <p><code>#include <<a class="el" href="file_8h_source.html">file.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a7a88f36f4d26157b5ee8f55f1274c764"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#a7a88f36f4d26157b5ee8f55f1274c764">DirTree</a> (const char *prefix, unsigned maxdepth)</td></tr> <tr class="memdesc:a7a88f36f4d26157b5ee8f55f1274c764"><td class="mdescLeft"> </td><td class="mdescRight">Construct a directory tree walk starting at the specified prefix. <a href="#a7a88f36f4d26157b5ee8f55f1274c764">More...</a><br/></td></tr> <tr class="separator:a7a88f36f4d26157b5ee8f55f1274c764"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab80493eccf4b5547f2a259783c432992"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#ab80493eccf4b5547f2a259783c432992">DirTree</a> (unsigned maxdepth)</td></tr> <tr class="memdesc:ab80493eccf4b5547f2a259783c432992"><td class="mdescLeft"> </td><td class="mdescRight">Construct an un-opened directory tree of a known maximum depth. <a href="#ab80493eccf4b5547f2a259783c432992">More...</a><br/></td></tr> <tr class="separator:ab80493eccf4b5547f2a259783c432992"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a12a08ba9122fb17f23ae8ff3850aac6a"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#a12a08ba9122fb17f23ae8ff3850aac6a">~DirTree</a> ()</td></tr> <tr class="separator:a12a08ba9122fb17f23ae8ff3850aac6a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad675651afc2bf2f209c342f5b32ee3a5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#ad675651afc2bf2f209c342f5b32ee3a5">open</a> (const char *prefix)</td></tr> <tr class="memdesc:ad675651afc2bf2f209c342f5b32ee3a5"><td class="mdescLeft"> </td><td class="mdescRight">Open a directory tree path. <a href="#ad675651afc2bf2f209c342f5b32ee3a5">More...</a><br/></td></tr> <tr class="separator:ad675651afc2bf2f209c342f5b32ee3a5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad3bea5f9b8ef281b2ce95d2b0d7102ee"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#ad3bea5f9b8ef281b2ce95d2b0d7102ee">close</a> (void)</td></tr> <tr class="memdesc:ad3bea5f9b8ef281b2ce95d2b0d7102ee"><td class="mdescLeft"> </td><td class="mdescRight">Close the directory path. <a href="#ad3bea5f9b8ef281b2ce95d2b0d7102ee">More...</a><br/></td></tr> <tr class="separator:ad3bea5f9b8ef281b2ce95d2b0d7102ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0005c2fa80454f86d3c69c0e312b4523"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#a0005c2fa80454f86d3c69c0e312b4523">getPath</a> (void)</td></tr> <tr class="memdesc:a0005c2fa80454f86d3c69c0e312b4523"><td class="mdescLeft"> </td><td class="mdescRight">Extract the next full pathname from the directory walk. <a href="#a0005c2fa80454f86d3c69c0e312b4523">More...</a><br/></td></tr> <tr class="separator:a0005c2fa80454f86d3c69c0e312b4523"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad5a805f4ca629255e4c30307b63f1e5d"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#ad5a805f4ca629255e4c30307b63f1e5d">perform</a> (const char *prefix)</td></tr> <tr class="memdesc:ad5a805f4ca629255e4c30307b63f1e5d"><td class="mdescLeft"> </td><td class="mdescRight">This is used to step through the filter virtual for an entire subtree, and is used for cases where a derived <a class="el" href="classost_1_1_dir_tree.html" title="A generic class to walk a hierarchical directory structure. ">DirTree</a> class performs it's primary operations through filter rather than externally by calling <a class="el" href="classost_1_1_dir_tree.html#a0005c2fa80454f86d3c69c0e312b4523" title="Extract the next full pathname from the directory walk. ">getPath()</a>. <a href="#ad5a805f4ca629255e4c30307b63f1e5d">More...</a><br/></td></tr> <tr class="separator:ad5a805f4ca629255e4c30307b63f1e5d"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:a2950f4634b09423642edaa10fbfed51f"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_dir_tree.html#a2950f4634b09423642edaa10fbfed51f">filter</a> (const char *file, struct stat *ino)</td></tr> <tr class="memdesc:a2950f4634b09423642edaa10fbfed51f"><td class="mdescLeft"> </td><td class="mdescRight">Virtual method to filter results. <a href="#a2950f4634b09423642edaa10fbfed51f">More...</a><br/></td></tr> <tr class="separator:a2950f4634b09423642edaa10fbfed51f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>A generic class to walk a hierarchical directory structure. </p> <dl class="section author"><dt>Author</dt><dd>David Sugar <a href="#" onclick="location.href='mai'+'lto:'+'dyf'+'et'+'@os'+'te'+'l.c'+'om'; return false;">dyfet<span style="display: none;">.nosp@m.</span>@ost<span style="display: none;">.nosp@m.</span>el.co<span style="display: none;">.nosp@m.</span>m</a> Directory tree walking. </dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a7a88f36f4d26157b5ee8f55f1274c764"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ost::DirTree::DirTree </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>prefix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"><em>maxdepth</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Construct a directory tree walk starting at the specified prefix. </p> <p>A maximum subdirectory depth is also specified.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">prefix</td><td>to start walk. </td></tr> <tr><td class="paramname">maxdepth</td><td>subdirectory depth to examine. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ab80493eccf4b5547f2a259783c432992"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ost::DirTree::DirTree </td> <td>(</td> <td class="paramtype">unsigned </td> <td class="paramname"><em>maxdepth</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Construct an un-opened directory tree of a known maximum depth. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">maxdepth</td><td>subdirectory subdirectory depth. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a12a08ba9122fb17f23ae8ff3850aac6a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual ost::DirTree::~DirTree </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="ad3bea5f9b8ef281b2ce95d2b0d7102ee"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ost::DirTree::close </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Close the directory path. </p> </div> </div> <a class="anchor" id="a2950f4634b09423642edaa10fbfed51f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual bool ost::DirTree::filter </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct stat * </td> <td class="paramname"><em>ino</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Virtual method to filter results. </p> <p>Virtual override methods should call baseclass method to assure . and .. names are stripped out.</p> <dl class="section return"><dt>Returns</dt><dd>true if current filename is accepted. </dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>path to examine </td></tr> <tr><td class="paramname">ino</td><td>info of type, date, etc. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a0005c2fa80454f86d3c69c0e312b4523"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* ost::DirTree::getPath </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Extract the next full pathname from the directory walk. </p> <p>When returning directories, a '/' is appended. The returned string is a buffer of MAX_PATH size.</p> <dl class="section return"><dt>Returns</dt><dd>path of next subdirectory entry or NULL. </dd></dl> </div> </div> <a class="anchor" id="ad675651afc2bf2f209c342f5b32ee3a5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ost::DirTree::open </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>prefix</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Open a directory tree path. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">prefix</td><td>directory path to open. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad5a805f4ca629255e4c30307b63f1e5d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned ost::DirTree::perform </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>prefix</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This is used to step through the filter virtual for an entire subtree, and is used for cases where a derived <a class="el" href="classost_1_1_dir_tree.html" title="A generic class to walk a hierarchical directory structure. ">DirTree</a> class performs it's primary operations through filter rather than externally by calling <a class="el" href="classost_1_1_dir_tree.html#a0005c2fa80454f86d3c69c0e312b4523" title="Extract the next full pathname from the directory walk. ">getPath()</a>. </p> <dl class="section return"><dt>Returns</dt><dd>number of files and directories examined. </dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">prefix</td><td>directory path to examine. </td></tr> </table> </dd> </dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="file_8h_source.html">file.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>