Sophie

Sophie

distrib > Mandriva > 10.2 > i586 > by-pkgid > 4f37b923758ceff94a2c0ccca62b4b43 > files > 197

libapr1-devel-1.1.1-1mdk.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>Apache Portable Runtime: Table and Array Functions</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>Table and Array Functions<br>
<small>
[<a class="el" href="group__APR.html">Apache Portability Runtime library</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a></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="group__apr__tables.html#ga31">APR_OVERLAP_TABLES_SET</a>&nbsp;&nbsp;&nbsp;(0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga32">APR_OVERLAP_TABLES_MERGE</a>&nbsp;&nbsp;&nbsp;(1)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga1">apr_array_header_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga2">apr_table_entry_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> )(void *rec, const char *key, const char *value)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga4">apr_table_elts</a> (const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga5">apr_is_empty_table</a> (const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga6">apr_is_empty_array</a> (const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *a)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga7">apr_array_make</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, int nelts, int elt_size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga8">apr_array_push</a> (<a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *arr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga9">apr_array_pop</a> (<a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *arr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga10">apr_array_cat</a> (<a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *dst, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *src)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga11">apr_array_copy</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *arr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga12">apr_array_copy_hdr</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *arr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga13">apr_array_append</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *first, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *second)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga14">apr_array_pstrcat</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *arr, const char sep)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga15">apr_table_make</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, int nelts)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga16">apr_table_copy</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga17">apr_table_clear</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga18">apr_table_get</a> (const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga19">apr_table_set</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga20">apr_table_setn</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga21">apr_table_unset</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga22">apr_table_merge</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga23">apr_table_mergen</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga24">apr_table_add</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga25">apr_table_addn</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, const char *key, const char *val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga26">apr_table_overlay</a> (<a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *overlay, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *base)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga27">apr_table_do</a> (<a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> *comp, void *rec, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga28">apr_table_vdo</a> (<a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> *comp, void *rec, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, va_list vp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga29">apr_table_overlap</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *a, const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *b, unsigned flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__tables.html#ga30">apr_table_compress</a> (<a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *t, unsigned flags)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Tables are used to store entirely opaque structures for applications, while Arrays are usually used to deal with string lists. <hr><h2>Define Documentation</h2>
<a class="anchor" name="ga32" doxytag="apr_tables.h::APR_OVERLAP_TABLES_MERGE"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">#define APR_OVERLAP_TABLES_MERGE&nbsp;&nbsp;&nbsp;(1)          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
flag for overlap to use apr_table_mergen     </td>
  </tr>
</table>
<a class="anchor" name="ga31" doxytag="apr_tables.h::APR_OVERLAP_TABLES_SET"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">#define APR_OVERLAP_TABLES_SET&nbsp;&nbsp;&nbsp;(0)          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
flag for overlap to use apr_table_setn     </td>
  </tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ga1" doxytag="apr_tables.h::apr_array_header_t"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef struct <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga3" doxytag="apr_tables.h::apr_table_do_callback_fn_t"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef int( <a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a>)(void *rec, const char *key, const char *value)          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Declaration prototype for the iterator callback function of <a class="el" href="group__apr__tables.html#ga27">apr_table_do()</a> and <a class="el" href="group__apr__tables.html#ga28">apr_table_vdo()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rec</em>&nbsp;</td><td>The data passed as the first argument to apr_table_[v]do() </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key from this iteration of the table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value from this iteration of the table </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Iteration continues while this callback function returns non-zero. To export the callback function for apr_table_[v]do() it must be declared in the _NONSTD convention. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga2" doxytag="apr_tables.h::apr_table_entry_t"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef struct <a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a> <a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The (opaque) structure for string-content tables.     </td>
  </tr>
</table>
<a class="anchor" name="ga0" doxytag="apr_tables.h::apr_table_t"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef struct <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
the table abstract data type     </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga13" doxytag="apr_tables.h::apr_array_append"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>* apr_array_append           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>first</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>second</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Append one array to the end of another, creating a new array in the process. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the new array out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>The array to put first in the new array. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>second</em>&nbsp;</td><td>The array to put second in the new array. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>A new array containing the data from the two arrays passed in. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga10" doxytag="apr_tables.h::apr_array_cat"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_array_cat           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>src</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Concatenate two arrays together <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dst</em>&nbsp;</td><td>The destination array, and the one to go first in the combined array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The source array to add to the destination array </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga11" doxytag="apr_tables.h::apr_array_copy"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>* apr_array_copy           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>arr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copy the entire array <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the copy of the array out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>The array to copy </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>An exact copy of the array passed in </dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>The alternate apr_array_copy_hdr copies only the header, and arranges for the elements to be copied if (and only if) the code subsequently does a push or arraycat. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga12" doxytag="apr_tables.h::apr_array_copy_hdr"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>* apr_array_copy_hdr           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>arr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copy the headers of the array, and arrange for the elements to be copied if and only if the code subsequently does a push or arraycat. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the copy of the array out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>The array to copy </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>An exact copy of the array passed in </dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>The alternate apr_array_copy copies the *entire* array. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga7" doxytag="apr_tables.h::apr_array_make"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>* apr_array_make           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>nelts</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>elt_size</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create an array <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the memory out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nelts</em>&nbsp;</td><td>the number of elements in the initial array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>elt_size</em>&nbsp;</td><td>The size of each element in the array. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The new array </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga9" doxytag="apr_tables.h::apr_array_pop"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void* apr_array_pop           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>arr</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remove an element from an array (as a first-in, last-out stack) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>The array to remove an element from. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Location of the element in the array. </dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>If there are no elements in the array, NULL is returned. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga14" doxytag="apr_tables.h::apr_array_pstrcat"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">char* apr_array_pstrcat           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>arr</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char&nbsp;</td>
          <td class="mdname" nowrap> <em>sep</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates a new string from the apr_pool_t containing the concatenated sequence of substrings referenced as elements within the array. The string will be empty if all substrings are empty or null, or if there are no elements in the array. If sep is non-NUL, it will be inserted between elements as a separator. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the string out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>The array to generate the string from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sep</em>&nbsp;</td><td>The separator to use </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>A string containing all of the data in the array. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga8" doxytag="apr_tables.h::apr_array_push"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void* apr_array_push           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>arr</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add a new element to an array (as a first-in, last-out stack) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>The array to add an element to. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Location for the new element in the array. </dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>If there are no free spots in the array, then this function will allocate new space for the new element. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga6" doxytag="apr_tables.h::apr_is_empty_array"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int apr_is_empty_array           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if the array is empty <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The array to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>True if empty, False otherwise </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga5" doxytag="apr_tables.h::apr_is_empty_table"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int apr_is_empty_table           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>t</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if the table is empty <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 table to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>True if empty, False otherwise </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga24" doxytag="apr_tables.h::apr_table_add"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_add           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add data to a table, regardless of whether there is another element with the same key. <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 table to add to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The value to add. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>When adding data, this function makes a copy of both the key and the value. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga25" doxytag="apr_tables.h::apr_table_addn"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_addn           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add data to a table, regardless of whether there is another element with the same key. <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 table to add to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The value to add. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>When adding data, this function does not make a copy of the key or the value, so care should be taken to ensure that the values will not change after they have been added.. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga17" doxytag="apr_tables.h::apr_table_clear"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_clear           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>t</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Delete all of the elements from a table <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 table to clear </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga30" doxytag="apr_tables.h::apr_table_compress"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_compress           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>unsigned&nbsp;</td>
          <td class="mdname" nowrap> <em>flags</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Eliminate redundant entries in a table by either overwriting or merging duplicates<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>Table. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>APR_OVERLAP_TABLES_MERGE to merge, or APR_OVERLAP_TABLES_SET to overwrite </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga16" doxytag="apr_tables.h::apr_table_copy"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a>* apr_table_copy           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create a new table and copy another table into it <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the new table out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>The table to copy </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>A copy of the table passed in </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga27" doxytag="apr_tables.h::apr_table_do"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int apr_table_do           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>comp</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap> <em>rec</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>&nbsp;</td>
          <td class="mdname" nowrap> <em>...</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Iterate over a table running the provided function once for every element in the table. If there is data passed in as a vararg, then the function is only run on those elements whose key matches something in the vararg. If the vararg is NULL, then every element is run through the function. Iteration continues while the function returns non-zero. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>comp</em>&nbsp;</td><td>The function to run </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rec</em>&nbsp;</td><td>The data to pass as the first argument to the function </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>The table to iterate over </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>The vararg. If this is NULL, then all elements in the table are run through the function, otherwise only those whose key matches are run. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>FALSE if one of the comp() iterations returned zero; TRUE if all iterations returned non-zero </dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga4" doxytag="apr_tables.h::apr_table_elts"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a>* apr_table_elts           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>t</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the elements from a table <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 table </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>An array containing the contents of the table </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga18" doxytag="apr_tables.h::apr_table_get"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const char* apr_table_get           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the value associated with a given key from the table. After this call, The data is still in the table <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 table to search for the key </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to search for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The value associated with the key </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga15" doxytag="apr_tables.h::apr_table_make"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a>* apr_table_make           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>nelts</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Make a new table <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to allocate the pool out of </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nelts</em>&nbsp;</td><td>The number of elements in the initial table. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The new table. </dd></dl>
<dl compact><dt><b>Warning:</b></dt><dd>This table can only store text data </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga22" doxytag="apr_tables.h::apr_table_merge"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_merge           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add data to a table by merging the value with data that has already been stored <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 table to search for the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to merge data for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The data to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>If the key is not found, then this function acts like apr_table_add </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga23" doxytag="apr_tables.h::apr_table_mergen"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_mergen           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add data to a table by merging the value with data that has already been stored <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 table to search for the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to merge data for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The data to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>If the key is not found, then this function acts like apr_table_addn </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga29" doxytag="apr_tables.h::apr_table_overlap"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_overlap           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>unsigned&nbsp;</td>
          <td class="mdname" nowrap> <em>flags</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<pre>
 Conceptually, apr_table_overlap does this:</pre><p>
<pre>  <a class="el" href="structapr__array__header__t.html">apr_array_header_t</a> *barr = apr_table_elts(b);
  <a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a> *belt = (<a class="el" href="structapr__table__entry__t.html">apr_table_entry_t</a> *)barr-&gt;elts;
  int i;</pre><p>
<pre>  for (i = 0; i &lt; barr-&gt;nelts; ++i) {
      if (flags &amp; APR_OVERLAP_TABLES_MERGE) {
          apr_table_mergen(a, belt[i].key, belt[i].val);
      }
      else {
          apr_table_setn(a, belt[i].key, belt[i].val);
      }
  }</pre><p>
<pre>  Except that it is more efficient (less space and cpu-time) especially
  when b has many elements.</pre><p>
<pre>  Notice the assumptions on the keys and values in b -- they must be
  in an ancestor of a's pool.  In practice b and a are usually from
  the same pool.
 </pre>     </td>
  </tr>
</table>
<a class="anchor" name="ga26" doxytag="apr_tables.h::apr_table_overlay"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a>* apr_table_overlay           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>overlay</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>base</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Merge two tables into one new table <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>The pool to use for the new table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>overlay</em>&nbsp;</td><td>The first table to put in the new table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>base</em>&nbsp;</td><td>The table to add at the end of the new table </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>A new table containing all of the data from the two passed in </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga19" doxytag="apr_tables.h::apr_table_set"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_set           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add a key/value pair to a table, if another element already exists with the same key, this will over-write the old data. <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 table to add the data to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key fo use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The value to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>When adding data, this function makes a copy of both the key and the value. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga20" doxytag="apr_tables.h::apr_table_setn"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_setn           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>val</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add a key/value pair to a table, if another element already exists with the same key, this will over-write the old data. <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 table to add the data to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>The value to add </td></tr>
  </table>
</dl>
<dl compact><dt><b>Warning:</b></dt><dd>When adding data, this function does not make a copy of the key or the value, so care should be taken to ensure that the values will not change after they have been added.. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga21" doxytag="apr_tables.h::apr_table_unset"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void apr_table_unset           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remove data from the table <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 table to remove data from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key of the data being removed </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga28" doxytag="apr_tables.h::apr_table_vdo"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int apr_table_vdo           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>comp</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap> <em>rec</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="group__apr__tables.html#ga0">apr_table_t</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>va_list&nbsp;</td>
          <td class="mdname" nowrap> <em>vp</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Iterate over a table running the provided function once for every element in the table. If there is data passed in as a vararg, then the function is only run on those element's whose key matches something in the vararg. If the vararg is NULL, then every element is run through the function. Iteration continues while the function returns non-zero. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>comp</em>&nbsp;</td><td>The function to run </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rec</em>&nbsp;</td><td>The data to pass as the first argument to the function </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>The table to iterate over </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vp</em>&nbsp;</td><td>The vararg table. If this is NULL, then all elements in the table are run through the function, otherwise only those whose key matches are run. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>FALSE if one of the comp() iterations returned zero; TRUE if all iterations returned non-zero </dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__apr__tables.html#ga3">apr_table_do_callback_fn_t</a> </dd></dl>
    </td>
  </tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Mar 20 19:52:28 2005 for Apache Portable Runtime by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
</body>
</html>