Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 189

ucommon-doc-5.0.4-1mdv2010.2.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: ucommon::NamedTree Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00091.html">NamedTree</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::NamedTree Class Reference</h1><!-- doxytag: class="ucommon::NamedTree" --><!-- doxytag: inherits="ucommon::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="a00188_source.html">linked.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::NamedTree:</div>
<div class="dynsection">
<div class="center"><img src="a00452.png" border="0" usemap="#ucommon_1_1_named_tree_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1_named_tree_inherit__map" id="ucommon_1_1_named_tree_inherit__map">
<area shape="rect" id="node11" href="a00166.html" title="Embed data objects into a tree structured memory database." alt="" coords="15,379,247,405"/><area shape="rect" id="node2" href="a00090.html" title="A linked object base class with members found by name." alt="" coords="20,229,241,256"/><area shape="rect" id="node4" href="a00101.html" title="A linked object base class for ordered objects." alt="" coords="9,155,252,181"/><area shape="rect" id="node6" href="a00067.html" title="Common base class for all objects that can be formed into a linked list." alt="" coords="15,80,247,107"/><area shape="rect" id="node8" href="a00095.html" title="A common base class for all managed objects." alt="" coords="5,5,256,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ucommon::NamedTree:</div>
<div class="dynsection">
<div class="center"><img src="a00453.png" border="0" usemap="#ucommon_1_1_named_tree_coll__map" alt="Collaboration graph"/></div>
<map name="ucommon_1_1_named_tree_coll__map" id="ucommon_1_1_named_tree_coll__map">
<area shape="rect" id="node2" href="a00090.html" title="A linked object base class with members found by name." alt="" coords="5,280,227,307"/><area shape="rect" id="node4" href="a00101.html" title="A linked object base class for ordered objects." alt="" coords="68,176,311,203"/><area shape="rect" id="node11" href="a00100.html" title="An index container for maintaining an ordered list of objects." alt="" coords="251,280,483,307"/><area shape="rect" id="node6" href="a00067.html" title="Common base class for all objects that can be formed into a linked list." alt="" coords="73,91,305,117"/><area shape="rect" id="node8" href="a00095.html" title="A common base class for all managed objects." alt="" coords="64,5,315,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#af2764cb49258df006acfe27296c63480">find</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a child node of our object with the specified name.  <a href="#af2764cb49258df006acfe27296c63480"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a6177498167785c350002afa7d5412f2a">getChild</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a direct child of our node which matches the specified name.  <a href="#a6177498167785c350002afa7d5412f2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a702e2080ffa5d9a2bed5b12db9543751">getFirst</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get first child node in our ordered list of children.  <a href="#a702e2080ffa5d9a2bed5b12db9543751"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00100.html">OrderedIndex</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a94e7413310afc4de4a3c95913f71ef7d">getIndex</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ordered index of our child nodes.  <a href="#a94e7413310afc4de4a3c95913f71ef7d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a1b3e3905352e02db62bfee475abe35fd">getIndexed</a> (unsigned index) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get child by index number.  <a href="#a1b3e3905352e02db62bfee475abe35fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ac94a302de671abe9db11e89ed8719de9">getLeaf</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a direct leaf node on our node.  <a href="#ac94a302de671abe9db11e89ed8719de9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a4399e3d2de6f9826b15443de26d040ea">getParent</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get parent node we are listed as a child on.  <a href="#a4399e3d2de6f9826b15443de26d040ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a72f623e391305a498ba037e22702fabb">isLeaf</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if node has children.  <a href="#a72f623e391305a498ba037e22702fabb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a98f2f04c3aa1ebb20003735bc1e4133d">isRoot</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if node is root node.  <a href="#a98f2f04c3aa1ebb20003735bc1e4133d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#af4a0903591a0a30b52d69df7c356f955">leaf</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a child leaf node of our object with the specified name.  <a href="#af4a0903591a0a30b52d69df7c356f955"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ae25ea6138334927b6f67961a1ea061b4">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this node has a name.  <a href="#ae25ea6138334927b6f67961a1ea061b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a4e8be4e6eea4358d4f1bdd5a6311d274">operator!</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if this node is unnamed.  <a href="#a4e8be4e6eea4358d4f1bdd5a6311d274"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a466fed5ca078c9dce9c0ac787b002960">path</a> (const char *path) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a subnode by a dot separated list of node names.  <a href="#a466fed5ca078c9dce9c0ac787b002960"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#af454df71b72cbf05c52c6382d3accf5f">relist</a> (<a class="el" href="a00091.html">NamedTree</a> *trunk=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default relist is by tail.  <a href="#af454df71b72cbf05c52c6382d3accf5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#ab38559cb59b088c94df2fba66e24f6cb">relistHead</a> (<a class="el" href="a00091.html">NamedTree</a> *trunk)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add leaf to a trunk, by reverse order.  <a href="#ab38559cb59b088c94df2fba66e24f6cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a41a3076a0c06dd55630ef6dd78f995fc">relistTail</a> (<a class="el" href="a00091.html">NamedTree</a> *trunk)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add leaf to a trunk, by order.  <a href="#a41a3076a0c06dd55630ef6dd78f995fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a033e3062739216099de76aeb0b09b89c">remove</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove our node from our parent list.  <a href="#a033e3062739216099de76aeb0b09b89c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a02d27764236bfa3de963df539d100134">setId</a> (char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set or replace the name id of this node.  <a href="#a02d27764236bfa3de963df539d100134"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a023157a3a5f87380ce183415cb172e83">NamedTree</a> (const <a class="el" href="a00091.html">NamedTree</a> &amp;source)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a copy of the tree.  <a href="#a023157a3a5f87380ce183415cb172e83"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#aac8ef766e6bd9f6b2f7ae306eb2f68d7">NamedTree</a> (<a class="el" href="a00091.html">NamedTree</a> *parent, char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a tree node as a child of an existing node.  <a href="#aac8ef766e6bd9f6b2f7ae306eb2f68d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a42f81a93f226950e03ba4112c2c48d04">NamedTree</a> (char *name=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a stand-alone or root tree node, with an optional name.  <a href="#a42f81a93f226950e03ba4112c2c48d04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#afa9cc4544dd469e9054ef6959682e669">purge</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs object destruction.  <a href="#afa9cc4544dd469e9054ef6959682e669"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#adf7edee79153f235e93d95ef39bf8bab">~NamedTree</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete node in a tree.  <a href="#adf7edee79153f235e93d95ef39bf8bab"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af51fe679533eec10ae8a622791a88a06"></a><!-- doxytag: member="ucommon::NamedTree::child" ref="af51fe679533eec10ae8a622791a88a06" args="" -->
<a class="el" href="a00100.html">OrderedIndex</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>child</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9173493f39e69fc1b71e41a015b0cefa"></a><!-- doxytag: member="ucommon::NamedTree::parent" ref="a9173493f39e69fc1b71e41a015b0cefa" args="" -->
<a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>parent</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<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="a00188_source.html#l00573">573</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a42f81a93f226950e03ba4112c2c48d04"></a><!-- doxytag: member="ucommon::NamedTree::NamedTree" ref="a42f81a93f226950e03ba4112c2c48d04" args="(char *name=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em> = <code>NULL</code></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>for this node. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aac8ef766e6bd9f6b2f7ae306eb2f68d7"></a><!-- doxytag: member="ucommon::NamedTree::NamedTree" ref="aac8ef766e6bd9f6b2f7ae306eb2f68d7" args="(NamedTree *parent, char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td>
          <td class="paramname"> <em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parent</em>&nbsp;</td><td>node we are listed under. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>of our node. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a023157a3a5f87380ce183415cb172e83"></a><!-- doxytag: member="ucommon::NamedTree::NamedTree" ref="a023157a3a5f87380ce183415cb172e83" args="(const NamedTree &amp;source)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::NamedTree::NamedTree </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00091.html">NamedTree</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>object to copy from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adf7edee79153f235e93d95ef39bf8bab"></a><!-- doxytag: member="ucommon::NamedTree::~NamedTree" ref="adf7edee79153f235e93d95ef39bf8bab" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ucommon::NamedTree::~NamedTree </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00091.html#afa9cc4544dd469e9054ef6959682e669" title="Performs object destruction.">purge()</a> member. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af2764cb49258df006acfe27296c63480"></a><!-- doxytag: member="ucommon::NamedTree::find" ref="af2764cb49258df006acfe27296c63480" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::find </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</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="a00166.html#a7305aa33b7e774457668f32e941b7bca">ucommon::treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6177498167785c350002afa7d5412f2a"></a><!-- doxytag: member="ucommon::NamedTree::getChild" ref="a6177498167785c350002afa7d5412f2a" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::getChild </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</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="a00166.html#a0be97e58f9c446203ea662314c3ef02c">ucommon::treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a702e2080ffa5d9a2bed5b12db9543751"></a><!-- doxytag: member="ucommon::NamedTree::getFirst" ref="a702e2080ffa5d9a2bed5b12db9543751" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::getFirst </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00166.html#af127f5e029fd67fa6f1dbf901ebab95d">ucommon::treemap&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00188_source.html#l00665">665</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a94e7413310afc4de4a3c95913f71ef7d"></a><!-- doxytag: member="ucommon::NamedTree::getIndex" ref="a94e7413310afc4de4a3c95913f71ef7d" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00100.html">OrderedIndex</a>* ucommon::NamedTree::getIndex </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00188_source.html#l00687">687</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1b3e3905352e02db62bfee475abe35fd"></a><!-- doxytag: member="ucommon::NamedTree::getIndexed" ref="a1b3e3905352e02db62bfee475abe35fd" args="(unsigned index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::getIndexed </td>
          <td>(</td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>index</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</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="a00166.html#abf488bbfecb7066c92d8f1f63e7c6cb6">ucommon::treemap&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00188_source.html#l00680">680</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac94a302de671abe9db11e89ed8719de9"></a><!-- doxytag: member="ucommon::NamedTree::getLeaf" ref="ac94a302de671abe9db11e89ed8719de9" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::getLeaf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</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="a00166.html#a822b9aafb1db8648f6b3f48f52436671">ucommon::treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a4399e3d2de6f9826b15443de26d040ea"></a><!-- doxytag: member="ucommon::NamedTree::getParent" ref="a4399e3d2de6f9826b15443de26d040ea" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::getParent </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00166.html#a204d20cc0b62a95d7dc47411f89ffee9">ucommon::treemap&lt; T &gt;</a>.</p>

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

</div>
</div>
<a class="anchor" id="a72f623e391305a498ba037e22702fabb"></a><!-- doxytag: member="ucommon::NamedTree::isLeaf" ref="a72f623e391305a498ba037e22702fabb" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::NamedTree::isLeaf </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00188_source.html#l00721">721</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a98f2f04c3aa1ebb20003735bc1e4133d"></a><!-- doxytag: member="ucommon::NamedTree::isRoot" ref="a98f2f04c3aa1ebb20003735bc1e4133d" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::NamedTree::isRoot </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00188_source.html#l00728">728</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="af4a0903591a0a30b52d69df7c356f955"></a><!-- doxytag: member="ucommon::NamedTree::leaf" ref="af4a0903591a0a30b52d69df7c356f955" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::leaf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</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="a00166.html#a7d0f65a8ead61198d8515b29c37ad455">ucommon::treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ae25ea6138334927b6f67961a1ea061b4"></a><!-- doxytag: member="ucommon::NamedTree::operator bool" ref="ae25ea6138334927b6f67961a1ea061b4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::NamedTree::operator bool </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00188_source.html#l00694">694</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4e8be4e6eea4358d4f1bdd5a6311d274"></a><!-- doxytag: member="ucommon::NamedTree::operator!" ref="a4e8be4e6eea4358d4f1bdd5a6311d274" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::NamedTree::operator! </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00188_source.html#l00701">701</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="a466fed5ca078c9dce9c0ac787b002960"></a><!-- doxytag: member="ucommon::NamedTree::path" ref="a466fed5ca078c9dce9c0ac787b002960" args="(const char *path) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00091.html">NamedTree</a>* ucommon::NamedTree::path </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</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="a00166.html#a0d1f8e9ccfffda92bed13b595bacc1fe">ucommon::treemap&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="afa9cc4544dd469e9054ef6959682e669"></a><!-- doxytag: member="ucommon::NamedTree::purge" ref="afa9cc4544dd469e9054ef6959682e669" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::purge </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="af454df71b72cbf05c52c6382d3accf5f"></a><!-- doxytag: member="ucommon::NamedTree::relist" ref="af454df71b72cbf05c52c6382d3accf5f" args="(NamedTree *trunk=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::relist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td>
          <td class="paramname"> <em>trunk</em> = <code>NULL</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default relist is by tail. </p>
<p>.. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>trunk</em>&nbsp;</td><td>we add leaf node to, NULL to delist. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00188_source.html#l00747">747</a> of file <a class="el" href="a00188_source.html">linked.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab38559cb59b088c94df2fba66e24f6cb"></a><!-- doxytag: member="ucommon::NamedTree::relistHead" ref="ab38559cb59b088c94df2fba66e24f6cb" args="(NamedTree *trunk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::relistHead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td>
          <td class="paramname"> <em>trunk</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>trunk</em>&nbsp;</td><td>we add leaf node to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a41a3076a0c06dd55630ef6dd78f995fc"></a><!-- doxytag: member="ucommon::NamedTree::relistTail" ref="a41a3076a0c06dd55630ef6dd78f995fc" args="(NamedTree *trunk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::relistTail </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00091.html">NamedTree</a> *&nbsp;</td>
          <td class="paramname"> <em>trunk</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>trunk</em>&nbsp;</td><td>we add leaf node to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a033e3062739216099de76aeb0b09b89c"></a><!-- doxytag: member="ucommon::NamedTree::remove" ref="a033e3062739216099de76aeb0b09b89c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::remove </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a02d27764236bfa3de963df539d100134"></a><!-- doxytag: member="ucommon::NamedTree::setId" ref="a02d27764236bfa3de963df539d100134" args="(char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::NamedTree::setId </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</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="a00188_source.html">linked.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:47 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>