DragonNest/Common/SVNLib/doc/group__svn__hash__diff.html
2024-12-19 09:48:26 +08:00

158 lines
8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Subversion: Taking the diff of two hash tables.</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.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1>Taking the diff of two hash tables.<br>
<small>
[<a class="el" href="group__svn__hash__support.html">Hash table serialization support</a>]</small>
</h1>Taking the "diff" of two hash tables.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></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="structsvn__error__t.html">svn_error_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__hash__diff.html#gb1cd98861d5cff815e1234cfc8570bb4">svn_hash_diff_func_t</a> )(const void *key, apr_ssize_t klen, enum <a class="el" href="group__svn__hash__diff.html#g0f4f9cf5f916e1bb87362c26ac1c2f9b">svn_hash_diff_key_status</a> status, void *baton)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function type for expressing a key's status between two hash tables. <a href="#gb1cd98861d5cff815e1234cfc8570bb4"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__hash__diff.html#g0f4f9cf5f916e1bb87362c26ac1c2f9b">svn_hash_diff_key_status</a> { <br>
&nbsp;&nbsp;<b>svn_hash_diff_key_both</b>,
<br>
&nbsp;&nbsp;<b>svn_hash_diff_key_a</b>,
<br>
&nbsp;&nbsp;<b>svn_hash_diff_key_b</b>
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hash key status indicator for svn_hash_diff_func_t. <a href="group__svn__hash__diff.html#g0f4f9cf5f916e1bb87362c26ac1c2f9b">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsvn__error__t.html">svn_error_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__svn__hash__diff.html#g7feef3ed6d363c52e4be350c24d33cba">svn_hash_diff</a> (apr_hash_t *hash_a, apr_hash_t *hash_b, <a class="el" href="group__svn__hash__diff.html#gb1cd98861d5cff815e1234cfc8570bb4">svn_hash_diff_func_t</a> diff_func, void *diff_func_baton, apr_pool_t *pool)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take the diff of two hashtables. <a href="#g7feef3ed6d363c52e4be350c24d33cba"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Taking the "diff" of two hash tables.
<p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gb1cd98861d5cff815e1234cfc8570bb4"></a><!-- doxytag: member="svn_hash.h::svn_hash_diff_func_t" ref="gb1cd98861d5cff815e1234cfc8570bb4" args=")(const void *key, apr_ssize_t klen, enum svn_hash_diff_key_status status, void *baton)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structsvn__error__t.html">svn_error_t</a>*(* <a class="el" href="group__svn__hash__diff.html#gb1cd98861d5cff815e1234cfc8570bb4">svn_hash_diff_func_t</a>)(const void *key, apr_ssize_t klen, enum <a class="el" href="group__svn__hash__diff.html#g0f4f9cf5f916e1bb87362c26ac1c2f9b">svn_hash_diff_key_status</a> status, void *baton) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Function type for expressing a key's status between two hash tables.
<p>
<p>Definition at line <a class="el" href="svn__hash_8h-source.html#l00165">165</a> of file <a class="el" href="svn__hash_8h-source.html">svn_hash.h</a>.</p>
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g0f4f9cf5f916e1bb87362c26ac1c2f9b"></a><!-- doxytag: member="svn_hash.h::svn_hash_diff_key_status" ref="g0f4f9cf5f916e1bb87362c26ac1c2f9b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__svn__hash__diff.html#g0f4f9cf5f916e1bb87362c26ac1c2f9b">svn_hash_diff_key_status</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Hash key status indicator for svn_hash_diff_func_t.
<p>
<p>Definition at line <a class="el" href="svn__hash_8h-source.html#l00150">150</a> of file <a class="el" href="svn__hash_8h-source.html">svn_hash.h</a>.</p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g7feef3ed6d363c52e4be350c24d33cba"></a><!-- doxytag: member="svn_hash.h::svn_hash_diff" ref="g7feef3ed6d363c52e4be350c24d33cba" args="(apr_hash_t *hash_a, apr_hash_t *hash_b, svn_hash_diff_func_t diff_func, void *diff_func_baton, apr_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsvn__error__t.html">svn_error_t</a>* svn_hash_diff </td>
<td>(</td>
<td class="paramtype">apr_hash_t *&nbsp;</td>
<td class="paramname"> <em>hash_a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_hash_t *&nbsp;</td>
<td class="paramname"> <em>hash_b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__svn__hash__diff.html#gb1cd98861d5cff815e1234cfc8570bb4">svn_hash_diff_func_t</a>&nbsp;</td>
<td class="paramname"> <em>diff_func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>diff_func_baton</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">apr_pool_t *&nbsp;</td>
<td class="paramname"> <em>pool</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Take the diff of two hashtables.
<p>
For each key in the union of <em>hash_a's</em> and <em>hash_b's</em> keys, invoke <em>diff_func</em> exactly once, passing the key, the key's length, an enum <code>svn_hash_diff_key_status</code> indicating which table(s) the key appears in, and <em>diff_func_baton</em>.<p>
Process all keys of <em>hash_a</em> first, then all remaining keys of <em>hash_b</em>.<p>
If <em>diff_func</em> returns error, return that error immediately, without applying <em>diff_func</em> to anything else.<p>
<em>hash_a</em> or <em>hash_b</em> or both may be NULL; treat a null table as though empty.<p>
Use <em>pool</em> for temporary allocation.
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 24 16:18:29 2008 for Subversion by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>