ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/vendor/pxys2-2.1.0/pxyservd/dbprim/doc/html/dbprim_8h-source.html
Revision: 3253
Committed: Wed Apr 2 20:46:18 2014 UTC (11 years, 4 months ago) by michael
Content type: text/html
File size: 72750 byte(s)
Log Message:
- Imported pxys2-2.1.0

File Contents

# Content
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>DatabasePrimitivesLibrary: dbprim.h Source File</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.4 -->
7 <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="classes.html">Alphabetical&nbsp;List</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></div>
8 <h1>dbprim.h</h1><a href="dbprim_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c -*-</span>
9 <a name="l00002"></a>00002 <span class="comment">** Copyright (C) 2002, 2006 by Kevin L. Mitchell &lt;klmitch@mit.edu&gt;</span>
10 <a name="l00003"></a>00003 <span class="comment">**</span>
11 <a name="l00004"></a>00004 <span class="comment">** This library is free software; you can redistribute it and/or</span>
12 <a name="l00005"></a>00005 <span class="comment">** modify it under the terms of the GNU Library General Public</span>
13 <a name="l00006"></a>00006 <span class="comment">** License as published by the Free Software Foundation; either</span>
14 <a name="l00007"></a>00007 <span class="comment">** version 2 of the License, or (at your option) any later version.</span>
15 <a name="l00008"></a>00008 <span class="comment">**</span>
16 <a name="l00009"></a>00009 <span class="comment">** This library is distributed in the hope that it will be useful,</span>
17 <a name="l00010"></a>00010 <span class="comment">** but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
18 <a name="l00011"></a>00011 <span class="comment">** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
19 <a name="l00012"></a>00012 <span class="comment">** Library General Public License for more details.</span>
20 <a name="l00013"></a>00013 <span class="comment">**</span>
21 <a name="l00014"></a>00014 <span class="comment">** You should have received a copy of the GNU Library General Public</span>
22 <a name="l00015"></a>00015 <span class="comment">** License along with this library; if not, write to the Free</span>
23 <a name="l00016"></a>00016 <span class="comment">** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</span>
24 <a name="l00017"></a>00017 <span class="comment">** MA 02111-1307, USA</span>
25 <a name="l00018"></a>00018 <span class="comment">**</span>
26 <a name="l00019"></a>00019 <span class="comment">** @(#)$Id: dbprim_8h-source.html,v 1.3 2006/09/04 15:12:15 spale Exp $</span>
27 <a name="l00020"></a>00020 <span class="comment">*/</span>
28 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef __include_dbprim_h__</span>
29 <a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define __include_dbprim_h__</span>
30 <a name="l00023"></a>00023 <span class="preprocessor"></span>
31 <a name="l00230"></a>00230 <span class="preprocessor">#undef DBPRIM_BEGIN_C_DECLS</span>
32 <a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor">#undef DBPRIM_END_C_DECLS</span>
33 <a name="l00232"></a>00232 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span>
34 <a name="l00233"></a>00233 <span class="preprocessor"></span><span class="preprocessor"># define DBPRIM_BEGIN_C_DECLS extern "C" {</span>
35 <a name="l00234"></a>00234 <span class="preprocessor"></span><span class="preprocessor"># define DBPRIM_END_C_DECLS }</span>
36 <a name="l00235"></a>00235 <span class="preprocessor"></span><span class="preprocessor">#else</span>
37 <a name="l00236"></a><a class="code" href="dbprim_8h.html#a0">00236</a> <span class="preprocessor"></span><span class="preprocessor"># define DBPRIM_BEGIN_C_DECLS </span><span class="comment">/* empty */</span>
38 <a name="l00237"></a><a class="code" href="dbprim_8h.html#a1">00237</a> <span class="preprocessor"># define DBPRIM_END_C_DECLS </span><span class="comment">/* empty */</span>
39 <a name="l00238"></a>00238 <span class="preprocessor">#endif</span>
40 <a name="l00239"></a>00239 <span class="preprocessor"></span>
41 <a name="l00240"></a>00240 <a class="code" href="dbprim_8h.html#a0">DBPRIM_BEGIN_C_DECLS</a>
42 <a name="l00241"></a>00241
43 <a name="l00242"></a>00242 <span class="preprocessor">#ifndef __DBPRIM_LIBRARY__</span>
44 <a name="l00243"></a>00243 <span class="preprocessor"></span><span class="preprocessor">#include &lt;dbprim/dbprim_err.h&gt;</span>
45 <a name="l00244"></a>00244 <span class="preprocessor">#include &lt;dbprim/dbprim_version.h&gt;</span>
46 <a name="l00245"></a>00245 <span class="preprocessor">#endif </span><span class="comment">/* __DBPRIM_LIBRARY__ */</span>
47 <a name="l00246"></a>00246
48 <a name="l00254"></a><a class="code" href="group__dbprim.html#ga0">00254</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__db__key__s.html">_db_key_s</a> db_key_t;
49 <a name="l00255"></a>00255
50 <a name="l00262"></a><a class="code" href="group__dbprim__link.html#ga0">00262</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__link__head__s.html">_link_head_s</a> link_head_t;
51 <a name="l00263"></a>00263
52 <a name="l00269"></a><a class="code" href="group__dbprim__link.html#ga1">00269</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__link__elem__s.html">_link_elem_s</a> link_elem_t;
53 <a name="l00270"></a>00270
54 <a name="l00277"></a><a class="code" href="group__dbprim__hash.html#ga1">00277</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__hash__table__s.html">_hash_table_s</a> hash_table_t;
55 <a name="l00278"></a>00278
56 <a name="l00284"></a><a class="code" href="group__dbprim__hash.html#ga2">00284</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__hash__entry__s.html">_hash_entry_s</a> hash_entry_t;
57 <a name="l00285"></a>00285
58 <a name="l00292"></a><a class="code" href="group__dbprim__smat.html#ga0">00292</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__smat__table__s.html">_smat_table_s</a> smat_table_t;
59 <a name="l00293"></a>00293
60 <a name="l00300"></a><a class="code" href="group__dbprim__smat.html#ga1">00300</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__smat__head__s.html">_smat_head_s</a> smat_head_t;
61 <a name="l00301"></a>00301
62 <a name="l00308"></a><a class="code" href="group__dbprim__smat.html#ga2">00308</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__smat__entry__s.html">_smat_entry_s</a> smat_entry_t;
63 <a name="l00309"></a>00309
64 <a name="l00316"></a><a class="code" href="group__dbprim__rbtree.html#ga0">00316</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__rb__tree__s.html">_rb_tree_s</a> rb_tree_t;
65 <a name="l00317"></a>00317
66 <a name="l00323"></a><a class="code" href="group__dbprim__rbtree.html#ga1">00323</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__rb__node__s.html">_rb_node_s</a> rb_node_t;
67 <a name="l00324"></a>00324
68 <a name="l00342"></a><a class="code" href="group__dbprim__link.html#ga2">00342</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__link.html#ga2">link_iter_t</a>)(link_head_t *list, link_elem_t *elem,
69 <a name="l00343"></a>00343 <span class="keywordtype">void</span> *extra);
70 <a name="l00344"></a>00344
71 <a name="l00357"></a><a class="code" href="group__dbprim__link.html#ga3">00357</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__link.html#ga3">link_comp_t</a>)(db_key_t *key, <span class="keywordtype">void</span> *obj);
72 <a name="l00358"></a>00358
73 <a name="l00376"></a><a class="code" href="group__dbprim__hash.html#ga3">00376</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__hash.html#ga3">hash_iter_t</a>)(hash_table_t *table, hash_entry_t *ent,
74 <a name="l00377"></a>00377 <span class="keywordtype">void</span> *extra);
75 <a name="l00378"></a>00378
76 <a name="l00392"></a><a class="code" href="group__dbprim__hash.html#ga4">00392</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__hash.html#ga4">hash_func_t</a>)(hash_table_t *table, db_key_t *key);
77 <a name="l00393"></a>00393
78 <a name="l00408"></a><a class="code" href="group__dbprim__hash.html#ga5">00408</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__hash.html#ga5">hash_comp_t</a>)(hash_table_t *table, db_key_t *key1,
79 <a name="l00409"></a>00409 db_key_t *key2);
80 <a name="l00410"></a>00410
81 <a name="l00424"></a><a class="code" href="group__dbprim__hash.html#ga6">00424</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__hash.html#ga6">hash_resize_t</a>)(hash_table_t *table,
82 <a name="l00425"></a>00425 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> new_mod);
83 <a name="l00426"></a>00426
84 <a name="l00440"></a><a class="code" href="group__dbprim__smat.html#ga3">00440</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__smat.html#ga3">smat_resize_t</a>)(smat_table_t *table,
85 <a name="l00441"></a>00441 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> new_mod);
86 <a name="l00442"></a>00442
87 <a name="l00460"></a><a class="code" href="group__dbprim__smat.html#ga4">00460</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__smat.html#ga4">smat_iter_t</a>)(smat_table_t *table, smat_entry_t *ent,
88 <a name="l00461"></a>00461 <span class="keywordtype">void</span> *extra);
89 <a name="l00462"></a>00462
90 <a name="l00476"></a><a class="code" href="group__dbprim__smat.html#ga5">00476</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__smat.html#ga5">smat_comp_t</a>)(db_key_t *key, smat_entry_t *ent);
91 <a name="l00477"></a>00477
92 <a name="l00495"></a><a class="code" href="group__dbprim__rbtree.html#ga2">00495</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> long (*<a class="code" href="group__dbprim__rbtree.html#ga2">rb_iter_t</a>)(rb_tree_t *tree, rb_node_t *node,
93 <a name="l00496"></a>00496 <span class="keywordtype">void</span> *extra);
94 <a name="l00497"></a>00497
95 <a name="l00514"></a><a class="code" href="group__dbprim__rbtree.html#ga3">00514</a> <span class="keyword">typedef</span> long (*<a class="code" href="group__dbprim__rbtree.html#ga3">rb_comp_t</a>)(rb_tree_t *tree, db_key_t *key1, db_key_t *key2);
96 <a name="l00515"></a>00515
97 <a name="l00523"></a><a class="code" href="group__dbprim__link.html#ga28">00523</a> <span class="keyword">enum</span> <a class="code" href="group__dbprim__link.html#ga28">_link_loc_e</a> {
98 <a name="l00524"></a>00524 <a class="code" href="group__dbprim__link.html#gga28a133">LINK_LOC_HEAD</a>,
99 <a name="l00525"></a>00525 <a class="code" href="group__dbprim__link.html#gga28a134">LINK_LOC_TAIL</a>,
100 <a name="l00526"></a>00526 <a class="code" href="group__dbprim__link.html#gga28a135">LINK_LOC_BEFORE</a>,
101 <a name="l00528"></a><a class="code" href="group__dbprim__link.html#gga28a136">00528</a> <a class="code" href="group__dbprim__link.html#gga28a136">LINK_LOC_AFTER</a>
102 <a name="l00530"></a>00530 };
103 <a name="l00531"></a>00531
104 <a name="l00537"></a><a class="code" href="group__dbprim__link.html#ga4">00537</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__dbprim__link.html#ga28">_link_loc_e</a> <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a>;
105 <a name="l00538"></a>00538
106 <a name="l00546"></a><a class="code" href="group__dbprim__smat.html#ga70">00546</a> <span class="keyword">enum</span> <a class="code" href="group__dbprim__smat.html#ga70">_smat_loc_e</a> {
107 <a name="l00547"></a>00547 <a class="code" href="group__dbprim__smat.html#gga70a137">SMAT_LOC_FIRST</a>,
108 <a name="l00548"></a><a class="code" href="group__dbprim__smat.html#gga70a138">00548</a> <a class="code" href="group__dbprim__smat.html#gga70a138">SMAT_LOC_SECOND</a>
109 <a name="l00549"></a>00549 };
110 <a name="l00550"></a>00550
111 <a name="l00556"></a><a class="code" href="group__dbprim__smat.html#ga6">00556</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__dbprim__smat.html#ga70">_smat_loc_e</a> <a class="code" href="group__dbprim__smat.html#ga6">smat_loc_t</a>;
112 <a name="l00557"></a>00557
113 <a name="l00564"></a><a class="code" href="group__dbprim__rbtree.html#ga53">00564</a> <span class="keyword">enum</span> <a class="code" href="group__dbprim__rbtree.html#ga53">_rb_color_e</a> {
114 <a name="l00565"></a>00565 <a class="code" href="group__dbprim__rbtree.html#gga53a139">RB_COLOR_NONE</a>,
115 <a name="l00566"></a>00566 <a class="code" href="group__dbprim__rbtree.html#gga53a140">RB_COLOR_RED</a>,
116 <a name="l00567"></a><a class="code" href="group__dbprim__rbtree.html#gga53a141">00567</a> <a class="code" href="group__dbprim__rbtree.html#gga53a141">RB_COLOR_BLACK</a>
117 <a name="l00568"></a>00568 };
118 <a name="l00569"></a>00569
119 <a name="l00575"></a><a class="code" href="group__dbprim__rbtree.html#ga4">00575</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__dbprim__rbtree.html#ga53">_rb_color_e</a> <a class="code" href="group__dbprim__rbtree.html#ga4">rb_color_t</a>;
120 <a name="l00576"></a>00576
121 <a name="l00583"></a><a class="code" href="struct__db__key__s.html">00583</a> <span class="keyword">struct </span><a class="code" href="struct__db__key__s.html">_db_key_s</a> {
122 <a name="l00584"></a><a class="code" href="struct__db__key__s.html#o0">00584</a> <span class="keywordtype">void</span> *<a class="code" href="struct__db__key__s.html#o0">dk_key</a>;
123 <a name="l00585"></a><a class="code" href="struct__db__key__s.html#o1">00585</a> <span class="keywordtype">int</span> <a class="code" href="struct__db__key__s.html#o1">dk_len</a>;
124 <a name="l00586"></a>00586 };
125 <a name="l00587"></a>00587
126 <a name="l00596"></a><a class="code" href="group__dbprim.html#ga1">00596</a> <span class="preprocessor">#define DB_KEY_INIT(key, size) { (key), (size) }</span>
127 <a name="l00597"></a>00597 <span class="preprocessor"></span>
128 <a name="l00608"></a><a class="code" href="group__dbprim.html#ga2">00608</a> <span class="preprocessor">#define dk_key(key) ((key)-&gt;dk_key)</span>
129 <a name="l00609"></a>00609 <span class="preprocessor"></span>
130 <a name="l00621"></a><a class="code" href="group__dbprim.html#ga3">00621</a> <span class="preprocessor">#define dk_len(key) ((key)-&gt;dk_len)</span>
131 <a name="l00622"></a>00622 <span class="preprocessor"></span>
132 <a name="l00629"></a><a class="code" href="group__dbprim.html#ga4">00629</a> <span class="preprocessor">#define DB_FLAG_REVERSE 0x80000000</span>
133 <a name="l00630"></a>00630 <span class="preprocessor"></span>
134 <a name="l00637"></a><a class="code" href="struct__link__head__s.html">00637</a> <span class="keyword">struct </span><a class="code" href="struct__link__head__s.html">_link_head_s</a> {
135 <a name="l00638"></a><a class="code" href="struct__link__head__s.html#o0">00638</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__link__head__s.html#o0">lh_magic</a>;
136 <a name="l00639"></a><a class="code" href="struct__link__head__s.html#o1">00639</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__link__head__s.html#o1">lh_count</a>;
137 <a name="l00640"></a><a class="code" href="struct__link__head__s.html#o2">00640</a> link_elem_t *<a class="code" href="struct__link__head__s.html#o2">lh_first</a>;
138 <a name="l00641"></a><a class="code" href="struct__link__head__s.html#o3">00641</a> link_elem_t *<a class="code" href="struct__link__head__s.html#o3">lh_last</a>;
139 <a name="l00642"></a><a class="code" href="struct__link__head__s.html#o4">00642</a> <span class="keywordtype">void</span> *<a class="code" href="struct__link__head__s.html#o4">lh_extra</a>;
140 <a name="l00643"></a>00643 };
141 <a name="l00644"></a>00644
142 <a name="l00651"></a><a class="code" href="group__dbprim__link.html#ga13">00651</a> <span class="preprocessor">#define LINK_HEAD_MAGIC 0x4c6155d7</span>
143 <a name="l00652"></a>00652 <span class="preprocessor"></span>
144 <a name="l00661"></a><a class="code" href="group__dbprim__link.html#ga14">00661</a> <span class="preprocessor">#define LINK_HEAD_INIT(extra) { LINK_HEAD_MAGIC, 0, 0, 0, (extra) }</span>
145 <a name="l00662"></a>00662 <span class="preprocessor"></span>
146 <a name="l00676"></a><a class="code" href="group__dbprim__link.html#ga15">00676</a> <span class="preprocessor">#define ll_verify(list) ((list) &amp;&amp; \</span>
147 <a name="l00677"></a>00677 <span class="preprocessor"> (list)-&gt;lh_magic == LINK_HEAD_MAGIC)</span>
148 <a name="l00678"></a>00678 <span class="preprocessor"></span>
149 <a name="l00689"></a><a class="code" href="group__dbprim__link.html#ga16">00689</a> <span class="preprocessor">#define ll_count(list) ((list)-&gt;lh_count)</span>
150 <a name="l00690"></a>00690 <span class="preprocessor"></span>
151 <a name="l00700"></a><a class="code" href="group__dbprim__link.html#ga17">00700</a> <span class="preprocessor">#define ll_first(list) ((list)-&gt;lh_first)</span>
152 <a name="l00701"></a>00701 <span class="preprocessor"></span>
153 <a name="l00711"></a><a class="code" href="group__dbprim__link.html#ga18">00711</a> <span class="preprocessor">#define ll_last(list) ((list)-&gt;lh_last)</span>
154 <a name="l00712"></a>00712 <span class="preprocessor"></span>
155 <a name="l00723"></a><a class="code" href="group__dbprim__link.html#ga19">00723</a> <span class="preprocessor">#define ll_extra(list) ((list)-&gt;lh_extra)</span>
156 <a name="l00724"></a>00724 <span class="preprocessor"></span>
157 <a name="l00739"></a>00739 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga5">ll_init</a>(link_head_t *list, <span class="keywordtype">void</span> *extra);
158 <a name="l00740"></a>00740
159 <a name="l00762"></a>00762 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga6">ll_add</a>(link_head_t *list, link_elem_t *<span class="keyword">new</span>, <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a> loc,
160 <a name="l00763"></a>00763 link_elem_t *elem);
161 <a name="l00764"></a>00764
162 <a name="l00788"></a>00788 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga7">ll_move</a>(link_head_t *list, link_elem_t *elem, <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a> loc,
163 <a name="l00789"></a>00789 link_elem_t *elem2);
164 <a name="l00790"></a>00790
165 <a name="l00804"></a>00804 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga8">ll_remove</a>(link_head_t *list, link_elem_t *elem);
166 <a name="l00805"></a>00805
167 <a name="l00832"></a>00832 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga9">ll_find</a>(link_head_t *list, link_elem_t **elem_p,
168 <a name="l00833"></a>00833 <a class="code" href="group__dbprim__link.html#ga3">link_comp_t</a> comp_func, link_elem_t *start,
169 <a name="l00834"></a>00834 db_key_t *key);
170 <a name="l00835"></a>00835
171 <a name="l00863"></a>00863 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga10">ll_iter</a>(link_head_t *list, link_elem_t *start,
172 <a name="l00864"></a>00864 <a class="code" href="group__dbprim__link.html#ga2">link_iter_t</a> iter_func, <span class="keywordtype">void</span> *extra, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
173 <a name="l00865"></a>00865
174 <a name="l00887"></a>00887 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga11">ll_flush</a>(link_head_t *list, <a class="code" href="group__dbprim__link.html#ga2">link_iter_t</a> flush_func, <span class="keywordtype">void</span> *extra);
175 <a name="l00888"></a>00888
176 <a name="l00895"></a><a class="code" href="struct__link__elem__s.html">00895</a> <span class="keyword">struct </span><a class="code" href="struct__link__elem__s.html">_link_elem_s</a> {
177 <a name="l00896"></a><a class="code" href="struct__link__elem__s.html#o0">00896</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__link__elem__s.html#o0">le_magic</a>;
178 <a name="l00897"></a><a class="code" href="struct__link__elem__s.html#o1">00897</a> link_elem_t *<a class="code" href="struct__link__elem__s.html#o1">le_next</a>;
179 <a name="l00898"></a><a class="code" href="struct__link__elem__s.html#o2">00898</a> link_elem_t *<a class="code" href="struct__link__elem__s.html#o2">le_prev</a>;
180 <a name="l00899"></a><a class="code" href="struct__link__elem__s.html#o3">00899</a> <span class="keywordtype">void</span> *<a class="code" href="struct__link__elem__s.html#o3">le_object</a>;
181 <a name="l00900"></a><a class="code" href="struct__link__elem__s.html#o4">00900</a> link_head_t *<a class="code" href="struct__link__elem__s.html#o4">le_head</a>;
182 <a name="l00901"></a><a class="code" href="struct__link__elem__s.html#o5">00901</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__link__elem__s.html#o5">le_flags</a>;
183 <a name="l00902"></a>00902 };
184 <a name="l00903"></a>00903
185 <a name="l00911"></a><a class="code" href="group__dbprim__link.html#ga20">00911</a> <span class="preprocessor">#define LINK_ELEM_MAGIC 0x97cdf72a</span>
186 <a name="l00912"></a>00912 <span class="preprocessor"></span>
187 <a name="l00921"></a><a class="code" href="group__dbprim__link.html#ga21">00921</a> <span class="preprocessor">#define LINK_ELEM_INIT(obj) { LINK_ELEM_MAGIC, 0, 0, (obj), 0, 0 }</span>
188 <a name="l00922"></a>00922 <span class="preprocessor"></span>
189 <a name="l00936"></a><a class="code" href="group__dbprim__link.html#ga22">00936</a> <span class="preprocessor">#define le_verify(element) ((element) &amp;&amp; \</span>
190 <a name="l00937"></a>00937 <span class="preprocessor"> (element)-&gt;le_magic == LINK_ELEM_MAGIC)</span>
191 <a name="l00938"></a>00938 <span class="preprocessor"></span>
192 <a name="l00950"></a><a class="code" href="group__dbprim__link.html#ga23">00950</a> <span class="preprocessor">#define le_next(elem) ((elem)-&gt;le_next)</span>
193 <a name="l00951"></a>00951 <span class="preprocessor"></span>
194 <a name="l00963"></a><a class="code" href="group__dbprim__link.html#ga24">00963</a> <span class="preprocessor">#define le_prev(elem) ((elem)-&gt;le_prev)</span>
195 <a name="l00964"></a>00964 <span class="preprocessor"></span>
196 <a name="l00977"></a><a class="code" href="group__dbprim__link.html#ga25">00977</a> <span class="preprocessor">#define le_object(elem) ((elem)-&gt;le_object)</span>
197 <a name="l00978"></a>00978 <span class="preprocessor"></span>
198 <a name="l00990"></a><a class="code" href="group__dbprim__link.html#ga26">00990</a> <span class="preprocessor">#define le_head(elem) ((elem)-&gt;le_head)</span>
199 <a name="l00991"></a>00991 <span class="preprocessor"></span>
200 <a name="l01003"></a><a class="code" href="group__dbprim__link.html#ga27">01003</a> <span class="preprocessor">#define le_flags(elem) ((elem)-&gt;le_flags)</span>
201 <a name="l01004"></a>01004 <span class="preprocessor"></span>
202 <a name="l01019"></a>01019 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__link.html#ga12">le_init</a>(link_elem_t *elem, <span class="keywordtype">void</span> *object);
203 <a name="l01020"></a>01020
204 <a name="l01034"></a>01034 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga7">hash_fnv1</a>(hash_table_t *table, db_key_t *key);
205 <a name="l01035"></a>01035
206 <a name="l01049"></a>01049 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga8">hash_fnv1a</a>(hash_table_t *table, db_key_t *key);
207 <a name="l01050"></a>01050
208 <a name="l01063"></a>01063 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga9">hash_comp</a>(hash_table_t *table, db_key_t *key1, db_key_t *key2);
209 <a name="l01064"></a>01064
210 <a name="l01071"></a><a class="code" href="struct__hash__table__s.html">01071</a> <span class="keyword">struct </span><a class="code" href="struct__hash__table__s.html">_hash_table_s</a> {
211 <a name="l01072"></a><a class="code" href="struct__hash__table__s.html#o0">01072</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o0">ht_magic</a>;
212 <a name="l01073"></a><a class="code" href="struct__hash__table__s.html#o1">01073</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o1">ht_flags</a>;
213 <a name="l01074"></a><a class="code" href="struct__hash__table__s.html#o2">01074</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o2">ht_modulus</a>;
214 <a name="l01076"></a><a class="code" href="struct__hash__table__s.html#o3">01076</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o3">ht_count</a>;
215 <a name="l01077"></a><a class="code" href="struct__hash__table__s.html#o4">01077</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o4">ht_rollover</a>;
216 <a name="l01078"></a><a class="code" href="struct__hash__table__s.html#o5">01078</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__table__s.html#o5">ht_rollunder</a>;
217 <a name="l01079"></a><a class="code" href="struct__hash__table__s.html#o6">01079</a> link_head_t *<a class="code" href="struct__hash__table__s.html#o6">ht_table</a>;
218 <a name="l01080"></a><a class="code" href="struct__hash__table__s.html#o7">01080</a> <a class="code" href="group__dbprim__hash.html#ga4">hash_func_t</a> <a class="code" href="struct__hash__table__s.html#o7">ht_func</a>;
219 <a name="l01081"></a><a class="code" href="struct__hash__table__s.html#o8">01081</a> <a class="code" href="group__dbprim__hash.html#ga5">hash_comp_t</a> <a class="code" href="struct__hash__table__s.html#o8">ht_comp</a>;
220 <a name="l01082"></a><a class="code" href="struct__hash__table__s.html#o9">01082</a> <a class="code" href="group__dbprim__hash.html#ga6">hash_resize_t</a> <a class="code" href="struct__hash__table__s.html#o9">ht_resize</a>;
221 <a name="l01083"></a><a class="code" href="struct__hash__table__s.html#o10">01083</a> <span class="keywordtype">void</span> *<a class="code" href="struct__hash__table__s.html#o10">ht_extra</a>;
222 <a name="l01084"></a>01084 };
223 <a name="l01085"></a>01085
224 <a name="l01092"></a><a class="code" href="group__dbprim__hash.html#ga22">01092</a> <span class="preprocessor">#define HASH_TABLE_MAGIC 0x2da7ffd9</span>
225 <a name="l01093"></a>01093 <span class="preprocessor"></span>
226 <a name="l01100"></a><a class="code" href="group__dbprim__hash.html#ga23">01100</a> <span class="preprocessor">#define HASH_FLAG_AUTOGROW 0x00000001 </span><span class="comment">/* let table automatically grow */</span>
227 <a name="l01101"></a>01101
228 <a name="l01108"></a><a class="code" href="group__dbprim__hash.html#ga24">01108</a> <span class="preprocessor">#define HASH_FLAG_AUTOSHRINK 0x00000002 </span><span class="comment">/* let table automatically shrink */</span>
229 <a name="l01109"></a>01109
230 <a name="l01116"></a><a class="code" href="group__dbprim__hash.html#ga25">01116</a> <span class="preprocessor">#define HASH_FLAG_MASK (HASH_FLAG_AUTOGROW | HASH_FLAG_AUTOSHRINK)</span>
231 <a name="l01117"></a>01117 <span class="preprocessor"></span>
232 <a name="l01124"></a><a class="code" href="dbprim_8h.html#a25">01124</a> <span class="preprocessor">#define HASH_FLAG_FREEZE 0x80000000 </span><span class="comment">/* hash table frozen */</span>
233 <a name="l01125"></a>01125
234 <a name="l01145"></a><a class="code" href="group__dbprim__hash.html#ga26">01145</a> <span class="preprocessor">#define HASH_TABLE_INIT(flags, func, comp, resize, extra) \</span>
235 <a name="l01146"></a>01146 <span class="preprocessor"> { HASH_TABLE_MAGIC, (flags) &amp; HASH_FLAG_MASK, 0, 0, 0, 0, 0, \</span>
236 <a name="l01147"></a>01147 <span class="preprocessor"> (func), (comp), (resize), (extra) }</span>
237 <a name="l01148"></a>01148 <span class="preprocessor"></span>
238 <a name="l01162"></a><a class="code" href="group__dbprim__hash.html#ga27">01162</a> <span class="preprocessor">#define ht_verify(table) ((table) &amp;&amp; \</span>
239 <a name="l01163"></a>01163 <span class="preprocessor"> (table)-&gt;ht_magic == HASH_TABLE_MAGIC)</span>
240 <a name="l01164"></a>01164 <span class="preprocessor"></span>
241 <a name="l01179"></a><a class="code" href="group__dbprim__hash.html#ga28">01179</a> <span class="preprocessor">#define ht_flags(table) ((table)-&gt;ht_flags)</span>
242 <a name="l01180"></a>01180 <span class="preprocessor"></span>
243 <a name="l01193"></a><a class="code" href="group__dbprim__hash.html#ga29">01193</a> <span class="preprocessor">#define ht_frozen(table) ((table)-&gt;ht_flags &amp; HASH_FLAG_FREEZE)</span>
244 <a name="l01194"></a>01194 <span class="preprocessor"></span>
245 <a name="l01208"></a><a class="code" href="group__dbprim__hash.html#ga30">01208</a> <span class="preprocessor">#define ht_modulus(table) ((table)-&gt;ht_modulus)</span>
246 <a name="l01209"></a>01209 <span class="preprocessor"></span>
247 <a name="l01221"></a><a class="code" href="group__dbprim__hash.html#ga31">01221</a> <span class="preprocessor">#define ht_count(table) ((table)-&gt;ht_count)</span>
248 <a name="l01222"></a>01222 <span class="preprocessor"></span>
249 <a name="l01232"></a><a class="code" href="group__dbprim__hash.html#ga32">01232</a> <span class="preprocessor">#define ht_func(table) ((table)-&gt;ht_func)</span>
250 <a name="l01233"></a>01233 <span class="preprocessor"></span>
251 <a name="l01243"></a><a class="code" href="group__dbprim__hash.html#ga33">01243</a> <span class="preprocessor">#define ht_comp(table) ((table)-&gt;ht_comp)</span>
252 <a name="l01244"></a>01244 <span class="preprocessor"></span>
253 <a name="l01254"></a><a class="code" href="group__dbprim__hash.html#ga34">01254</a> <span class="preprocessor">#define ht_rsize(table) ((table)-&gt;ht_resize)</span>
254 <a name="l01255"></a>01255 <span class="preprocessor"></span>
255 <a name="l01266"></a><a class="code" href="group__dbprim__hash.html#ga35">01266</a> <span class="preprocessor">#define ht_extra(table) ((table)-&gt;ht_extra)</span>
256 <a name="l01267"></a>01267 <span class="preprocessor"></span>
257 <a name="l01278"></a><a class="code" href="group__dbprim__hash.html#ga36">01278</a> <span class="preprocessor">#define ht_size(table) ((table)-&gt;ht_modulus * sizeof(link_head_t))</span>
258 <a name="l01279"></a>01279 <span class="preprocessor"></span>
259 <a name="l01310"></a>01310 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga10">ht_init</a>(hash_table_t *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags,
260 <a name="l01311"></a>01311 <a class="code" href="group__dbprim__hash.html#ga4">hash_func_t</a> func, <a class="code" href="group__dbprim__hash.html#ga5">hash_comp_t</a> comp,
261 <a name="l01312"></a>01312 <a class="code" href="group__dbprim__hash.html#ga6">hash_resize_t</a> resize, <span class="keywordtype">void</span> *extra,
262 <a name="l01313"></a>01313 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> init_mod);
263 <a name="l01314"></a>01314
264 <a name="l01337"></a>01337 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga11">ht_add</a>(hash_table_t *table, hash_entry_t *entry, db_key_t *key);
265 <a name="l01338"></a>01338
266 <a name="l01360"></a>01360 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga12">ht_move</a>(hash_table_t *table, hash_entry_t *entry, db_key_t *key);
267 <a name="l01361"></a>01361
268 <a name="l01379"></a>01379 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga13">ht_remove</a>(hash_table_t *table, hash_entry_t *entry);
269 <a name="l01380"></a>01380
270 <a name="l01397"></a>01397 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga14">ht_find</a>(hash_table_t *table, hash_entry_t **entry_p,
271 <a name="l01398"></a>01398 db_key_t *key);
272 <a name="l01399"></a>01399
273 <a name="l01420"></a>01420 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga15">ht_iter</a>(hash_table_t *table, <a class="code" href="group__dbprim__hash.html#ga3">hash_iter_t</a> iter_func, <span class="keywordtype">void</span> *extra);
274 <a name="l01421"></a>01421
275 <a name="l01444"></a>01444 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga16">ht_flush</a>(hash_table_t *table, <a class="code" href="group__dbprim__hash.html#ga3">hash_iter_t</a> flush_func,
276 <a name="l01445"></a>01445 <span class="keywordtype">void</span> *extra);
277 <a name="l01446"></a>01446
278 <a name="l01465"></a>01465 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga17">ht_resize</a>(hash_table_t *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> new_size);
279 <a name="l01466"></a>01466
280 <a name="l01479"></a>01479 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga18">ht_free</a>(hash_table_t *table);
281 <a name="l01480"></a>01480
282 <a name="l01487"></a><a class="code" href="struct__hash__entry__s.html">01487</a> <span class="keyword">struct </span><a class="code" href="struct__hash__entry__s.html">_hash_entry_s</a> {
283 <a name="l01488"></a><a class="code" href="struct__hash__entry__s.html#o0">01488</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__entry__s.html#o0">he_magic</a>;
284 <a name="l01489"></a><a class="code" href="struct__hash__entry__s.html#o1">01489</a> link_elem_t <a class="code" href="struct__hash__entry__s.html#o1">he_elem</a>;
285 <a name="l01490"></a><a class="code" href="struct__hash__entry__s.html#o2">01490</a> hash_table_t *<a class="code" href="struct__hash__entry__s.html#o2">he_table</a>;
286 <a name="l01491"></a><a class="code" href="struct__hash__entry__s.html#o3">01491</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__hash__entry__s.html#o3">he_hash</a>;
287 <a name="l01492"></a><a class="code" href="struct__hash__entry__s.html#o4">01492</a> db_key_t <a class="code" href="struct__hash__entry__s.html#o4">he_key</a>;
288 <a name="l01493"></a><a class="code" href="struct__hash__entry__s.html#o5">01493</a> <span class="keywordtype">void</span> *<a class="code" href="struct__hash__entry__s.html#o5">he_value</a>;
289 <a name="l01494"></a>01494 };
290 <a name="l01495"></a>01495
291 <a name="l01502"></a><a class="code" href="group__dbprim__hash.html#ga37">01502</a> <span class="preprocessor">#define HASH_ENTRY_MAGIC 0x35afaf51</span>
292 <a name="l01503"></a>01503 <span class="preprocessor"></span>
293 <a name="l01512"></a><a class="code" href="group__dbprim__hash.html#ga38">01512</a> <span class="preprocessor">#define HASH_ENTRY_INIT(value) \</span>
294 <a name="l01513"></a>01513 <span class="preprocessor"> { HASH_ENTRY_MAGIC, LINK_ELEM_INIT(0), 0, 0, DB_KEY_INIT(0, 0), (value) }</span>
295 <a name="l01514"></a>01514 <span class="preprocessor"></span>
296 <a name="l01528"></a><a class="code" href="group__dbprim__hash.html#ga39">01528</a> <span class="preprocessor">#define he_verify(entry) ((entry) &amp;&amp; \</span>
297 <a name="l01529"></a>01529 <span class="preprocessor"> (entry)-&gt;he_magic == HASH_ENTRY_MAGIC)</span>
298 <a name="l01530"></a>01530 <span class="preprocessor"></span>
299 <a name="l01543"></a><a class="code" href="group__dbprim__hash.html#ga40">01543</a> <span class="preprocessor">#define he_link(entry) (&amp;((entry)-&gt;he_elem))</span>
300 <a name="l01544"></a>01544 <span class="preprocessor"></span>
301 <a name="l01556"></a><a class="code" href="group__dbprim__hash.html#ga41">01556</a> <span class="preprocessor">#define he_flags(entry) ((entry)-&gt;he_elem.le_flags)</span>
302 <a name="l01557"></a>01557 <span class="preprocessor"></span>
303 <a name="l01567"></a><a class="code" href="group__dbprim__hash.html#ga42">01567</a> <span class="preprocessor">#define he_table(entry) ((entry)-&gt;he_table)</span>
304 <a name="l01568"></a>01568 <span class="preprocessor"></span>
305 <a name="l01581"></a><a class="code" href="group__dbprim__hash.html#ga43">01581</a> <span class="preprocessor">#define he_hash(entry) ((entry)-&gt;he_hash)</span>
306 <a name="l01582"></a>01582 <span class="preprocessor"></span>
307 <a name="l01592"></a><a class="code" href="group__dbprim__hash.html#ga44">01592</a> <span class="preprocessor">#define he_key(entry) (&amp;((entry)-&gt;he_key))</span>
308 <a name="l01593"></a>01593 <span class="preprocessor"></span>
309 <a name="l01606"></a><a class="code" href="group__dbprim__hash.html#ga45">01606</a> <span class="preprocessor">#define he_value(entry) ((entry)-&gt;he_value)</span>
310 <a name="l01607"></a>01607 <span class="preprocessor"></span>
311 <a name="l01621"></a>01621 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__hash.html#ga19">he_init</a>(hash_entry_t *entry, <span class="keywordtype">void</span> *value);
312 <a name="l01622"></a>01622
313 <a name="l01631"></a>01631 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga8">smat_cleanup</a>(<span class="keywordtype">void</span>);
314 <a name="l01632"></a>01632
315 <a name="l01642"></a>01642 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga9">smat_freemem</a>(<span class="keywordtype">void</span>);
316 <a name="l01643"></a>01643
317 <a name="l01656"></a><a class="code" href="group__dbprim__smat.html#ga32">01656</a> <span class="preprocessor">#define _smat_ent(ent) ((smat_entry_t *)le_object(ent))</span>
318 <a name="l01657"></a>01657 <span class="preprocessor"></span>
319 <a name="l01664"></a><a class="code" href="struct__smat__table__s.html">01664</a> <span class="keyword">struct </span><a class="code" href="struct__smat__table__s.html">_smat_table_s</a> {
320 <a name="l01665"></a><a class="code" href="struct__smat__table__s.html#o0">01665</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__smat__table__s.html#o0">st_magic</a>;
321 <a name="l01666"></a><a class="code" href="struct__smat__table__s.html#o1">01666</a> <a class="code" href="group__dbprim__smat.html#ga3">smat_resize_t</a> <a class="code" href="struct__smat__table__s.html#o1">st_resize</a>;
322 <a name="l01667"></a><a class="code" href="struct__smat__table__s.html#o2">01667</a> <span class="keywordtype">void</span> *<a class="code" href="struct__smat__table__s.html#o2">st_extra</a>;
323 <a name="l01668"></a><a class="code" href="struct__smat__table__s.html#o3">01668</a> hash_table_t <a class="code" href="struct__smat__table__s.html#o3">st_table</a>;
324 <a name="l01669"></a>01669 };
325 <a name="l01670"></a>01670
326 <a name="l01678"></a><a class="code" href="group__dbprim__smat.html#ga33">01678</a> <span class="preprocessor">#define SMAT_TABLE_MAGIC 0x2f92a7b1</span>
327 <a name="l01679"></a>01679 <span class="preprocessor"></span>
328 <a name="l01693"></a><a class="code" href="group__dbprim__smat.html#ga34">01693</a> <span class="preprocessor">#define st_verify(table) ((table) &amp;&amp; \</span>
329 <a name="l01694"></a>01694 <span class="preprocessor"> (table)-&gt;st_magic == SMAT_TABLE_MAGIC)</span>
330 <a name="l01695"></a>01695 <span class="preprocessor"></span>
331 <a name="l01710"></a><a class="code" href="group__dbprim__smat.html#ga35">01710</a> <span class="preprocessor">#define st_flags(table) ((table)-&gt;st_table.ht_flags)</span>
332 <a name="l01711"></a>01711 <span class="preprocessor"></span>
333 <a name="l01724"></a><a class="code" href="group__dbprim__smat.html#ga36">01724</a> <span class="preprocessor">#define st_frozen(table) ((table)-&gt;st_table.ht_flags &amp; HASH_FLAG_FREEZE)</span>
334 <a name="l01725"></a>01725 <span class="preprocessor"></span>
335 <a name="l01739"></a><a class="code" href="group__dbprim__smat.html#ga37">01739</a> <span class="preprocessor">#define st_modulus(table) ((table)-&gt;st_table.ht_modulus)</span>
336 <a name="l01740"></a>01740 <span class="preprocessor"></span>
337 <a name="l01752"></a><a class="code" href="group__dbprim__smat.html#ga38">01752</a> <span class="preprocessor">#define st_count(table) ((table)-&gt;st_table.ht_count)</span>
338 <a name="l01753"></a>01753 <span class="preprocessor"></span>
339 <a name="l01763"></a><a class="code" href="group__dbprim__hash.html#ga46">01763</a> <span class="preprocessor">#define st_rsize(table) ((table)-&gt;st_resize)</span>
340 <a name="l01764"></a>01764 <span class="preprocessor"></span>
341 <a name="l01775"></a><a class="code" href="group__dbprim__smat.html#ga39">01775</a> <span class="preprocessor">#define st_extra(table) ((table)-&gt;st_extra)</span>
342 <a name="l01776"></a>01776 <span class="preprocessor"></span>
343 <a name="l01791"></a><a class="code" href="group__dbprim__smat.html#ga40">01791</a> <span class="preprocessor">#define st_size(table) ((table)-&gt;st_table.ht_modulus * sizeof(link_head_t) + \</span>
344 <a name="l01792"></a>01792 <span class="preprocessor"> (table)-&gt;st_table.ht_count * sizeof(smat_entry_t))</span>
345 <a name="l01793"></a>01793 <span class="preprocessor"></span>
346 <a name="l01821"></a>01821 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga10">st_init</a>(smat_table_t *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags,
347 <a name="l01822"></a>01822 <a class="code" href="group__dbprim__smat.html#ga3">smat_resize_t</a> resize, <span class="keywordtype">void</span> *extra,
348 <a name="l01823"></a>01823 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> init_mod);
349 <a name="l01824"></a>01824
350 <a name="l01873"></a>01873 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga11">st_add</a>(smat_table_t *table, smat_entry_t **entry_p,
351 <a name="l01874"></a>01874 smat_head_t *head1, <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a> loc1, smat_entry_t *ent1,
352 <a name="l01875"></a>01875 smat_head_t *head2, <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a> loc2, smat_entry_t *ent2);
353 <a name="l01876"></a>01876
354 <a name="l01892"></a>01892 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga12">st_remove</a>(smat_table_t *table, smat_entry_t *entry);
355 <a name="l01893"></a>01893
356 <a name="l01915"></a>01915 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga13">st_find</a>(smat_table_t *table, smat_entry_t **entry_p,
357 <a name="l01916"></a>01916 smat_head_t *head1, smat_head_t *head2);
358 <a name="l01917"></a>01917
359 <a name="l01938"></a>01938 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga14">st_iter</a>(smat_table_t *table, <a class="code" href="group__dbprim__smat.html#ga4">smat_iter_t</a> iter_func, <span class="keywordtype">void</span> *extra);
360 <a name="l01939"></a>01939
361 <a name="l01962"></a>01962 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga15">st_flush</a>(smat_table_t *table, <a class="code" href="group__dbprim__smat.html#ga4">smat_iter_t</a> flush_func,
362 <a name="l01963"></a>01963 <span class="keywordtype">void</span> *extra);
363 <a name="l01964"></a>01964
364 <a name="l01983"></a>01983 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga16">st_resize</a>(smat_table_t *table, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> new_size);
365 <a name="l01984"></a>01984
366 <a name="l01997"></a>01997 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga17">st_free</a>(smat_table_t *table);
367 <a name="l01998"></a>01998
368 <a name="l02005"></a><a class="code" href="struct__smat__head__s.html">02005</a> <span class="keyword">struct </span><a class="code" href="struct__smat__head__s.html">_smat_head_s</a> {
369 <a name="l02006"></a><a class="code" href="struct__smat__head__s.html#o0">02006</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__smat__head__s.html#o0">sh_magic</a>;
370 <a name="l02007"></a><a class="code" href="struct__smat__head__s.html#o1">02007</a> <a class="code" href="group__dbprim__smat.html#ga6">smat_loc_t</a> <a class="code" href="struct__smat__head__s.html#o1">sh_elem</a>;
371 <a name="l02008"></a><a class="code" href="struct__smat__head__s.html#o2">02008</a> smat_table_t *<a class="code" href="struct__smat__head__s.html#o2">sh_table</a>;
372 <a name="l02009"></a><a class="code" href="struct__smat__head__s.html#o3">02009</a> link_head_t <a class="code" href="struct__smat__head__s.html#o3">sh_head</a>;
373 <a name="l02010"></a>02010 };
374 <a name="l02011"></a>02011
375 <a name="l02019"></a><a class="code" href="group__dbprim__smat.html#ga41">02019</a> <span class="preprocessor">#define SMAT_HEAD_MAGIC 0x4e5d9b8e</span>
376 <a name="l02020"></a>02020 <span class="preprocessor"></span>
377 <a name="l02033"></a><a class="code" href="group__dbprim__smat.html#ga42">02033</a> <span class="preprocessor">#define SMAT_HEAD_INIT(elem, object) \</span>
378 <a name="l02034"></a>02034 <span class="preprocessor"> { SMAT_HEAD_MAGIC, (elem), 0, LINK_HEAD_INIT(object) }</span>
379 <a name="l02035"></a>02035 <span class="preprocessor"></span>
380 <a name="l02049"></a><a class="code" href="group__dbprim__smat.html#ga43">02049</a> <span class="preprocessor">#define sh_verify(head) ((head) &amp;&amp; \</span>
381 <a name="l02050"></a>02050 <span class="preprocessor"> (head)-&gt;sh_magic == SMAT_HEAD_MAGIC)</span>
382 <a name="l02051"></a>02051 <span class="preprocessor"></span>
383 <a name="l02062"></a><a class="code" href="group__dbprim__smat.html#ga44">02062</a> <span class="preprocessor">#define sh_elem(head) ((head)-&gt;sh_elem)</span>
384 <a name="l02063"></a>02063 <span class="preprocessor"></span>
385 <a name="l02074"></a><a class="code" href="group__dbprim__smat.html#ga45">02074</a> <span class="preprocessor">#define sh_table(head) ((head)-&gt;sh_table)</span>
386 <a name="l02075"></a>02075 <span class="preprocessor"></span>
387 <a name="l02088"></a><a class="code" href="group__dbprim__smat.html#ga46">02088</a> <span class="preprocessor">#define sh_frozen(head) (st_frozen((head)-&gt;sh_table))</span>
388 <a name="l02089"></a>02089 <span class="preprocessor"></span>
389 <a name="l02101"></a><a class="code" href="group__dbprim__smat.html#ga47">02101</a> <span class="preprocessor">#define sh_count(head) ((head)-&gt;sh_head.lh_count)</span>
390 <a name="l02102"></a>02102 <span class="preprocessor"></span>
391 <a name="l02115"></a><a class="code" href="group__dbprim__smat.html#ga48">02115</a> <span class="preprocessor">#define _sh_first(head) ((head)-&gt;sh_head.lh_first)</span>
392 <a name="l02116"></a>02116 <span class="preprocessor"></span>
393 <a name="l02129"></a><a class="code" href="group__dbprim__smat.html#ga49">02129</a> <span class="preprocessor">#define sh_first(head) (_sh_first(head) ? _smat_ent(_sh_first(head)) : 0)</span>
394 <a name="l02130"></a>02130 <span class="preprocessor"></span>
395 <a name="l02143"></a><a class="code" href="group__dbprim__smat.html#ga50">02143</a> <span class="preprocessor">#define _sh_last(head) ((head)-&gt;sh_head.lh_last)</span>
396 <a name="l02144"></a>02144 <span class="preprocessor"></span>
397 <a name="l02157"></a><a class="code" href="group__dbprim__smat.html#ga51">02157</a> <span class="preprocessor">#define sh_last(head) (_sh_last(head) ? _smat_ent(_sh_last(head)) : 0)</span>
398 <a name="l02158"></a>02158 <span class="preprocessor"></span>
399 <a name="l02169"></a><a class="code" href="group__dbprim__smat.html#ga52">02169</a> <span class="preprocessor">#define sh_object(head) ((head)-&gt;sh_head.lh_extra)</span>
400 <a name="l02170"></a>02170 <span class="preprocessor"></span>
401 <a name="l02185"></a><a class="code" href="group__dbprim__smat.html#ga53">02185</a> <span class="preprocessor">#define sh_size(head) ((head)-&gt;sh_elem.lh_count * sizeof(smat_entry_t))</span>
402 <a name="l02186"></a>02186 <span class="preprocessor"></span>
403 <a name="l02204"></a>02204 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga18">sh_init</a>(smat_head_t *head, <a class="code" href="group__dbprim__smat.html#ga6">smat_loc_t</a> elem, <span class="keywordtype">void</span> *object);
404 <a name="l02205"></a>02205
405 <a name="l02231"></a>02231 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga19">sh_move</a>(smat_head_t *head, smat_entry_t *elem, <a class="code" href="group__dbprim__link.html#ga4">link_loc_t</a> loc,
406 <a name="l02232"></a>02232 smat_entry_t *elem2);
407 <a name="l02233"></a>02233
408 <a name="l02261"></a>02261 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga20">sh_find</a>(smat_head_t *head, smat_entry_t **elem_p,
409 <a name="l02262"></a>02262 <a class="code" href="group__dbprim__smat.html#ga5">smat_comp_t</a> comp_func, smat_entry_t *start,
410 <a name="l02263"></a>02263 db_key_t *key);
411 <a name="l02264"></a>02264
412 <a name="l02294"></a>02294 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga21">sh_iter</a>(smat_head_t *head, smat_entry_t *start,
413 <a name="l02295"></a>02295 <a class="code" href="group__dbprim__smat.html#ga4">smat_iter_t</a> iter_func, <span class="keywordtype">void</span> *extra, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
414 <a name="l02296"></a>02296
415 <a name="l02319"></a>02319 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__smat.html#ga22">sh_flush</a>(smat_head_t *head, <a class="code" href="group__dbprim__smat.html#ga4">smat_iter_t</a> flush_func, <span class="keywordtype">void</span> *extra);
416 <a name="l02320"></a>02320
417 <a name="l02327"></a><a class="code" href="struct__smat__entry__s.html">02327</a> <span class="keyword">struct </span><a class="code" href="struct__smat__entry__s.html">_smat_entry_s</a> {
418 <a name="l02328"></a><a class="code" href="struct__smat__entry__s.html#o0">02328</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__smat__entry__s.html#o0">se_magic</a>;
419 <a name="l02329"></a><a class="code" href="struct__smat__entry__s.html#o1">02329</a> smat_table_t *<a class="code" href="struct__smat__entry__s.html#o1">se_table</a>;
420 <a name="l02330"></a><a class="code" href="struct__smat__entry__s.html#o2">02330</a> hash_entry_t <a class="code" href="struct__smat__entry__s.html#o2">se_hash</a>;
421 <a name="l02331"></a><a class="code" href="struct__smat__entry__s.html#o3">02331</a> link_elem_t <a class="code" href="struct__smat__entry__s.html#o3">se_link</a>[2];
422 <a name="l02332"></a><a class="code" href="struct__smat__entry__s.html#o4">02332</a> <span class="keywordtype">void</span> *<a class="code" href="struct__smat__entry__s.html#o4">se_object</a>[2];
423 <a name="l02333"></a>02333 };
424 <a name="l02334"></a>02334
425 <a name="l02342"></a><a class="code" href="group__dbprim__smat.html#ga54">02342</a> <span class="preprocessor">#define SMAT_ENTRY_MAGIC 0x466b34b5</span>
426 <a name="l02343"></a>02343 <span class="preprocessor"></span>
427 <a name="l02357"></a><a class="code" href="group__dbprim__smat.html#ga55">02357</a> <span class="preprocessor">#define se_verify(entry) ((entry) &amp;&amp; \</span>
428 <a name="l02358"></a>02358 <span class="preprocessor"> (entry)-&gt;se_magic == SMAT_ENTRY_MAGIC)</span>
429 <a name="l02359"></a>02359 <span class="preprocessor"></span>
430 <a name="l02370"></a><a class="code" href="group__dbprim__smat.html#ga56">02370</a> <span class="preprocessor">#define se_table(entry) ((entry)-&gt;se_table)</span>
431 <a name="l02371"></a>02371 <span class="preprocessor"></span>
432 <a name="l02383"></a><a class="code" href="group__dbprim__smat.html#ga57">02383</a> <span class="preprocessor">#define _se_link(entry) (&amp;((entry)-&gt;se_hash.he_elem))</span>
433 <a name="l02384"></a>02384 <span class="preprocessor"></span>
434 <a name="l02396"></a><a class="code" href="group__dbprim__smat.html#ga58">02396</a> <span class="preprocessor">#define se_flags(entry) ((entry)-&gt;se_hash.he_elem.le_flags)</span>
435 <a name="l02397"></a>02397 <span class="preprocessor"></span>
436 <a name="l02410"></a><a class="code" href="group__dbprim__smat.html#ga59">02410</a> <span class="preprocessor">#define se_hash(entry) ((entry)-&gt;se_hash.he_hash)</span>
437 <a name="l02411"></a>02411 <span class="preprocessor"></span>
438 <a name="l02427"></a><a class="code" href="group__dbprim__smat.html#ga60">02427</a> <span class="preprocessor">#define _se_next(entry, n) ((entry)-&gt;se_link[(n)].le_next)</span>
439 <a name="l02428"></a>02428 <span class="preprocessor"></span>
440 <a name="l02445"></a><a class="code" href="group__dbprim__smat.html#ga61">02445</a> <span class="preprocessor">#define se_next(entry, n) (_se_next(entry, n) ? \</span>
441 <a name="l02446"></a>02446 <span class="preprocessor"> _smat_ent(_se_next(entry, n)) : 0)</span>
442 <a name="l02447"></a>02447 <span class="preprocessor"></span>
443 <a name="l02463"></a><a class="code" href="group__dbprim__smat.html#ga62">02463</a> <span class="preprocessor">#define _se_prev(entry, n) ((entry)-&gt;se_link[(n)].le_prev)</span>
444 <a name="l02464"></a>02464 <span class="preprocessor"></span>
445 <a name="l02481"></a><a class="code" href="group__dbprim__smat.html#ga63">02481</a> <span class="preprocessor">#define se_prev(entry, n) (_se_prev(entry, n) ? \</span>
446 <a name="l02482"></a>02482 <span class="preprocessor"> _smat_ent(_se_prev(entry, n)) : 0)</span>
447 <a name="l02483"></a>02483 <span class="preprocessor"></span>
448 <a name="l02499"></a><a class="code" href="group__dbprim__smat.html#ga64">02499</a> <span class="preprocessor">#define se_lflags(entry, n) ((entry)-&gt;se_link[(n)].le_flags)</span>
449 <a name="l02500"></a>02500 <span class="preprocessor"></span>
450 <a name="l02515"></a><a class="code" href="group__dbprim__smat.html#ga65">02515</a> <span class="preprocessor">#define se_object(entry, n) ((entry)-&gt;se_object[(n)])</span>
451 <a name="l02516"></a>02516 <span class="preprocessor"></span>
452 <a name="l02531"></a>02531 <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga5">rbtree_comp</a>(rb_tree_t *tree, db_key_t *key1, db_key_t *key2);
453 <a name="l02532"></a>02532
454 <a name="l02539"></a><a class="code" href="struct__rb__tree__s.html">02539</a> <span class="keyword">struct </span><a class="code" href="struct__rb__tree__s.html">_rb_tree_s</a> {
455 <a name="l02540"></a><a class="code" href="struct__rb__tree__s.html#o0">02540</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__rb__tree__s.html#o0">rt_magic</a>;
456 <a name="l02541"></a><a class="code" href="struct__rb__tree__s.html#o1">02541</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__rb__tree__s.html#o1">rt_flags</a>;
457 <a name="l02542"></a><a class="code" href="struct__rb__tree__s.html#o2">02542</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__rb__tree__s.html#o2">rt_count</a>;
458 <a name="l02543"></a><a class="code" href="struct__rb__tree__s.html#o3">02543</a> rb_node_t *<a class="code" href="struct__rb__tree__s.html#o3">rt_root</a>;
459 <a name="l02544"></a><a class="code" href="struct__rb__tree__s.html#o4">02544</a> <a class="code" href="group__dbprim__rbtree.html#ga3">rb_comp_t</a> <a class="code" href="struct__rb__tree__s.html#o4">rt_comp</a>;
460 <a name="l02545"></a><a class="code" href="struct__rb__tree__s.html#o5">02545</a> <span class="keywordtype">void</span> *<a class="code" href="struct__rb__tree__s.html#o5">rt_extra</a>;
461 <a name="l02546"></a>02546 };
462 <a name="l02547"></a>02547
463 <a name="l02554"></a><a class="code" href="group__dbprim__rbtree.html#ga17">02554</a> <span class="preprocessor">#define RB_TREE_MAGIC 0xd52695be</span>
464 <a name="l02555"></a>02555 <span class="preprocessor"></span>
465 <a name="l02562"></a><a class="code" href="dbprim_8h.html#a82">02562</a> <span class="preprocessor">#define RBT_FLAG_FREEZE 0x80000000 </span><span class="comment">/* tree frozen */</span>
466 <a name="l02563"></a>02563
467 <a name="l02574"></a><a class="code" href="group__dbprim__rbtree.html#ga18">02574</a> <span class="preprocessor">#define RB_TREE_INIT(comp, extra) { RB_TREE_MAGIC, 0, 0, 0, (comp), (extra) }</span>
468 <a name="l02575"></a>02575 <span class="preprocessor"></span>
469 <a name="l02589"></a><a class="code" href="group__dbprim__rbtree.html#ga19">02589</a> <span class="preprocessor">#define rt_verify(tree) ((tree) &amp;&amp; \</span>
470 <a name="l02590"></a>02590 <span class="preprocessor"> (tree)-&gt;rt_magic == RB_TREE_MAGIC)</span>
471 <a name="l02591"></a>02591 <span class="preprocessor"></span>
472 <a name="l02604"></a><a class="code" href="group__dbprim__rbtree.html#ga20">02604</a> <span class="preprocessor">#define rt_frozen(tree) ((tree)-&gt;rt_flags &amp; RBT_FLAG_FREEZE)</span>
473 <a name="l02605"></a>02605 <span class="preprocessor"></span>
474 <a name="l02617"></a><a class="code" href="group__dbprim__rbtree.html#ga21">02617</a> <span class="preprocessor">#define rt_count(tree) ((tree)-&gt;rt_count)</span>
475 <a name="l02618"></a>02618 <span class="preprocessor"></span>
476 <a name="l02628"></a><a class="code" href="group__dbprim__rbtree.html#ga22">02628</a> <span class="preprocessor">#define rt_root(tree) ((tree)-&gt;rt_root)</span>
477 <a name="l02629"></a>02629 <span class="preprocessor"></span>
478 <a name="l02639"></a><a class="code" href="group__dbprim__rbtree.html#ga23">02639</a> <span class="preprocessor">#define rt_comp(tree) ((tree)-&gt;rt_comp)</span>
479 <a name="l02640"></a>02640 <span class="preprocessor"></span>
480 <a name="l02651"></a><a class="code" href="group__dbprim__rbtree.html#ga24">02651</a> <span class="preprocessor">#define rt_extra(tree) ((tree)-&gt;rt_extra)</span>
481 <a name="l02652"></a>02652 <span class="preprocessor"></span>
482 <a name="l02659"></a><a class="code" href="group__dbprim__rbtree.html#ga25">02659</a> <span class="preprocessor">#define RBT_ORDER_PRE 1</span>
483 <a name="l02660"></a>02660 <span class="preprocessor"></span>
484 <a name="l02667"></a><a class="code" href="group__dbprim__rbtree.html#ga26">02667</a> <span class="preprocessor">#define RBT_ORDER_IN 2</span>
485 <a name="l02668"></a>02668 <span class="preprocessor"></span>
486 <a name="l02675"></a><a class="code" href="group__dbprim__rbtree.html#ga27">02675</a> <span class="preprocessor">#define RBT_ORDER_POST 3</span>
487 <a name="l02676"></a>02676 <span class="preprocessor"></span>
488 <a name="l02682"></a><a class="code" href="group__dbprim__rbtree.html#ga28">02682</a> <span class="preprocessor">#define RBT_ORDER_MASK 0x00000003</span>
489 <a name="l02683"></a>02683 <span class="preprocessor"></span>
490 <a name="l02705"></a><a class="code" href="group__dbprim__rbtree.html#ga29">02705</a> <span class="preprocessor">#define rt_prev(tree, node_io, flags) \</span>
491 <a name="l02706"></a>02706 <span class="preprocessor"> (rt_next((tree), (node_io), (flags) ^ DB_FLAG_REVERSE))</span>
492 <a name="l02707"></a>02707 <span class="preprocessor"></span>
493 <a name="l02722"></a>02722 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga6">rt_init</a>(rb_tree_t *tree, <a class="code" href="group__dbprim__rbtree.html#ga3">rb_comp_t</a> comp, <span class="keywordtype">void</span> *extra);
494 <a name="l02723"></a>02723
495 <a name="l02741"></a>02741 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga7">rt_add</a>(rb_tree_t *tree, rb_node_t *node, db_key_t *key);
496 <a name="l02742"></a>02742
497 <a name="l02764"></a>02764 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga8">rt_move</a>(rb_tree_t *tree, rb_node_t *node, db_key_t *key);
498 <a name="l02765"></a>02765
499 <a name="l02781"></a>02781 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga9">rt_remove</a>(rb_tree_t *tree, rb_node_t *node);
500 <a name="l02782"></a>02782
501 <a name="l02799"></a>02799 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga10">rt_find</a>(rb_tree_t *tree, rb_node_t **node_p, db_key_t *key);
502 <a name="l02800"></a>02800
503 <a name="l02825"></a>02825 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga11">rt_next</a>(rb_tree_t *tree, rb_node_t **node_io,
504 <a name="l02826"></a>02826 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
505 <a name="l02827"></a>02827
506 <a name="l02859"></a>02859 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga12">rt_iter</a>(rb_tree_t *tree, rb_node_t *start,
507 <a name="l02860"></a>02860 <a class="code" href="group__dbprim__rbtree.html#ga2">rb_iter_t</a> iter_func, <span class="keywordtype">void</span> *extra, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
508 <a name="l02861"></a>02861
509 <a name="l02883"></a>02883 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga13">rt_flush</a>(rb_tree_t *tree, <a class="code" href="group__dbprim__rbtree.html#ga2">rb_iter_t</a> flush_func, <span class="keywordtype">void</span> *extra);
510 <a name="l02884"></a>02884
511 <a name="l02891"></a><a class="code" href="struct__rb__node__s.html">02891</a> <span class="keyword">struct </span><a class="code" href="struct__rb__node__s.html">_rb_node_s</a> {
512 <a name="l02892"></a><a class="code" href="struct__rb__node__s.html#o0">02892</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="struct__rb__node__s.html#o0">rn_magic</a>;
513 <a name="l02893"></a><a class="code" href="struct__rb__node__s.html#o1">02893</a> <a class="code" href="group__dbprim__rbtree.html#ga4">rb_color_t</a> <a class="code" href="struct__rb__node__s.html#o1">rn_color</a>;
514 <a name="l02894"></a><a class="code" href="struct__rb__node__s.html#o2">02894</a> rb_tree_t *<a class="code" href="struct__rb__node__s.html#o2">rn_tree</a>;
515 <a name="l02895"></a><a class="code" href="struct__rb__node__s.html#o3">02895</a> rb_node_t *<a class="code" href="struct__rb__node__s.html#o3">rn_parent</a>;
516 <a name="l02896"></a><a class="code" href="struct__rb__node__s.html#o4">02896</a> rb_node_t *<a class="code" href="struct__rb__node__s.html#o4">rn_left</a>;
517 <a name="l02897"></a><a class="code" href="struct__rb__node__s.html#o5">02897</a> rb_node_t *<a class="code" href="struct__rb__node__s.html#o5">rn_right</a>;
518 <a name="l02898"></a><a class="code" href="struct__rb__node__s.html#o6">02898</a> db_key_t <a class="code" href="struct__rb__node__s.html#o6">rn_key</a>;
519 <a name="l02899"></a><a class="code" href="struct__rb__node__s.html#o7">02899</a> <span class="keywordtype">void</span> *<a class="code" href="struct__rb__node__s.html#o7">rn_value</a>;
520 <a name="l02900"></a>02900 };
521 <a name="l02901"></a>02901
522 <a name="l02908"></a><a class="code" href="group__dbprim__rbtree.html#ga30">02908</a> <span class="preprocessor">#define RB_NODE_MAGIC 0x3dea4d01</span>
523 <a name="l02909"></a>02909 <span class="preprocessor"></span>
524 <a name="l02918"></a><a class="code" href="group__dbprim__rbtree.html#ga31">02918</a> <span class="preprocessor">#define RB_NODE_INIT(value) \</span>
525 <a name="l02919"></a>02919 <span class="preprocessor"> { RB_NODE_MAGIC, RB_COLOR_NONE, 0, 0, 0, 0, DB_KEY_INIT(0, 0), (value)}</span>
526 <a name="l02920"></a>02920 <span class="preprocessor"></span>
527 <a name="l02934"></a><a class="code" href="group__dbprim__rbtree.html#ga32">02934</a> <span class="preprocessor">#define rn_verify(node) ((node) &amp;&amp; \</span>
528 <a name="l02935"></a>02935 <span class="preprocessor"> (node)-&gt;rn_magic == RB_NODE_MAGIC)</span>
529 <a name="l02936"></a>02936 <span class="preprocessor"></span>
530 <a name="l02947"></a><a class="code" href="group__dbprim__rbtree.html#ga33">02947</a> <span class="preprocessor">#define rn_color(node) ((node)-&gt;rn_color)</span>
531 <a name="l02948"></a>02948 <span class="preprocessor"></span>
532 <a name="l02959"></a><a class="code" href="group__dbprim__rbtree.html#ga34">02959</a> <span class="preprocessor">#define rn_tree(node) ((node)-&gt;rn_tree)</span>
533 <a name="l02960"></a>02960 <span class="preprocessor"></span>
534 <a name="l02971"></a><a class="code" href="group__dbprim__rbtree.html#ga35">02971</a> <span class="preprocessor">#define rn_parent(node) ((node)-&gt;rn_parent)</span>
535 <a name="l02972"></a>02972 <span class="preprocessor"></span>
536 <a name="l02983"></a><a class="code" href="group__dbprim__rbtree.html#ga36">02983</a> <span class="preprocessor">#define rn_left(node) ((node)-&gt;rn_left)</span>
537 <a name="l02984"></a>02984 <span class="preprocessor"></span>
538 <a name="l02995"></a><a class="code" href="group__dbprim__rbtree.html#ga37">02995</a> <span class="preprocessor">#define rn_right(node) ((node)-&gt;rn_right)</span>
539 <a name="l02996"></a>02996 <span class="preprocessor"></span>
540 <a name="l03007"></a><a class="code" href="group__dbprim__rbtree.html#ga38">03007</a> <span class="preprocessor">#define rn_key(node) (&amp;((node)-&gt;rn_key))</span>
541 <a name="l03008"></a>03008 <span class="preprocessor"></span>
542 <a name="l03021"></a><a class="code" href="group__dbprim__rbtree.html#ga39">03021</a> <span class="preprocessor">#define rn_value(node) ((node)-&gt;rn_value)</span>
543 <a name="l03022"></a>03022 <span class="preprocessor"></span>
544 <a name="l03036"></a><a class="code" href="group__dbprim__rbtree.html#ga40">03036</a> <span class="preprocessor">#define rn_isblack(node) (!(node) || (node)-&gt;rn_color == RB_COLOR_BLACK)</span>
545 <a name="l03037"></a>03037 <span class="preprocessor"></span>
546 <a name="l03051"></a><a class="code" href="group__dbprim__rbtree.html#ga41">03051</a> <span class="preprocessor">#define rn_isred(node) ((node) &amp;&amp; (node)-&gt;rn_color == RB_COLOR_RED)</span>
547 <a name="l03052"></a>03052 <span class="preprocessor"></span>
548 <a name="l03067"></a><a class="code" href="group__dbprim__rbtree.html#ga42">03067</a> <span class="preprocessor">#define rn_isleft(node) ((node)-&gt;rn_parent &amp;&amp; \</span>
549 <a name="l03068"></a>03068 <span class="preprocessor"> (node)-&gt;rn_parent-&gt;rn_left == (node))</span>
550 <a name="l03069"></a>03069 <span class="preprocessor"></span>
551 <a name="l03084"></a><a class="code" href="group__dbprim__rbtree.html#ga43">03084</a> <span class="preprocessor">#define rn_isright(node) ((node)-&gt;rn_parent &amp;&amp; \</span>
552 <a name="l03085"></a>03085 <span class="preprocessor"> (node)-&gt;rn_parent-&gt;rn_right == (node))</span>
553 <a name="l03086"></a>03086 <span class="preprocessor"></span>
554 <a name="l03100"></a>03100 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__dbprim__rbtree.html#ga14">rn_init</a>(rb_node_t *node, <span class="keywordtype">void</span> *value);
555 <a name="l03101"></a>03101
556 <a name="l03102"></a>03102 <a class="code" href="dbprim_8h.html#a1">DBPRIM_END_C_DECLS</a>
557 <a name="l03103"></a>03103
558 <a name="l03104"></a>03104 <span class="preprocessor">#endif </span><span class="comment">/* __include_dbprim_h__ */</span>
559 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Jul 15 14:10:33 2006 for DatabasePrimitivesLibrary by&nbsp;
560 <a href="http://www.doxygen.org/index.html">
561 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
562 </body>
563 </html>