Sophie

Sophie

distrib > Mandriva > 2007.1 > i586 > by-pkgid > a46e28cb764f635f7b2fec044015fb1f > files > 29

libdatrie0-devel-0.1.1-2mdv2007.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libdatrie: datrie/tail.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<h1>datrie/tail.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
trie tail for keeping suffixes 
<p>

<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#6c18411372028dc3dc6e74fc0e09db25">tail_is_walkable_char</a>(t, s, suffix_idx, c)&nbsp;&nbsp;&nbsp;(tail_get_suffix ((t), (s)) [suffix_idx] == (c))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test walkability in tail with a character.  <a href="#6c18411372028dc3dc6e74fc0e09db25"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="57310a081de76a2bf1be2cf3513afd93"></a><!-- doxytag: member="tail.h::Tail" ref="57310a081de76a2bf1be2cf3513afd93" args="" -->
typedef _Tail&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Double-array structure type. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#f450c48aefcfe921eccc89cca0a24c0b">tail_open</a> (const char *path, const char *name, <a class="el" href="triedefs_8h.html#4b93aa611f9dd3e908e8973520cca29e">TrieIOMode</a> mode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open tail data from file.  <a href="#f450c48aefcfe921eccc89cca0a24c0b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#eab3e6e147336a54f518c1ad10eccfe1">tail_close</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close tail data.  <a href="#eab3e6e147336a54f518c1ad10eccfe1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#fa3a26dc07040f117bb26408a905b1c6">tail_save</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save tail data.  <a href="#fa3a26dc07040f117bb26408a905b1c6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#b477450dd2939774336ac7905433bc40">tail_get_suffix</a> (const <a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get suffix.  <a href="#b477450dd2939774336ac7905433bc40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#99b0035b411e6913451dec06fd1f1b23">tail_set_suffix</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> index, const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *suffix)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set suffix of existing entry.  <a href="#99b0035b411e6913451dec06fd1f1b23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#fd08e82e06f71fff7eb5cf15f7dbc1dd">tail_add_suffix</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *suffix)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a new suffix.  <a href="#fd08e82e06f71fff7eb5cf15f7dbc1dd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="triedefs_8h.html#808716c3c0e2da1883d79243523e701b">TrieData</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#83ad25365e450a7be6917d0d0d998136">tail_get_data</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get data associated to suffix entry.  <a href="#83ad25365e450a7be6917d0d0d998136"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#6a952e452716e1f1898fd005d8652aea">tail_set_data</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> index, <a class="el" href="triedefs_8h.html#808716c3c0e2da1883d79243523e701b">TrieData</a> data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set data associated to suffix entry.  <a href="#6a952e452716e1f1898fd005d8652aea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#0fdd2d0f42491c977d494c98c5ecc732">tail_delete</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete suffix entry.  <a href="#0fdd2d0f42491c977d494c98c5ecc732"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#ee65cb612074824f65a37c1a1dba0bf5">tail_walk_str</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> s, short *suffix_idx, const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *str, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Walk in tail with a string.  <a href="#ee65cb612074824f65a37c1a1dba0bf5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#e5e3635cb9f8f53986e3a4ce9abbe8bd">tail_walk_char</a> (<a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> s, short *suffix_idx, <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Walk in tail with a character.  <a href="#e5e3635cb9f8f53986e3a4ce9abbe8bd"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="6c18411372028dc3dc6e74fc0e09db25"></a><!-- doxytag: member="tail.h::tail_is_walkable_char" ref="6c18411372028dc3dc6e74fc0e09db25" args="(t, s, suffix_idx, c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define tail_is_walkable_char          </td>
          <td>(</td>
          <td class="paramtype">t,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">s,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">suffix_idx,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;(tail_get_suffix ((t), (s)) [suffix_idx] == (c))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test walkability in tail with a character. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>: the tail data index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix_idx</em>&nbsp;</td><td>: current character index in suffix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the character to test walkability</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>boolean indicating walkability</dd></dl>
Test if the character <em>c</em> can be used to walk from given character position <em>suffix_idx</em> of entry <em>s</em> of the tail data <em>t</em>. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="fd08e82e06f71fff7eb5cf15f7dbc1dd"></a><!-- doxytag: member="tail.h::tail_add_suffix" ref="fd08e82e06f71fff7eb5cf15f7dbc1dd" args="(Tail *t, const TrieChar *suffix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a> tail_add_suffix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *&nbsp;</td>
          <td class="paramname"> <em>suffix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a new suffix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix</em>&nbsp;</td><td>: the new suffix</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the index of the newly added suffix.</dd></dl>
Add a new suffix entry to tail. 
</div>
</div><p>
<a class="anchor" name="eab3e6e147336a54f518c1ad10eccfe1"></a><!-- doxytag: member="tail.h::tail_close" ref="eab3e6e147336a54f518c1ad10eccfe1" args="(Tail *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tail_close           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close tail data. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, non-zero on failure</dd></dl>
Close the given tail data. If <em>d</em> was openned for writing, all pending changes will be saved to file. 
</div>
</div><p>
<a class="anchor" name="0fdd2d0f42491c977d494c98c5ecc732"></a><!-- doxytag: member="tail.h::tail_delete" ref="0fdd2d0f42491c977d494c98c5ecc732" args="(Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tail_delete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete suffix entry. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>: the index of the suffix to delete</td></tr>
  </table>
</dl>
Delete suffix entry from the tail data. 
</div>
</div><p>
<a class="anchor" name="83ad25365e450a7be6917d0d0d998136"></a><!-- doxytag: member="tail.h::tail_get_data" ref="83ad25365e450a7be6917d0d0d998136" args="(Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#808716c3c0e2da1883d79243523e701b">TrieData</a> tail_get_data           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get data associated to suffix entry. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>: the index of the suffix</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the data associated to the suffix entry</dd></dl>
Get data associated to suffix entry <em>index</em> in tail data. 
</div>
</div><p>
<a class="anchor" name="b477450dd2939774336ac7905433bc40"></a><!-- doxytag: member="tail.h::tail_get_suffix" ref="b477450dd2939774336ac7905433bc40" args="(const Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a>* tail_get_suffix           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get suffix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>: the index of the suffix</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an allocated string of the indexed suffix.</dd></dl>
Get suffix from tail with given <em>index</em>. The returned string is allocated. The caller should free it with free(). 
</div>
</div><p>
<a class="anchor" name="f450c48aefcfe921eccc89cca0a24c0b"></a><!-- doxytag: member="tail.h::tail_open" ref="f450c48aefcfe921eccc89cca0a24c0b" args="(const char *path, const char *name, TrieIOMode mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a>* tail_open           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#4b93aa611f9dd3e908e8973520cca29e">TrieIOMode</a>&nbsp;</td>
          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open tail data from file. 
<p>
<dl compact><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>: the path that stores the tail files </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>: the name of the tail data (not actual file name) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>: openning mode, read or write</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the openned tail data, NULL on failure</dd></dl>
Open a tail data of given name. Note that <em>name</em> here does not mean the actual file name. Rather, the file name will be inferred by the name. 
</div>
</div><p>
<a class="anchor" name="fa3a26dc07040f117bb26408a905b1c6"></a><!-- doxytag: member="tail.h::tail_save" ref="fa3a26dc07040f117bb26408a905b1c6" args="(Tail *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tail_save           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Save tail data. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, non-zero on failure</dd></dl>
If <em>t</em> data was openned for writing, save all pending changes to file. 
</div>
</div><p>
<a class="anchor" name="6a952e452716e1f1898fd005d8652aea"></a><!-- doxytag: member="tail.h::tail_set_data" ref="6a952e452716e1f1898fd005d8652aea" args="(Tail *t, TrieIndex index, TrieData data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_set_data           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#808716c3c0e2da1883d79243523e701b">TrieData</a>&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set data associated to suffix entry. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>: the index of the suffix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>: the data to set</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>boolean indicating success</dd></dl>
Set data associated to suffix entry <em>index</em> in tail data. 
</div>
</div><p>
<a class="anchor" name="99b0035b411e6913451dec06fd1f1b23"></a><!-- doxytag: member="tail.h::tail_set_suffix" ref="99b0035b411e6913451dec06fd1f1b23" args="(Tail *t, TrieIndex index, const TrieChar *suffix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_set_suffix           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *&nbsp;</td>
          <td class="paramname"> <em>suffix</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set suffix of existing entry. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>: the index of the suffix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix</em>&nbsp;</td><td>: the new suffix</td></tr>
  </table>
</dl>
Set suffix of existing entry of given <em>index</em> in tail. 
</div>
</div><p>
<a class="anchor" name="e5e3635cb9f8f53986e3a4ce9abbe8bd"></a><!-- doxytag: member="tail.h::tail_walk_char" ref="e5e3635cb9f8f53986e3a4ce9abbe8bd" args="(Tail *t, TrieIndex s, short *suffix_idx, TrieChar c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_walk_char           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short *&nbsp;</td>
          <td class="paramname"> <em>suffix_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a>&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Walk in tail with a character. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>: the tail data index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix_idx</em>&nbsp;</td><td>: pointer to current character index in suffix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the character to use in walking</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>boolean indicating success</dd></dl>
Walk in the tail data <em>t</em> at entry <em>s</em>, from given character position <em>*suffix_idx</em>, using given character <em>c</em>. If the walk is successful, it returns TRUE, and <em>*suffix_idx</em> is updated to the next character. Otherwise, it returns FALSE, and <em>*suffix_idx</em> is left unchanged. 
</div>
</div><p>
<a class="anchor" name="ee65cb612074824f65a37c1a1dba0bf5"></a><!-- doxytag: member="tail.h::tail_walk_str" ref="ee65cb612074824f65a37c1a1dba0bf5" args="(Tail *t, TrieIndex s, short *suffix_idx, const TrieChar *str, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tail_walk_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#57310a081de76a2bf1be2cf3513afd93">Tail</a> *&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#f69cea18ddede235f4f20121fc1de237">TrieIndex</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short *&nbsp;</td>
          <td class="paramname"> <em>suffix_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#0d28476db8e582153531f3e098e1f708">TrieChar</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Walk in tail with a string. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: the tail data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>: the tail data index </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix_idx</em>&nbsp;</td><td>: pointer to current character index in suffix </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>: the string to use in walking </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>: total characters in <em>str</em> to walk</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>total number of characters successfully walked</dd></dl>
Walk in the tail data <em>t</em> at entry <em>s</em>, from given character position <em>*suffix_idx</em>, using <em>len</em> characters of given string <em>str</em>. On return, <em>*suffix_idx</em> is updated to the position after the last successful walk, and the function returns the total number of character succesfully walked. 
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jan 22 12:43:28 2007 for libdatrie by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>