<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Apache Portable Runtime Utility Library: DBM routines</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.4 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>DBM routines<br> <small> [<a class="el" href="group___a_p_r___util.html">APR Utility Functions</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Modules</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m___s_d_b_m.html">SDBM library</a></td></tr> <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__datum__t.html">apr_datum_t</a></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gcd6e9c0783bd0c232bdd02b14655b6b1">APR_DBM_READONLY</a> 1</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gf693166e76d6f84b12a0d75307687053">APR_DBM_READWRITE</a> 2</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gbf461a27dab1f4cc7405e891d2ad6522">APR_DBM_RWCREATE</a> 3</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g8bffe207158704162c24fa74dc1b9264">APR_DBM_RWTRUNC</a> 4</td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g47f6ff771143ed7b7987c686c20c8536">apr_dbm_t</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gf7295ba8157f487b78319e168e1344b4">apr_dbm_open_ex</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> **dbm, const char *type, const char *name, apr_int32_t mode, apr_fileperms_t perm, apr_pool_t *cntxt)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gb2d9cc87f4922ae11a175556ec66e390">apr_dbm_open</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> **dbm, const char *name, apr_int32_t mode, apr_fileperms_t perm, apr_pool_t *cntxt)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gad1e796c7436bf855ce6ec3c567eb3eb">apr_dbm_close</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gc990e695db20e3fa6998089081685196">apr_dbm_fetch</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> key, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> *pvalue)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g014a6acf6f86aaac5fc44af5b8951051">apr_dbm_store</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> key, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> value)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g3b218881f3bb9f8e909f32d99ae2ad34">apr_dbm_delete</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> key)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g20379004362aeeef11166bdaa8c47d1e">apr_dbm_exists</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> key)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#ge5428eaa8df9a036212c8fad60e95e3c">apr_dbm_firstkey</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> *pkey)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g92b8233ccf421b89d2144f834dd6f9a6">apr_dbm_nextkey</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> *pkey)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#gcd9f6bc4a633720ac882daba9e0d9873">apr_dbm_freedatum</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, <a class="el" href="structapr__datum__t.html">apr_datum_t</a> data)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g597bd9e35de9575afb55b3326789c0f3">apr_dbm_geterror</a> (<a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> *dbm, int *errcode, char *errbuf, apr_size_t errbufsize)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g7a3a1bd1ece38d90739ecb7cf72bf4fb">apr_dbm_get_usednames_ex</a> (apr_pool_t *pool, const char *type, const char *pathname, const char **used1, const char **used2)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_m.html#g1ee45897c5e1b0718dfa4bd35a75dbe1">apr_dbm_get_usednames</a> (apr_pool_t *pool, const char *pathname, const char **used1, const char **used2)</td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="gcd6e9c0783bd0c232bdd02b14655b6b1"></a><!-- doxytag: member="apr_dbm.h::APR_DBM_READONLY" ref="gcd6e9c0783bd0c232bdd02b14655b6b1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_DBM_READONLY 1 </td> </tr> </table> </div> <div class="memdoc"> <p> open for read-only access </div> </div><p> <a class="anchor" name="gf693166e76d6f84b12a0d75307687053"></a><!-- doxytag: member="apr_dbm.h::APR_DBM_READWRITE" ref="gf693166e76d6f84b12a0d75307687053" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_DBM_READWRITE 2 </td> </tr> </table> </div> <div class="memdoc"> <p> open for read-write access </div> </div><p> <a class="anchor" name="gbf461a27dab1f4cc7405e891d2ad6522"></a><!-- doxytag: member="apr_dbm.h::APR_DBM_RWCREATE" ref="gbf461a27dab1f4cc7405e891d2ad6522" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_DBM_RWCREATE 3 </td> </tr> </table> </div> <div class="memdoc"> <p> open for r/w, create if needed </div> </div><p> <a class="anchor" name="g8bffe207158704162c24fa74dc1b9264"></a><!-- doxytag: member="apr_dbm.h::APR_DBM_RWTRUNC" ref="g8bffe207158704162c24fa74dc1b9264" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_DBM_RWTRUNC 4 </td> </tr> </table> </div> <div class="memdoc"> <p> open for r/w, truncating an existing DB if present </div> </div><p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="g47f6ff771143ed7b7987c686c20c8536"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_t" ref="g47f6ff771143ed7b7987c686c20c8536" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> <a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Structure for referencing a dbm </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="gad1e796c7436bf855ce6ec3c567eb3eb"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_close" ref="gad1e796c7436bf855ce6ec3c567eb3eb" args="(apr_dbm_t *dbm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void apr_dbm_close </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Close a dbm file previously opened by apr_dbm_open <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The database to close </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g3b218881f3bb9f8e909f32d99ae2ad34"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_delete" ref="g3b218881f3bb9f8e909f32d99ae2ad34" args="(apr_dbm_t *dbm, apr_datum_t key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_delete </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Delete a dbm record value by 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>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The key datum of the record to delete </td></tr> </table> </dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>It is not an error to delete a non-existent record. </dd></dl> </div> </div><p> <a class="anchor" name="g20379004362aeeef11166bdaa8c47d1e"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_exists" ref="g20379004362aeeef11166bdaa8c47d1e" args="(apr_dbm_t *dbm, apr_datum_t key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int apr_dbm_exists </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Search for a key within the dbm <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The datum describing a key to test </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="gc990e695db20e3fa6998089081685196"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_fetch" ref="gc990e695db20e3fa6998089081685196" args="(apr_dbm_t *dbm, apr_datum_t key, apr_datum_t *pvalue)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_fetch </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> * </td> <td class="paramname"> <em>pvalue</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Fetch a dbm record value by 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>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The key datum to find this record </td></tr> <tr><td valign="top"></td><td valign="top"><em>pvalue</em> </td><td>The value datum retrieved for this record </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="ge5428eaa8df9a036212c8fad60e95e3c"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_firstkey" ref="ge5428eaa8df9a036212c8fad60e95e3c" args="(apr_dbm_t *dbm, apr_datum_t *pkey)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_firstkey </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> * </td> <td class="paramname"> <em>pkey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve the first record key from a dbm <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>pkey</em> </td><td>The key datum of the first record </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="gcd9f6bc4a633720ac882daba9e0d9873"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_freedatum" ref="gcd9f6bc4a633720ac882daba9e0d9873" args="(apr_dbm_t *dbm, apr_datum_t data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void apr_dbm_freedatum </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Proactively toss any memory associated with the <a class="el" href="structapr__datum__t.html">apr_datum_t</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>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The datum to free. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g1ee45897c5e1b0718dfa4bd35a75dbe1"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_get_usednames" ref="g1ee45897c5e1b0718dfa4bd35a75dbe1" args="(apr_pool_t *pool, const char *pathname, const char **used1, const char **used2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void apr_dbm_get_usednames </td> <td>(</td> <td class="paramtype">apr_pool_t * </td> <td class="paramname"> <em>pool</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pathname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>used1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>used2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> If the specified file/path were passed to <a class="el" href="group___a_p_r___util___d_b_m.html#gb2d9cc87f4922ae11a175556ec66e390">apr_dbm_open()</a>, return the actual file/path names which would be (created and) used. At most, two files may be used; used2 may be NULL if only one file is used. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>pool</em> </td><td>The pool for allocating used1 and used2. </td></tr> <tr><td valign="top"></td><td valign="top"><em>pathname</em> </td><td>The path name to generate used-names from. </td></tr> <tr><td valign="top"></td><td valign="top"><em>used1</em> </td><td>The first pathname used by the apr_dbm implementation. </td></tr> <tr><td valign="top"></td><td valign="top"><em>used2</em> </td><td>The second pathname used by apr_dbm. If only one file is used by the specific implementation, this will be set to NULL. </td></tr> </table> </dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The dbm file(s) don't need to exist. This function only manipulates the pathnames. </dd></dl> </div> </div><p> <a class="anchor" name="g7a3a1bd1ece38d90739ecb7cf72bf4fb"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_get_usednames_ex" ref="g7a3a1bd1ece38d90739ecb7cf72bf4fb" args="(apr_pool_t *pool, const char *type, const char *pathname, const char **used1, const char **used2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_get_usednames_ex </td> <td>(</td> <td class="paramtype">apr_pool_t * </td> <td class="paramname"> <em>pool</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pathname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>used1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>used2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> If the specified file/path were passed to <a class="el" href="group___a_p_r___util___d_b_m.html#gb2d9cc87f4922ae11a175556ec66e390">apr_dbm_open()</a>, return the actual file/path names which would be (created and) used. At most, two files may be used; used2 may be NULL if only one file is used. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>pool</em> </td><td>The pool for allocating used1 and used2. </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>The type of DBM you require info on </td></tr> <tr><td valign="top"></td><td valign="top"><em>pathname</em> </td><td>The path name to generate used-names from. </td></tr> <tr><td valign="top"></td><td valign="top"><em>used1</em> </td><td>The first pathname used by the apr_dbm implementation. </td></tr> <tr><td valign="top"></td><td valign="top"><em>used2</em> </td><td>The second pathname used by apr_dbm. If only one file is used by the specific implementation, this will be set to NULL. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>An error if the specified type is invalid. </dd></dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The dbm file(s) don't need to exist. This function only manipulates the pathnames. </dd></dl> </div> </div><p> <a class="anchor" name="g597bd9e35de9575afb55b3326789c0f3"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_geterror" ref="g597bd9e35de9575afb55b3326789c0f3" args="(apr_dbm_t *dbm, int *errcode, char *errbuf, apr_size_t errbufsize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_dbm_geterror </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"> <em>errcode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>errbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"> <em>errbufsize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Report more information when an apr_dbm function fails. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>errcode</em> </td><td>A DBM-specific value for the error (for logging). If this isn't needed, it may be NULL. </td></tr> <tr><td valign="top"></td><td valign="top"><em>errbuf</em> </td><td>Location to store the error text </td></tr> <tr><td valign="top"></td><td valign="top"><em>errbufsize</em> </td><td>The size of the provided buffer </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The errbuf parameter, for convenience. </dd></dl> </div> </div><p> <a class="anchor" name="g92b8233ccf421b89d2144f834dd6f9a6"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_nextkey" ref="g92b8233ccf421b89d2144f834dd6f9a6" args="(apr_dbm_t *dbm, apr_datum_t *pkey)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_nextkey </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> * </td> <td class="paramname"> <em>pkey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Retrieve the next record key from a dbm <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>pkey</em> </td><td>The key datum of the next record </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="gb2d9cc87f4922ae11a175556ec66e390"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_open" ref="gb2d9cc87f4922ae11a175556ec66e390" args="(apr_dbm_t **dbm, const char *name, apr_int32_t mode, apr_fileperms_t perm, apr_pool_t *cntxt)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_open </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> ** </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_int32_t </td> <td class="paramname"> <em>mode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_fileperms_t </td> <td class="paramname"> <em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_pool_t * </td> <td class="paramname"> <em>cntxt</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Open a dbm file by file name <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The newly opened database </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The dbm file name to open </td></tr> <tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>The flag value <pre> APR_DBM_READONLY open for read-only access APR_DBM_READWRITE open for read-write access APR_DBM_RWCREATE open for r/w, create if needed APR_DBM_RWTRUNC open for r/w, truncate if already there </pre> </td></tr> <tr><td valign="top"></td><td valign="top"><em>perm</em> </td><td>Permissions to apply to if created </td></tr> <tr><td valign="top"></td><td valign="top"><em>cntxt</em> </td><td>The pool to use when creating the dbm </td></tr> </table> </dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The dbm name may not be a true file name, as many dbm packages append suffixes for seperate data and index files. </dd></dl> </div> </div><p> <a class="anchor" name="gf7295ba8157f487b78319e168e1344b4"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_open_ex" ref="gf7295ba8157f487b78319e168e1344b4" args="(apr_dbm_t **dbm, const char *type, const char *name, apr_int32_t mode, apr_fileperms_t perm, apr_pool_t *cntxt)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_open_ex </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> ** </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_int32_t </td> <td class="paramname"> <em>mode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_fileperms_t </td> <td class="paramname"> <em>perm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_pool_t * </td> <td class="paramname"> <em>cntxt</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Open a dbm file by file name and type of DBM <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbm</em> </td><td>The newly opened database </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>The type of the DBM (not all may be available at run time) <pre> GDBM for GDBM files SDBM for SDBM files DB for berkeley DB files NDBM for NDBM files default for the default DBM type </pre> </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The dbm file name to open </td></tr> <tr><td valign="top"></td><td valign="top"><em>mode</em> </td><td>The flag value <pre> APR_DBM_READONLY open for read-only access APR_DBM_READWRITE open for read-write access APR_DBM_RWCREATE open for r/w, create if needed APR_DBM_RWTRUNC open for r/w, truncate if already there </pre> </td></tr> <tr><td valign="top"></td><td valign="top"><em>perm</em> </td><td>Permissions to apply to if created </td></tr> <tr><td valign="top"></td><td valign="top"><em>cntxt</em> </td><td>The pool to use when creating the dbm </td></tr> </table> </dl> <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The dbm name may not be a true file name, as many dbm packages append suffixes for seperate data and index files. </dd></dl> </div> </div><p> <a class="anchor" name="g014a6acf6f86aaac5fc44af5b8951051"></a><!-- doxytag: member="apr_dbm.h::apr_dbm_store" ref="g014a6acf6f86aaac5fc44af5b8951051" args="(apr_dbm_t *dbm, apr_datum_t key, apr_datum_t value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_dbm_store </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__dbm__t.html">apr_dbm_t</a> * </td> <td class="paramname"> <em>dbm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__datum__t.html">apr_datum_t</a> </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Store a dbm record value by 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>dbm</em> </td><td>The database </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The key datum to store this record by </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The value datum to store in this record </td></tr> </table> </dl> </div> </div><p> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Jan 24 02:22:55 2008 for Apache Portable Runtime Utility Library by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address> </body> </html>