Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 64656f00434e190abe8506174ca339ed > files > 307

ucommon-doc-4.3.1-1.mga1.i586.rpm

<!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"/>
<title>ucommon: NamedTree Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ucommon</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00089.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<h1>NamedTree Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="NamedTree" --><!-- doxytag: inherits="NamedObject" -->
<p>The named tree class is used to form a tree oriented list of associated objects.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00187_source.html">linked.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for NamedTree:</div>
<div class="dyncontent">
<div class="center"><img src="a00386.png" border="0" usemap="#_named_tree_inherit__map" alt="Inheritance graph"/></div>
<map name="_named_tree_inherit__map" id="_named_tree_inherit__map">
<area shape="rect" id="node11" href="a00165.html" title="Embed data objects into a tree structured memory database." alt="" coords="11,379,152,405"/><area shape="rect" id="node2" href="a00088.html" title="A linked object base class with members found by name." alt="" coords="16,229,147,256"/><area shape="rect" id="node4" href="a00099.html" title="A linked object base class for ordered objects." alt="" coords="5,155,157,181"/><area shape="rect" id="node6" href="a00065.html" title="Common base class for all objects that can be formed into a linked list." alt="" coords="11,80,152,107"/><area shape="rect" id="node8" href="a00091.html" title="A common base class for all managed objects." alt="" coords="40,5,123,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for NamedTree:</div>
<div class="dyncontent">
<div class="center"><img src="a00387.png" border="0" usemap="#_named_tree_coll__map" alt="Collaboration graph"/></div>
<map name="_named_tree_coll__map" id="_named_tree_coll__map">
<area shape="rect" id="node2" href="a00088.html" title="A linked object base class with members found by name." alt="" coords="5,280,136,307"/><area shape="rect" id="node4" href="a00099.html" title="A linked object base class for ordered objects." alt="" coords="45,176,197,203"/><area shape="rect" id="node12" href="a00098.html" title="An index container for maintaining an ordered list of objects." alt="" coords="160,280,301,307"/><area shape="rect" id="node6" href="a00065.html" title="Common base class for all objects that can be formed into a linked list." alt="" coords="51,91,192,117"/><area shape="rect" id="node8" href="a00091.html" title="A common base class for all managed objects." alt="" coords="80,5,163,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a3b4b70113d3ac498e23d7be6ac39a04c">find</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a child node of our object with the specified name.  <a href="#a3b4b70113d3ac498e23d7be6ac39a04c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#aa0e36d44f13edcd97372aa1ca091006a">getChild</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a direct child of our node which matches the specified name.  <a href="#aa0e36d44f13edcd97372aa1ca091006a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a6efeb1bb75f10c5813451600c1cc96e7">getFirst</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get first child node in our ordered list of children.  <a href="#a6efeb1bb75f10c5813451600c1cc96e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00098.html">OrderedIndex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a1af40c1803b063b30e0c4b38bb40b1c9">getIndex</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the ordered index of our child nodes.  <a href="#a1af40c1803b063b30e0c4b38bb40b1c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a4f65e8fc5699403bb011e9063a83e9d0">getIndexed</a> (unsigned index) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get child by index number.  <a href="#a4f65e8fc5699403bb011e9063a83e9d0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a6354513dc0386ffccd3a428c4d2ae7b8">getLeaf</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a direct leaf node on our node.  <a href="#a6354513dc0386ffccd3a428c4d2ae7b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a7c260c226a56484f40f4339c34b50eef">getParent</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get parent node we are listed as a child on.  <a href="#a7c260c226a56484f40f4339c34b50eef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ad6d360160bc260db479b44ee3035c46a">isLeaf</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if node has children.  <a href="#ad6d360160bc260db479b44ee3035c46a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a76c907a3328151de40ce7fb90e1b0dd9">isRoot</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if node is root node.  <a href="#a76c907a3328151de40ce7fb90e1b0dd9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ad86496a10465622896682d0015712a07">leaf</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a child leaf node of our object with the specified name.  <a href="#ad86496a10465622896682d0015712a07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ab1e021249cea96ef1833dcf717618647">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if this node has a name.  <a href="#ab1e021249cea96ef1833dcf717618647"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a44c9f20493cfc1e2f3e2af8d53e30881">operator!</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if this node is unnamed.  <a href="#a44c9f20493cfc1e2f3e2af8d53e30881"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a5648a8bfce8a0fac1798812883ef46ee">path</a> (const char *path) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a subnode by a dot separated list of node names.  <a href="#a5648a8bfce8a0fac1798812883ef46ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ac66710ad633b972b92c4497039bc4ac9">relist</a> (<a class="el" href="a00089.html">NamedTree</a> *trunk=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default relist is by tail...  <a href="#ac66710ad633b972b92c4497039bc4ac9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#afe9b08f462872076f7fde33da89db9ff">relistHead</a> (<a class="el" href="a00089.html">NamedTree</a> *trunk)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add leaf to a trunk, by reverse order.  <a href="#afe9b08f462872076f7fde33da89db9ff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a259461ec4678d835adc973c49c242664">relistTail</a> (<a class="el" href="a00089.html">NamedTree</a> *trunk)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add leaf to a trunk, by order.  <a href="#a259461ec4678d835adc973c49c242664"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a9dca969787689ea1dd8e23287764ef41">remove</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove our node from our parent list.  <a href="#a9dca969787689ea1dd8e23287764ef41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a412c17e1a6f77ce951a8a41be1b521de">setId</a> (char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set or replace the name id of this node.  <a href="#a412c17e1a6f77ce951a8a41be1b521de"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#abba3b716c26a2b946ed551321a4be597">NamedTree</a> (char *name=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a stand-alone or root tree node, with an optional name.  <a href="#abba3b716c26a2b946ed551321a4be597"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a4e87386e12520f3caabf5c777df323ca">NamedTree</a> (<a class="el" href="a00089.html">NamedTree</a> *parent, char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a tree node as a child of an existing node.  <a href="#a4e87386e12520f3caabf5c777df323ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#abf4196b8b4a652c0c16bc3e3f4bd2efb">NamedTree</a> (const <a class="el" href="a00089.html">NamedTree</a> &amp;source)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a copy of the tree.  <a href="#abf4196b8b4a652c0c16bc3e3f4bd2efb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ac1767517ff4d8583b046d4bc9bb8b260">purge</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs object destruction.  <a href="#ac1767517ff4d8583b046d4bc9bb8b260"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#af1bc30d538eafcfa3d2233b99d1cd722">~NamedTree</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete node in a tree.  <a href="#af1bc30d538eafcfa3d2233b99d1cd722"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0683922bfcc45b1b33009c600c33618"></a><!-- doxytag: member="NamedTree::child" ref="ae0683922bfcc45b1b33009c600c33618" args="" -->
<a class="el" href="a00098.html">OrderedIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>child</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7142160a7712735c8c33d094674f3d2f"></a><!-- doxytag: member="NamedTree::parent" ref="a7142160a7712735c8c33d094674f3d2f" args="" -->
<a class="el" href="a00089.html">NamedTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>parent</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The named tree class is used to form a tree oriented list of associated objects. </p>
<p>Typical uses for such data structures might be to form a parsed XML document, or for forming complex configuration management systems or for forming system resource management trees. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00565">565</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="abba3b716c26a2b946ed551321a4be597"></a><!-- doxytag: member="NamedTree::NamedTree" ref="abba3b716c26a2b946ed551321a4be597" args="(char *name=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>name</em> = <code>NULL</code></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a stand-alone or root tree node, with an optional name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>for this node. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4e87386e12520f3caabf5c777df323ca"></a><!-- doxytag: member="NamedTree::NamedTree" ref="a4e87386e12520f3caabf5c777df323ca" args="(NamedTree *parent, char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td>
          <td class="paramname"><em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a tree node as a child of an existing node. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>node we are listed under. </td></tr>
    <tr><td class="paramname">name</td><td>of our node. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abf4196b8b4a652c0c16bc3e3f4bd2efb"></a><!-- doxytag: member="NamedTree::NamedTree" ref="abf4196b8b4a652c0c16bc3e3f4bd2efb" args="(const NamedTree &amp;source)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00089.html">NamedTree</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct a copy of the tree. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>object to copy from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af1bc30d538eafcfa3d2233b99d1cd722"></a><!-- doxytag: member="NamedTree::~NamedTree" ref="af1bc30d538eafcfa3d2233b99d1cd722" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual NamedTree::~NamedTree </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete node in a tree. </p>
<p>If we delete a node, we must delist it from it's parent. We must also delink any child nodes. This is done by calling the <a class="el" href="a00089.html#ac1767517ff4d8583b046d4bc9bb8b260" title="Performs object destruction.">purge()</a> member. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3b4b70113d3ac498e23d7be6ac39a04c"></a><!-- doxytag: member="NamedTree::find" ref="a3b4b70113d3ac498e23d7be6ac39a04c" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::find </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a child node of our object with the specified name. </p>
<p>This will also recursivily search all child nodes that have children until the named node can be found. This seeks a child node that has children. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>tree object found or NULL. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#af3bb3edff9f97d990cc71b542f4ee0b5">treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aa0e36d44f13edcd97372aa1ca091006a"></a><!-- doxytag: member="NamedTree::getChild" ref="aa0e36d44f13edcd97372aa1ca091006a" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::getChild </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a direct child of our node which matches the specified name. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>of child node to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>tree node object of child or NULL. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#a7744f13ac93274a197cf830baaf4f171">treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6efeb1bb75f10c5813451600c1cc96e7"></a><!-- doxytag: member="NamedTree::getFirst" ref="a6efeb1bb75f10c5813451600c1cc96e7" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::getFirst </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get first child node in our ordered list of children. </p>
<p>This might be used to iterate child nodes. This may also be used to get unamed child nodes. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>first child node or NULL if no children. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#a8d041103b9d2f1900a9fe69816b6124d">treemap&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00187_source.html#l00657">657</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1af40c1803b063b30e0c4b38bb40b1c9"></a><!-- doxytag: member="NamedTree::getIndex" ref="a1af40c1803b063b30e0c4b38bb40b1c9" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00098.html">OrderedIndex</a>* NamedTree::getIndex </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the ordered index of our child nodes. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>ordered index of our children. </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00679">679</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4f65e8fc5699403bb011e9063a83e9d0"></a><!-- doxytag: member="NamedTree::getIndexed" ref="a4f65e8fc5699403bb011e9063a83e9d0" args="(unsigned index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::getIndexed </td>
          <td>(</td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get child by index number. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>of child to fetch. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>indexed child node. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#af90cd899ce78f8d6b5350c7e47b7e6c8">treemap&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00187_source.html#l00672">672</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6354513dc0386ffccd3a428c4d2ae7b8"></a><!-- doxytag: member="NamedTree::getLeaf" ref="a6354513dc0386ffccd3a428c4d2ae7b8" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::getLeaf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a direct leaf node on our node. </p>
<p>A leaf node is a node that has no children of it's own. This does not perform a recursive search. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>of leaf child node to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>tree node object of leaf or NULL. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#a39a64803f812772ec4a0af1b93331eef">treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a7c260c226a56484f40f4339c34b50eef"></a><!-- doxytag: member="NamedTree::getParent" ref="a7c260c226a56484f40f4339c34b50eef" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::getParent </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get parent node we are listed as a child on. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>parent node or NULL if none. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#a6f980afa31c00e741b7f5e95aac11945">treemap&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00187_source.html#l00664">664</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6d360160bc260db479b44ee3035c46a"></a><!-- doxytag: member="NamedTree::isLeaf" ref="ad6d360160bc260db479b44ee3035c46a" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NamedTree::isLeaf </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if node has children. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if node contains child nodes. </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00713">713</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a76c907a3328151de40ce7fb90e1b0dd9"></a><!-- doxytag: member="NamedTree::isRoot" ref="a76c907a3328151de40ce7fb90e1b0dd9" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NamedTree::isRoot </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if node is root node. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if node is root node. </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00720">720</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad86496a10465622896682d0015712a07"></a><!-- doxytag: member="NamedTree::leaf" ref="ad86496a10465622896682d0015712a07" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::leaf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a child leaf node of our object with the specified name. </p>
<p>This will recursively search all our child nodes until it can find a leaf node containing the specified id but that holds no further children. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>of leaf node to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>tree node object found or NULL. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#aa34725538512eefda17fbd0fb04a9863">treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ab1e021249cea96ef1833dcf717618647"></a><!-- doxytag: member="NamedTree::operator bool" ref="ab1e021249cea96ef1833dcf717618647" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NamedTree::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if this node has a name. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if name is set. </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00686">686</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a44c9f20493cfc1e2f3e2af8d53e30881"></a><!-- doxytag: member="NamedTree::operator!" ref="a44c9f20493cfc1e2f3e2af8d53e30881" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NamedTree::operator! </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if this node is unnamed. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>false if name is set. </dd></dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00693">693</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5648a8bfce8a0fac1798812883ef46ee"></a><!-- doxytag: member="NamedTree::path" ref="a5648a8bfce8a0fac1798812883ef46ee" args="(const char *path) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">NamedTree</a>* NamedTree::path </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a subnode by a dot separated list of node names. </p>
<p>If one or more lead dots are used, then the search will go through parent node levels of our node. The dot separated list could be thought of as a kind of pathname where dot is used like slash. This implies that individual nodes can never use names which contain dot's if the path function will be used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>name string being sought. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>tree node object found at the path or NULL. </dd></dl>

<p>Reimplemented in <a class="el" href="a00165.html#abebd8ee8e27c838c785f8aa835b51b52">treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ac1767517ff4d8583b046d4bc9bb8b260"></a><!-- doxytag: member="NamedTree::purge" ref="ac1767517ff4d8583b046d4bc9bb8b260" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::purge </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs object destruction. </p>
<p>Note, if we delete a named tree object the name of our member object is assumed to be a dynamically allocated string that will also be free'd. </p>

</div>
</div>
<a class="anchor" id="ac66710ad633b972b92c4497039bc4ac9"></a><!-- doxytag: member="NamedTree::relist" ref="ac66710ad633b972b92c4497039bc4ac9" args="(NamedTree *trunk=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::relist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td>
          <td class="paramname"><em>trunk</em> = <code>NULL</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default relist is by tail... </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trunk</td><td>we add leaf node to, NULL to delist. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00187_source.html#l00739">739</a> of file <a class="el" href="a00187_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="afe9b08f462872076f7fde33da89db9ff"></a><!-- doxytag: member="NamedTree::relistHead" ref="afe9b08f462872076f7fde33da89db9ff" args="(NamedTree *trunk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::relistHead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td>
          <td class="paramname"><em>trunk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add leaf to a trunk, by reverse order. </p>
<p>If NULL, just remove. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trunk</td><td>we add leaf node to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a259461ec4678d835adc973c49c242664"></a><!-- doxytag: member="NamedTree::relistTail" ref="a259461ec4678d835adc973c49c242664" args="(NamedTree *trunk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::relistTail </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">NamedTree</a> *&#160;</td>
          <td class="paramname"><em>trunk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add leaf to a trunk, by order. </p>
<p>If NULL, just remove. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trunk</td><td>we add leaf node to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9dca969787689ea1dd8e23287764ef41"></a><!-- doxytag: member="NamedTree::remove" ref="a9dca969787689ea1dd8e23287764ef41" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::remove </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove our node from our parent list. </p>
<p>The name is set to NULL to keep delete from freeing the name string. </p>

</div>
</div>
<a class="anchor" id="a412c17e1a6f77ce951a8a41be1b521de"></a><!-- doxytag: member="NamedTree::setId" ref="a412c17e1a6f77ce951a8a41be1b521de" args="(char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void NamedTree::setId </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set or replace the name id of this node. </p>
<p>This will free the string if a name had already been set. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>for this node to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00187_source.html">linked.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00089.html">NamedTree</a>      </li>
      <li class="footer">Generated on Wed Apr 13 2011 22:39:48 for ucommon by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>