<!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.11"/> <title>ICU 58.2: icu::StringTrieBuilder::ListBranchNode 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 id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">ICU 58.2  <span id="projectnumber">58.2</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceicu.html">icu</a></li><li class="navelem"><a class="el" href="classicu_1_1StringTrieBuilder.html">StringTrieBuilder</a></li><li class="navelem"><a class="el" href="classicu_1_1StringTrieBuilder_1_1ListBranchNode.html">ListBranchNode</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <div class="title">icu::StringTrieBuilder::ListBranchNode Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="stringtriebuilder_8h_source.html">stringtriebuilder.h</a>></code></p> <div class="dynheader"> Inheritance diagram for icu::StringTrieBuilder::ListBranchNode:</div> <div class="dyncontent"> <div class="center"> <img src="classicu_1_1StringTrieBuilder_1_1ListBranchNode.png" usemap="#icu::StringTrieBuilder::ListBranchNode_map" alt=""/> <map id="icu::StringTrieBuilder::ListBranchNode_map" name="icu::StringTrieBuilder::ListBranchNode_map"> <area href="classicu_1_1StringTrieBuilder_1_1BranchNode.html" alt="icu::StringTrieBuilder::BranchNode" shape="rect" coords="0,168,226,192"/> <area href="classicu_1_1StringTrieBuilder_1_1Node.html" alt="icu::StringTrieBuilder::Node" shape="rect" coords="0,112,226,136"/> <area href="classicu_1_1UObject.html" title="UObject is the common ICU "boilerplate" class. " alt="icu::UObject" shape="rect" coords="0,56,226,80"/> <area href="classicu_1_1UMemory.html" title="UMemory is the common ICU base class. " alt="icu::UMemory" shape="rect" coords="0,0,226,24"/> </map> </div></div> <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:a990ef870c8632b224b38d20288dae2b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a990ef870c8632b224b38d20288dae2b8"></a> virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> &other) const </td></tr> <tr class="separator:a990ef870c8632b224b38d20288dae2b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a316f11c8b5ae1622120f532f6b1b6fbb"><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1StringTrieBuilder_1_1ListBranchNode.html#a316f11c8b5ae1622120f532f6b1b6fbb">markRightEdgesFirst</a> (int32_t edgeNumber)</td></tr> <tr class="memdesc:a316f11c8b5ae1622120f532f6b1b6fbb"><td class="mdescLeft"> </td><td class="mdescRight">Traverses the <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> graph and numbers branch edges, with rightmost edges first. <a href="#a316f11c8b5ae1622120f532f6b1b6fbb">More...</a><br /></td></tr> <tr class="separator:a316f11c8b5ae1622120f532f6b1b6fbb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2c9075368ba8e0ef9d072c1c561b1e0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c9075368ba8e0ef9d072c1c561b1e0a"></a> virtual void </td><td class="memItemRight" valign="bottom"><b>write</b> (<a class="el" href="classicu_1_1StringTrieBuilder.html">StringTrieBuilder</a> &builder)</td></tr> <tr class="separator:a2c9075368ba8e0ef9d072c1c561b1e0a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab69eb23535dc8d9c3b2a2c438080ae13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab69eb23535dc8d9c3b2a2c438080ae13"></a> void </td><td class="memItemRight" valign="bottom"><b>add</b> (int32_t c, int32_t value)</td></tr> <tr class="separator:ab69eb23535dc8d9c3b2a2c438080ae13"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4cc0c21b525013a2dfbf5d059b1bfc5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cc0c21b525013a2dfbf5d059b1bfc5e"></a> void </td><td class="memItemRight" valign="bottom"><b>add</b> (int32_t c, <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> *node)</td></tr> <tr class="separator:a4cc0c21b525013a2dfbf5d059b1bfc5e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classicu_1_1StringTrieBuilder_1_1BranchNode"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1StringTrieBuilder_1_1BranchNode')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classicu_1_1StringTrieBuilder_1_1BranchNode.html">icu::StringTrieBuilder::BranchNode</a></td></tr> <tr class="memitem:a50f5e308745d7faf8e0d754ca9665c10 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1BranchNode"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50f5e308745d7faf8e0d754ca9665c10"></a>  </td><td class="memItemRight" valign="bottom"><b>BranchNode</b> (int32_t initialHash)</td></tr> <tr class="separator:a50f5e308745d7faf8e0d754ca9665c10 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1BranchNode"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1StringTrieBuilder_1_1Node')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">icu::StringTrieBuilder::Node</a></td></tr> <tr class="memitem:ac8a1ea845159e315029930b3cbddb43f inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8a1ea845159e315029930b3cbddb43f"></a>  </td><td class="memItemRight" valign="bottom"><b>Node</b> (int32_t initialHash)</td></tr> <tr class="separator:ac8a1ea845159e315029930b3cbddb43f inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8a0202815bf6a8ea65a47331427e9c37 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a0202815bf6a8ea65a47331427e9c37"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>hashCode</b> () const </td></tr> <tr class="separator:a8a0202815bf6a8ea65a47331427e9c37 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a012d6bb1d794e72e6c14285f5c0cb876 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a012d6bb1d794e72e6c14285f5c0cb876"></a> <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> &other) const </td></tr> <tr class="separator:a012d6bb1d794e72e6c14285f5c0cb876 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adfd1484dd24f5bf5c468538a3583ed57 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adfd1484dd24f5bf5c468538a3583ed57"></a> void </td><td class="memItemRight" valign="bottom"><b>writeUnlessInsideRightEdge</b> (int32_t firstRight, int32_t lastRight, <a class="el" href="classicu_1_1StringTrieBuilder.html">StringTrieBuilder</a> &builder)</td></tr> <tr class="separator:adfd1484dd24f5bf5c468538a3583ed57 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0bf6ee63af089a3e116f970513d86f43 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bf6ee63af089a3e116f970513d86f43"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>getOffset</b> () const </td></tr> <tr class="separator:a0bf6ee63af089a3e116f970513d86f43 inherit pub_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classicu_1_1UObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1UObject')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classicu_1_1UObject.html">icu::UObject</a></td></tr> <tr class="memitem:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1UObject.html#af10026497704f510d3d1f2eff50acb18">~UObject</a> ()</td></tr> <tr class="memdesc:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#af10026497704f510d3d1f2eff50acb18">More...</a><br /></td></tr> <tr class="separator:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1aa93096e880907080b503ff1fb0f8bc inherit pub_methods_classicu_1_1UObject"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1UObject.html#a1aa93096e880907080b503ff1fb0f8bc">getDynamicClassID</a> () const </td></tr> <tr class="memdesc:a1aa93096e880907080b503ff1fb0f8bc inherit pub_methods_classicu_1_1UObject"><td class="mdescLeft"> </td><td class="mdescRight">ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. <a href="#a1aa93096e880907080b503ff1fb0f8bc">More...</a><br /></td></tr> <tr class="separator:a1aa93096e880907080b503ff1fb0f8bc inherit pub_methods_classicu_1_1UObject"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:ad8f38efd9e6b21de8ba877a6035dcfde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8f38efd9e6b21de8ba877a6035dcfde"></a> <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><b>equal</b> [<a class="el" href="classicu_1_1StringTrieBuilder.html#aea87f5e322ee2ed2814aae5a1309cb1f">kMaxBranchLinearSubNodeLength</a>]</td></tr> <tr class="separator:ad8f38efd9e6b21de8ba877a6035dcfde"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a245e7497a2d3952142bc2949594acdd1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a245e7497a2d3952142bc2949594acdd1"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>length</b></td></tr> <tr class="separator:a245e7497a2d3952142bc2949594acdd1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a17874a47e7f6078d4b6a4d1678d5df0e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17874a47e7f6078d4b6a4d1678d5df0e"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>values</b> [<a class="el" href="classicu_1_1StringTrieBuilder.html#aea87f5e322ee2ed2814aae5a1309cb1f">kMaxBranchLinearSubNodeLength</a>]</td></tr> <tr class="separator:a17874a47e7f6078d4b6a4d1678d5df0e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a749824ba001283e039f121d218a626df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a749824ba001283e039f121d218a626df"></a> <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><b>units</b> [<a class="el" href="classicu_1_1StringTrieBuilder.html#aea87f5e322ee2ed2814aae5a1309cb1f">kMaxBranchLinearSubNodeLength</a>]</td></tr> <tr class="separator:a749824ba001283e039f121d218a626df"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_attribs_classicu_1_1StringTrieBuilder_1_1BranchNode"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classicu_1_1StringTrieBuilder_1_1BranchNode')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classicu_1_1StringTrieBuilder_1_1BranchNode.html">icu::StringTrieBuilder::BranchNode</a></td></tr> <tr class="memitem:a19d0f250d20929c1e17a0ad9ae4f22fc inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1BranchNode"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19d0f250d20929c1e17a0ad9ae4f22fc"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>firstEdgeNumber</b></td></tr> <tr class="separator:a19d0f250d20929c1e17a0ad9ae4f22fc inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1BranchNode"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_attribs_classicu_1_1StringTrieBuilder_1_1Node"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classicu_1_1StringTrieBuilder_1_1Node')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">icu::StringTrieBuilder::Node</a></td></tr> <tr class="memitem:adb88ddfa6a185f926ab9cf2ed13630de inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb88ddfa6a185f926ab9cf2ed13630de"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>hash</b></td></tr> <tr class="separator:adb88ddfa6a185f926ab9cf2ed13630de inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adf5d3660b810e89bc1cd32e6863240bb inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf5d3660b810e89bc1cd32e6863240bb"></a> int32_t </td><td class="memItemRight" valign="bottom"><b>offset</b></td></tr> <tr class="separator:adf5d3660b810e89bc1cd32e6863240bb inherit pro_attribs_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pub_static_methods_classicu_1_1StringTrieBuilder_1_1Node"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classicu_1_1StringTrieBuilder_1_1Node')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">icu::StringTrieBuilder::Node</a></td></tr> <tr class="memitem:a38a75eb1bc77432a459640520da2a14a inherit pub_static_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38a75eb1bc77432a459640520da2a14a"></a> static int32_t </td><td class="memItemRight" valign="bottom"><b>hashCode</b> (const <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> *node)</td></tr> <tr class="separator:a38a75eb1bc77432a459640520da2a14a inherit pub_static_methods_classicu_1_1StringTrieBuilder_1_1Node"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><dl class="internal"><dt><b><a class="el" href="internal.html#_internal000149">Internal:</a></b></dt><dd>Do not use.</dd></dl> <p>This API is for internal use only. </p> <p>Definition at line <a class="el" href="stringtriebuilder_8h_source.html#l00333">333</a> of file <a class="el" href="stringtriebuilder_8h_source.html">stringtriebuilder.h</a>.</p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a316f11c8b5ae1622120f532f6b1b6fbb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int32_t icu::StringTrieBuilder::ListBranchNode::markRightEdgesFirst </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"><em>edgeNumber</em></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"> <p>Traverses the <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html">Node</a> graph and numbers branch edges, with rightmost edges first. </p> <p>This is to avoid writing a duplicate node twice.</p> <p>Branch nodes in this trie data structure are not symmetric. Most branch edges "jump" to other nodes but the rightmost branch edges just continue without a jump. Therefore, write() must write the rightmost branch edge last (trie units are written backwards), and must write it at that point even if it is a duplicate of a node previously written elsewhere.</p> <p>This function visits and marks right branch edges first. Edges are numbered with increasingly negative values because we share the offset field which gets positive values when nodes are written. A branch edge also remembers the first number for any of its edges.</p> <p>When a further-left branch edge has a number in the range of the rightmost edge's numbers, then it will be written as part of the required right edge and we can avoid writing it first.</p> <p>After root.markRightEdgesFirst(-1) the offsets of all nodes are negative edge numbers.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">edgeNumber</td><td>The first edge number for this node and its sub-nodes. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An edge number that is at least the maximum-negative of the input edge number and the numbers of this node and all of its sub-nodes. </dd></dl> <p>Reimplemented from <a class="el" href="classicu_1_1StringTrieBuilder_1_1Node.html#a6579bd649427882f665f0ca74e2d058e">icu::StringTrieBuilder::Node</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="stringtriebuilder_8h_source.html">stringtriebuilder.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>