Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 617e1fa4cf3082c847b6d9da3fd1dfa1 > files > 60

lib64datrie-devel-0.2.6-2.mga4.x86_64.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>libdatrie: datrie/trie.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libdatrie
   &#160;<span id="projectnumber">0.2.6</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_23cbef3b1b2df757deb7708cc4a2d793.html">datrie</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">trie.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Trie data type and functions.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:adfbfb4a5252ad25e5e24e59a125b12de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#adfbfb4a5252ad25e5e24e59a125b12de">trie_state_is_terminal</a>(s)&#160;&#160;&#160;<a class="el" href="trie_8h.html#aa55cd635e4a6d84c2b9f1bfd2a10e9b5">trie_state_is_walkable</a>((s),<a class="el" href="triedefs_8h.html#a2a09471ba71586fdac772f81e075f552">TRIE_CHAR_TERM</a>)</td></tr>
<tr class="memdesc:adfbfb4a5252ad25e5e24e59a125b12de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for terminal state.  <a href="#adfbfb4a5252ad25e5e24e59a125b12de">More...</a><br/></td></tr>
<tr class="separator:adfbfb4a5252ad25e5e24e59a125b12de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94151b9c8f39285d21dd141bbf54a388"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a94151b9c8f39285d21dd141bbf54a388">trie_state_is_leaf</a>(s)&#160;&#160;&#160;(<a class="el" href="trie_8h.html#ae0376122b287b023478efdc3d4754f9c">trie_state_is_single</a>(s) &amp;&amp; <a class="el" href="trie_8h.html#adfbfb4a5252ad25e5e24e59a125b12de">trie_state_is_terminal</a>(s))</td></tr>
<tr class="memdesc:a94151b9c8f39285d21dd141bbf54a388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for leaf state.  <a href="#a94151b9c8f39285d21dd141bbf54a388">More...</a><br/></td></tr>
<tr class="separator:a94151b9c8f39285d21dd141bbf54a388"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af5808be7fb71b1ef0b1dcbe55da603ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5808be7fb71b1ef0b1dcbe55da603ce"></a>
typedef struct <a class="el" href="struct__Trie.html">_Trie</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a></td></tr>
<tr class="memdesc:af5808be7fb71b1ef0b1dcbe55da603ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trie data type. <br/></td></tr>
<tr class="separator:af5808be7fb71b1ef0b1dcbe55da603ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce3d0413daa244406bb37bd6db74e5c"><td class="memItemLeft" align="right" valign="top">typedef Bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#adce3d0413daa244406bb37bd6db74e5c">TrieEnumFunc</a> )(const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> key_data, void *user_data)</td></tr>
<tr class="memdesc:adce3d0413daa244406bb37bd6db74e5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trie enumeration function.  <a href="#adce3d0413daa244406bb37bd6db74e5c">More...</a><br/></td></tr>
<tr class="separator:adce3d0413daa244406bb37bd6db74e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b6aa870c546b566c3f3a4d13f74d066"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b6aa870c546b566c3f3a4d13f74d066"></a>
typedef struct <a class="el" href="struct__TrieState.html">_TrieState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a></td></tr>
<tr class="memdesc:a2b6aa870c546b566c3f3a4d13f74d066"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trie walking state. <br/></td></tr>
<tr class="separator:a2b6aa870c546b566c3f3a4d13f74d066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3700d259062e7755f16f7112378f825"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3700d259062e7755f16f7112378f825"></a>
typedef struct <a class="el" href="struct__TrieIterator.html">_TrieIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a></td></tr>
<tr class="memdesc:af3700d259062e7755f16f7112378f825"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trie iteration state. <br/></td></tr>
<tr class="separator:af3700d259062e7755f16f7112378f825"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a33fad5408b54070b8c1ee27ee1d1e5c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a33fad5408b54070b8c1ee27ee1d1e5c3">trie_new</a> (const <a class="el" href="alpha-map_8h.html#ab369cb9c893b9f233b97173e0c63d25e">AlphaMap</a> *alpha_map)</td></tr>
<tr class="memdesc:a33fad5408b54070b8c1ee27ee1d1e5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new trie.  <a href="#a33fad5408b54070b8c1ee27ee1d1e5c3">More...</a><br/></td></tr>
<tr class="separator:a33fad5408b54070b8c1ee27ee1d1e5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a035aebcfa3b8f61404a1735bc62b8ca6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a035aebcfa3b8f61404a1735bc62b8ca6">trie_new_from_file</a> (const char *path)</td></tr>
<tr class="memdesc:a035aebcfa3b8f61404a1735bc62b8ca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new trie by loading from a file.  <a href="#a035aebcfa3b8f61404a1735bc62b8ca6">More...</a><br/></td></tr>
<tr class="separator:a035aebcfa3b8f61404a1735bc62b8ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5778e920582cc17d770bfffc91c5fbda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a5778e920582cc17d770bfffc91c5fbda">trie_fread</a> (FILE *file)</td></tr>
<tr class="memdesc:a5778e920582cc17d770bfffc91c5fbda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new trie by reading from an open file.  <a href="#a5778e920582cc17d770bfffc91c5fbda">More...</a><br/></td></tr>
<tr class="separator:a5778e920582cc17d770bfffc91c5fbda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fe9ae638ae3f97e27e089bff41ab27a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a7fe9ae638ae3f97e27e089bff41ab27a">trie_free</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie)</td></tr>
<tr class="memdesc:a7fe9ae638ae3f97e27e089bff41ab27a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a trie object.  <a href="#a7fe9ae638ae3f97e27e089bff41ab27a">More...</a><br/></td></tr>
<tr class="separator:a7fe9ae638ae3f97e27e089bff41ab27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e3ad1b0542305e5047d3f29bd309581"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a5e3ad1b0542305e5047d3f29bd309581">trie_save</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, const char *path)</td></tr>
<tr class="memdesc:a5e3ad1b0542305e5047d3f29bd309581"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a trie to file.  <a href="#a5e3ad1b0542305e5047d3f29bd309581">More...</a><br/></td></tr>
<tr class="separator:a5e3ad1b0542305e5047d3f29bd309581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eb06267315d158463f2e856a617cdf4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a7eb06267315d158463f2e856a617cdf4">trie_fwrite</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, FILE *file)</td></tr>
<tr class="memdesc:a7eb06267315d158463f2e856a617cdf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write trie data to an open file.  <a href="#a7eb06267315d158463f2e856a617cdf4">More...</a><br/></td></tr>
<tr class="separator:a7eb06267315d158463f2e856a617cdf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a320eb50f7393401f8a5159a1c858c0ba"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a320eb50f7393401f8a5159a1c858c0ba">trie_is_dirty</a> (const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie)</td></tr>
<tr class="memdesc:a320eb50f7393401f8a5159a1c858c0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check pending changes.  <a href="#a320eb50f7393401f8a5159a1c858c0ba">More...</a><br/></td></tr>
<tr class="separator:a320eb50f7393401f8a5159a1c858c0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38ad6c891f2825d525db8c33c61329f4"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a38ad6c891f2825d525db8c33c61329f4">trie_retrieve</a> (const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> *o_data)</td></tr>
<tr class="memdesc:a38ad6c891f2825d525db8c33c61329f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve an entry from trie.  <a href="#a38ad6c891f2825d525db8c33c61329f4">More...</a><br/></td></tr>
<tr class="separator:a38ad6c891f2825d525db8c33c61329f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15c00ee43980d7cbd15614c068b0061"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#af15c00ee43980d7cbd15614c068b0061">trie_store</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> data)</td></tr>
<tr class="memdesc:af15c00ee43980d7cbd15614c068b0061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a value for an entry to trie.  <a href="#af15c00ee43980d7cbd15614c068b0061">More...</a><br/></td></tr>
<tr class="separator:af15c00ee43980d7cbd15614c068b0061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246e0db0f4f409bae437b93bc141474d"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a246e0db0f4f409bae437b93bc141474d">trie_store_if_absent</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> data)</td></tr>
<tr class="memdesc:a246e0db0f4f409bae437b93bc141474d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a value for an entry to trie only if the key is not present.  <a href="#a246e0db0f4f409bae437b93bc141474d">More...</a><br/></td></tr>
<tr class="separator:a246e0db0f4f409bae437b93bc141474d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83f43538cea08a52baa7aed728332923"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a83f43538cea08a52baa7aed728332923">trie_delete</a> (<a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key)</td></tr>
<tr class="memdesc:a83f43538cea08a52baa7aed728332923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an entry from trie.  <a href="#a83f43538cea08a52baa7aed728332923">More...</a><br/></td></tr>
<tr class="separator:a83f43538cea08a52baa7aed728332923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b199a9fdcbbba88dd5009fde6b25bca"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a0b199a9fdcbbba88dd5009fde6b25bca">trie_enumerate</a> (const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie, <a class="el" href="trie_8h.html#adce3d0413daa244406bb37bd6db74e5c">TrieEnumFunc</a> enum_func, void *user_data)</td></tr>
<tr class="memdesc:a0b199a9fdcbbba88dd5009fde6b25bca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerate entries in trie.  <a href="#a0b199a9fdcbbba88dd5009fde6b25bca">More...</a><br/></td></tr>
<tr class="separator:a0b199a9fdcbbba88dd5009fde6b25bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77ab422ee6a301e8569a9cbb3befcde3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a77ab422ee6a301e8569a9cbb3befcde3">trie_root</a> (const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *trie)</td></tr>
<tr class="memdesc:a77ab422ee6a301e8569a9cbb3befcde3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get root state of a trie.  <a href="#a77ab422ee6a301e8569a9cbb3befcde3">More...</a><br/></td></tr>
<tr class="separator:a77ab422ee6a301e8569a9cbb3befcde3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59c254bb5e1d69031f2fa6203418b576"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a59c254bb5e1d69031f2fa6203418b576">trie_state_clone</a> (const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:a59c254bb5e1d69031f2fa6203418b576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone a trie state.  <a href="#a59c254bb5e1d69031f2fa6203418b576">More...</a><br/></td></tr>
<tr class="separator:a59c254bb5e1d69031f2fa6203418b576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b5a16f4c3f2b4dbd2062002c94008b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a2b5a16f4c3f2b4dbd2062002c94008b0">trie_state_copy</a> (<a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *dst, const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *src)</td></tr>
<tr class="memdesc:a2b5a16f4c3f2b4dbd2062002c94008b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy trie state to another.  <a href="#a2b5a16f4c3f2b4dbd2062002c94008b0">More...</a><br/></td></tr>
<tr class="separator:a2b5a16f4c3f2b4dbd2062002c94008b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0cebb9a610314c2bb8348c73c4303ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#ac0cebb9a610314c2bb8348c73c4303ce">trie_state_free</a> (<a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:ac0cebb9a610314c2bb8348c73c4303ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a trie state.  <a href="#ac0cebb9a610314c2bb8348c73c4303ce">More...</a><br/></td></tr>
<tr class="separator:ac0cebb9a610314c2bb8348c73c4303ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e7cb79d0bf4d078a762cdec6be9419"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a84e7cb79d0bf4d078a762cdec6be9419">trie_state_rewind</a> (<a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:a84e7cb79d0bf4d078a762cdec6be9419"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewind a trie state.  <a href="#a84e7cb79d0bf4d078a762cdec6be9419">More...</a><br/></td></tr>
<tr class="separator:a84e7cb79d0bf4d078a762cdec6be9419"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c8768dc722b3a4ed526b1ccc5280fbb"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a1c8768dc722b3a4ed526b1ccc5280fbb">trie_state_walk</a> (<a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s, <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> c)</td></tr>
<tr class="memdesc:a1c8768dc722b3a4ed526b1ccc5280fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Walk the trie from the state.  <a href="#a1c8768dc722b3a4ed526b1ccc5280fbb">More...</a><br/></td></tr>
<tr class="separator:a1c8768dc722b3a4ed526b1ccc5280fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa55cd635e4a6d84c2b9f1bfd2a10e9b5"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#aa55cd635e4a6d84c2b9f1bfd2a10e9b5">trie_state_is_walkable</a> (const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s, <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> c)</td></tr>
<tr class="memdesc:aa55cd635e4a6d84c2b9f1bfd2a10e9b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test walkability of character from state.  <a href="#aa55cd635e4a6d84c2b9f1bfd2a10e9b5">More...</a><br/></td></tr>
<tr class="separator:aa55cd635e4a6d84c2b9f1bfd2a10e9b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0964c5f5a71708c5262e1599930604a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a0964c5f5a71708c5262e1599930604a9">trie_state_walkable_chars</a> (const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s, <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> chars[], int chars_nelm)</td></tr>
<tr class="memdesc:a0964c5f5a71708c5262e1599930604a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all walkable characters from state.  <a href="#a0964c5f5a71708c5262e1599930604a9">More...</a><br/></td></tr>
<tr class="separator:a0964c5f5a71708c5262e1599930604a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0376122b287b023478efdc3d4754f9c"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#ae0376122b287b023478efdc3d4754f9c">trie_state_is_single</a> (const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:ae0376122b287b023478efdc3d4754f9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for single path.  <a href="#ae0376122b287b023478efdc3d4754f9c">More...</a><br/></td></tr>
<tr class="separator:ae0376122b287b023478efdc3d4754f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4716911c7afa919b0e20132e19b7baf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#ad4716911c7afa919b0e20132e19b7baf">trie_state_get_data</a> (const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:ad4716911c7afa919b0e20132e19b7baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data from leaf state.  <a href="#ad4716911c7afa919b0e20132e19b7baf">More...</a><br/></td></tr>
<tr class="separator:ad4716911c7afa919b0e20132e19b7baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84bdf48a371decf45d4735a2b343a670"><td class="memItemLeft" align="right" valign="top"><a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a84bdf48a371decf45d4735a2b343a670">trie_iterator_new</a> (<a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *s)</td></tr>
<tr class="memdesc:a84bdf48a371decf45d4735a2b343a670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new trie iterator.  <a href="#a84bdf48a371decf45d4735a2b343a670">More...</a><br/></td></tr>
<tr class="separator:a84bdf48a371decf45d4735a2b343a670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af00b91999fc7f358092f578c21ea95b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#af00b91999fc7f358092f578c21ea95b5">trie_iterator_free</a> (<a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *iter)</td></tr>
<tr class="memdesc:af00b91999fc7f358092f578c21ea95b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a trie iterator.  <a href="#af00b91999fc7f358092f578c21ea95b5">More...</a><br/></td></tr>
<tr class="separator:af00b91999fc7f358092f578c21ea95b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc25cec01c2656d1f8b497889ccb92bd"><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#afc25cec01c2656d1f8b497889ccb92bd">trie_iterator_next</a> (<a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *iter)</td></tr>
<tr class="memdesc:afc25cec01c2656d1f8b497889ccb92bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move trie iterator to the next entry.  <a href="#afc25cec01c2656d1f8b497889ccb92bd">More...</a><br/></td></tr>
<tr class="separator:afc25cec01c2656d1f8b497889ccb92bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fac752866cc6a65411d6f98128bd106"><td class="memItemLeft" align="right" valign="top"><a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a2fac752866cc6a65411d6f98128bd106">trie_iterator_get_key</a> (const <a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *iter)</td></tr>
<tr class="memdesc:a2fac752866cc6a65411d6f98128bd106"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get key for a trie iterator.  <a href="#a2fac752866cc6a65411d6f98128bd106">More...</a><br/></td></tr>
<tr class="separator:a2fac752866cc6a65411d6f98128bd106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50fa579c2e5e86cbeebebc717b4833be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="trie_8h.html#a50fa579c2e5e86cbeebebc717b4833be">trie_iterator_get_data</a> (const <a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *iter)</td></tr>
<tr class="memdesc:a50fa579c2e5e86cbeebebc717b4833be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data for the entry referenced by an iterator.  <a href="#a50fa579c2e5e86cbeebebc717b4833be">More...</a><br/></td></tr>
<tr class="separator:a50fa579c2e5e86cbeebebc717b4833be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Trie data type and functions. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a94151b9c8f39285d21dd141bbf54a388"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define trie_state_is_leaf</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="trie_8h.html#ae0376122b287b023478efdc3d4754f9c">trie_state_is_single</a>(s) &amp;&amp; <a class="el" href="trie_8h.html#adfbfb4a5252ad25e5e24e59a125b12de">trie_state_is_terminal</a>(s))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for leaf state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating whether it is a leaf state</dd></dl>
<p>Check if the given state is a leaf state. A leaf state is a terminal state that has no other branch. </p>

</div>
</div>
<a class="anchor" id="adfbfb4a5252ad25e5e24e59a125b12de"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define trie_state_is_terminal</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="trie_8h.html#aa55cd635e4a6d84c2b9f1bfd2a10e9b5">trie_state_is_walkable</a>((s),<a class="el" href="triedefs_8h.html#a2a09471ba71586fdac772f81e075f552">TRIE_CHAR_TERM</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for terminal state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating whether it is a terminal state</dd></dl>
<p>Check if the given state is a terminal state. A terminal state is a trie state that terminates a key, and stores a value associated with it. </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="adce3d0413daa244406bb37bd6db74e5c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Bool(* TrieEnumFunc)(const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *key, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> key_data, void *user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Trie enumeration function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>: the key of the entry </td></tr>
    <tr><td class="paramname">data</td><td>: the data of the entry </td></tr>
    <tr><td class="paramname">user_data</td><td>: the user-supplied data on enumerate call</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE to continue enumeration, FALSE to stop </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a83f43538cea08a52baa7aed728332923"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_delete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete an entry from trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie </td></tr>
    <tr><td class="paramname">key</td><td>: the key for the entry to delete</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating whether the key exists and is removed</dd></dl>
<p>Delete an entry for the given <em>key</em> from <em>trie</em>. </p>

</div>
</div>
<a class="anchor" id="a0b199a9fdcbbba88dd5009fde6b25bca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_enumerate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="trie_8h.html#adce3d0413daa244406bb37bd6db74e5c">TrieEnumFunc</a>&#160;</td>
          <td class="paramname"><em>enum_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enumerate entries in trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie </td></tr>
    <tr><td class="paramname">enum_func</td><td>: the callback function to be called on each key </td></tr>
    <tr><td class="paramname">user_data</td><td>: user-supplied data to send as an argument to <em>enum_func</em> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating whether all the keys are visited</dd></dl>
<p>Enumerate all entries in trie. For each entry, the user-supplied <em>enum_func</em> callback function is called, with the entry key and data. Returning FALSE from such callback will stop enumeration and return FALSE. </p>

</div>
</div>
<a class="anchor" id="a5778e920582cc17d770bfffc91c5fbda"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a>* trie_fread </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new trie by reading from an open file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>: the handle of the open file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the created trie, NULL on failure</dd></dl>
<p>Create a new trie and initialize its contents by reading from the open <em>file</em>. After reading, the file pointer is left at the end of the trie data. This can be useful for reading embedded trie index as part of a file data.</p>
<p>The created object must be freed with <a class="el" href="trie_8h.html#a7fe9ae638ae3f97e27e089bff41ab27a" title="Free a trie object. ">trie_free()</a>.</p>
<p>Available since: 0.2.4 </p>

</div>
</div>
<a class="anchor" id="a7fe9ae638ae3f97e27e089bff41ab27a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void trie_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a trie object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie object to free</td></tr>
  </table>
  </dd>
</dl>
<p>Destruct the <em>trie</em> and free its allocated memory. </p>

</div>
</div>
<a class="anchor" id="a7eb06267315d158463f2e856a617cdf4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int trie_fwrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write trie data to an open file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie</td></tr>
    <tr><td class="paramname">file</td><td>: the open file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on failure</dd></dl>
<p>Write <em>trie</em> data to <em>file</em> which is opened for writing. After writing, the file pointer is left at the end of the trie data. This can be useful for embedding trie index as part of a file data.</p>
<p>Available since: 0.2.4 </p>

</div>
</div>
<a class="anchor" id="a320eb50f7393401f8a5159a1c858c0ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_is_dirty </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check pending changes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if there are pending changes, FALSE otherwise</dd></dl>
<p>Check if the <em>trie</em> is dirty with some pending changes and needs saving to synchronize with the file. </p>

</div>
</div>
<a class="anchor" id="af00b91999fc7f358092f578c21ea95b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void trie_iterator_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a trie iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>: the trie iterator to free</td></tr>
  </table>
  </dd>
</dl>
<p>Destruct the iterator <em>iter</em> and free its allocated memory.</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="a50fa579c2e5e86cbeebebc717b4833be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> trie_iterator_get_data </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get data for the entry referenced by an iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>: an iterator</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the data associated with the entry referenced by iterator <em>iter</em>, or TRIE_DATA_ERROR if <em>iter</em> does not reference to a unique entry</dd></dl>
<p>Get value for the entry referenced by an iterator. Getting value from an un-iterated (or broken for any reason) iterator will result in TRIE_DATA_ERROR.</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="a2fac752866cc6a65411d6f98128bd106"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a>* trie_iterator_get_key </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get key for a trie iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>: an iterator</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the allocated key string; NULL on failure</dd></dl>
<p>Get key for the current entry referenced by the trie iterator <em>iter</em>.</p>
<p>The return string must be freed with free().</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="a84bdf48a371decf45d4735a2b343a670"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a>* trie_iterator_new </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new trie iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the TrieState to start iteration from</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the newly created TrieIterator, or NULL on failure</dd></dl>
<p>Create a new trie iterator for iterating entries of a sub-trie rooted at state <em>s</em>.</p>
<p>Use it with the result of trie_get_root() to iterate the whole trie.</p>
<p>The created object must be freed with <a class="el" href="trie_8h.html#af00b91999fc7f358092f578c21ea95b5" title="Free a trie iterator. ">trie_iterator_free()</a>.</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="afc25cec01c2656d1f8b497889ccb92bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_iterator_next </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af3700d259062e7755f16f7112378f825">TrieIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move trie iterator to the next entry. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>: an iterator</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating the availability of the entry</dd></dl>
<p>Move trie iterator to the next entry. On return, the iterator <em>iter</em> is updated to reference to the new entry if successfully moved.</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="a33fad5408b54070b8c1ee27ee1d1e5c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a>* trie_new </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="alpha-map_8h.html#ab369cb9c893b9f233b97173e0c63d25e">AlphaMap</a> *&#160;</td>
          <td class="paramname"><em>alpha_map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">alpha_map</td><td>: the alphabet set for the trie</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the newly created trie, NULL on failure</dd></dl>
<p>Create a new empty trie object based on the given <em>alpha_map</em> alphabet set. The trie contents can then be added and deleted with <a class="el" href="trie_8h.html#af15c00ee43980d7cbd15614c068b0061" title="Store a value for an entry to trie. ">trie_store()</a> and <a class="el" href="trie_8h.html#a83f43538cea08a52baa7aed728332923" title="Delete an entry from trie. ">trie_delete()</a> respectively.</p>
<p>The created object must be freed with <a class="el" href="trie_8h.html#a7fe9ae638ae3f97e27e089bff41ab27a" title="Free a trie object. ">trie_free()</a>. </p>

</div>
</div>
<a class="anchor" id="a035aebcfa3b8f61404a1735bc62b8ca6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a>* trie_new_from_file </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new trie by loading from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>: the path to the file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the created trie, NULL on failure</dd></dl>
<p>Create a new trie and initialize its contents by loading from the file at given <em>path</em>.</p>
<p>The created object must be freed with <a class="el" href="trie_8h.html#a7fe9ae638ae3f97e27e089bff41ab27a" title="Free a trie object. ">trie_free()</a>. </p>

</div>
</div>
<a class="anchor" id="a38ad6c891f2825d525db8c33c61329f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_retrieve </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> *&#160;</td>
          <td class="paramname"><em>o_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve an entry from trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie </td></tr>
    <tr><td class="paramname">key</td><td>: the key for the entry to retrieve </td></tr>
    <tr><td class="paramname">o_data</td><td>: the storage for storing the entry data on return</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating the existence of the entry.</dd></dl>
<p>Retrieve an entry for the given <em>key</em> from <em>trie</em>. On return, if <em>key</em> is found and <em>o_data</em> is not NULL, <em>*o_data</em> is set to the data associated to <em>key</em>. </p>

</div>
</div>
<a class="anchor" id="a77ab422ee6a301e8569a9cbb3befcde3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a>* trie_root </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get root state of a trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the root state of the trie</dd></dl>
<p>Get root state of <em>trie</em>, for stepwise walking.</p>
<p>The returned state is allocated and must be freed with <a class="el" href="trie_8h.html#ac0cebb9a610314c2bb8348c73c4303ce" title="Free a trie state. ">trie_state_free()</a> </p>

</div>
</div>
<a class="anchor" id="a5e3ad1b0542305e5047d3f29bd309581"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int trie_save </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save a trie to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie</td></tr>
    <tr><td class="paramname">path</td><td>: the path to the file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on failure</dd></dl>
<p>Create a new file at the given <em>path</em> and write <em>trie</em> data to it. If <em>path</em> already exists, its contents will be replaced. </p>

</div>
</div>
<a class="anchor" id="a59c254bb5e1d69031f2fa6203418b576"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a>* trie_state_clone </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clone a trie state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to clone</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an duplicated instance of <em>s</em> </dd></dl>
<p>Make a copy of trie state.</p>
<p>The returned state is allocated and must be freed with <a class="el" href="trie_8h.html#ac0cebb9a610314c2bb8348c73c4303ce" title="Free a trie state. ">trie_state_free()</a> </p>

</div>
</div>
<a class="anchor" id="a2b5a16f4c3f2b4dbd2062002c94008b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void trie_state_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy trie state to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>: the destination state </td></tr>
    <tr><td class="paramname">src</td><td>: the source state</td></tr>
  </table>
  </dd>
</dl>
<p>Copy trie state data from <em>src</em> to <em>dst</em>. All existing data in <em>dst</em> is overwritten. </p>

</div>
</div>
<a class="anchor" id="ac0cebb9a610314c2bb8348c73c4303ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void trie_state_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a trie state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to free</td></tr>
  </table>
  </dd>
</dl>
<p>Free the trie state. </p>

</div>
</div>
<a class="anchor" id="ad4716911c7afa919b0e20132e19b7baf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> trie_state_get_data </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get data from leaf state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: a leaf state</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the data associated with the leaf state <em>s</em>, or TRIE_DATA_ERROR if <em>s</em> is not a leaf state</dd></dl>
<p>Get value from a leaf state of trie. Getting value from a non-leaf state will result in TRIE_DATA_ERROR. </p>

</div>
</div>
<a class="anchor" id="ae0376122b287b023478efdc3d4754f9c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_state_is_single </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for single path. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to check</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating whether it is in a single path</dd></dl>
<p>Check if the given state is in a single path, that is, there is no other branch from it to leaf. </p>

</div>
</div>
<a class="anchor" id="aa55cd635e4a6d84c2b9f1bfd2a10e9b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_state_is_walkable </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test walkability of character from state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to check </td></tr>
    <tr><td class="paramname">c</td><td>: the input character</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean indicating walkability</dd></dl>
<p>Test if there is a transition from state <em>s</em> with input character <em>c</em>. </p>

</div>
</div>
<a class="anchor" id="a84e7cb79d0bf4d078a762cdec6be9419"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void trie_state_rewind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rewind a trie state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to rewind</td></tr>
  </table>
  </dd>
</dl>
<p>Put the state at root. </p>

</div>
</div>
<a class="anchor" id="a1c8768dc722b3a4ed526b1ccc5280fbb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_state_walk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Walk the trie from the state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: current state </td></tr>
    <tr><td class="paramname">c</td><td>: key character for walking</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating the success of the walk</dd></dl>
<p>Walk the trie stepwise, using a given character <em>c</em>. On return, the state <em>s</em> is updated to the new state if successfully walked. </p>

</div>
</div>
<a class="anchor" id="a0964c5f5a71708c5262e1599930604a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int trie_state_walkable_chars </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="trie_8h.html#a2b6aa870c546b566c3f3a4d13f74d066">TrieState</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a>&#160;</td>
          <td class="paramname"><em>chars</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chars_nelm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get all walkable characters from state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s</td><td>: the state to get </td></tr>
    <tr><td class="paramname">chars</td><td>: the storage for the result </td></tr>
    <tr><td class="paramname">chars_nelm</td><td>: the size of <em>chars</em>[] in number of elements</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>total walkable characters</dd></dl>
<p>Get the list of all walkable characters from state <em>s</em>. At most <em>chars_nelm</em> walkable characters are stored in <em>chars</em>[] on return.</p>
<p>The function returns the actual number of walkable characters from <em>s</em>. Note that this may not equal the number of characters stored in <em>chars</em>[] if <em>chars_nelm</em> is less than the actual number.</p>
<p>Available since: 0.2.6 </p>

</div>
</div>
<a class="anchor" id="af15c00ee43980d7cbd15614c068b0061"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_store </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Store a value for an entry to trie. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie </td></tr>
    <tr><td class="paramname">key</td><td>: the key for the entry to retrieve </td></tr>
    <tr><td class="paramname">data</td><td>: the data associated to the entry</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating the success of the process</dd></dl>
<p>Store a <em>data</em> for the given <em>key</em> in <em>trie</em>. If <em>key</em> does not exist in <em>trie</em>, it will be appended. If it does, its current data will be overwritten. </p>

</div>
</div>
<a class="anchor" id="a246e0db0f4f409bae437b93bc141474d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool trie_store_if_absent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="trie_8h.html#af5808be7fb71b1ef0b1dcbe55da603ce">Trie</a> *&#160;</td>
          <td class="paramname"><em>trie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#acae969caa2057c6accde0e977546a5be">AlphaChar</a> *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Store a value for an entry to trie only if the key is not present. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">trie</td><td>: the trie </td></tr>
    <tr><td class="paramname">key</td><td>: the key for the entry to retrieve </td></tr>
    <tr><td class="paramname">data</td><td>: the data associated to the entry</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value indicating the success of the process</dd></dl>
<p>Store a <em>data</em> for the given <em>key</em> in <em>trie</em>. If <em>key</em> does not exist in <em>trie</em>, it will be appended. If it does, the function will return failure and the existing value will not be touched.</p>
<p>This can be useful for multi-thread applications, as race condition can be avoided.</p>
<p>Available since: 0.2.4 </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Oct 19 2013 07:23:05 for libdatrie by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>