gtl-parsley-ruby 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. data/CHANGELOG +3 -0
  2. data/README +32 -0
  3. data/Rakefile +57 -0
  4. data/VERSION +1 -0
  5. data/ext/cparsley.c +152 -0
  6. data/ext/extconf.rb +82 -0
  7. data/ext/parsley/.gitignore +32 -0
  8. data/ext/parsley/AUTHORS +1 -0
  9. data/ext/parsley/ChangeLog +0 -0
  10. data/ext/parsley/HACKING +4 -0
  11. data/ext/parsley/INSTALL +73 -0
  12. data/ext/parsley/INTRO +84 -0
  13. data/ext/parsley/Makefile.am +80 -0
  14. data/ext/parsley/Makefile.in +1009 -0
  15. data/ext/parsley/NEWS +0 -0
  16. data/ext/parsley/PAPER +36 -0
  17. data/ext/parsley/Portfile +18 -0
  18. data/ext/parsley/Portfile.in +17 -0
  19. data/ext/parsley/README.C-LANG +92 -0
  20. data/ext/parsley/README.markdown +1 -0
  21. data/ext/parsley/TODO +39 -0
  22. data/ext/parsley/VERSION +1 -0
  23. data/ext/parsley/aclocal.m4 +8918 -0
  24. data/ext/parsley/bootstrap.sh +6 -0
  25. data/ext/parsley/config.guess +1561 -0
  26. data/ext/parsley/config.sub +1686 -0
  27. data/ext/parsley/configure +13437 -0
  28. data/ext/parsley/configure.ac +46 -0
  29. data/ext/parsley/depcomp +630 -0
  30. data/ext/parsley/functions.c +368 -0
  31. data/ext/parsley/functions.h +19 -0
  32. data/ext/parsley/generate_bisect.sh +12 -0
  33. data/ext/parsley/hooks/prepare-commit-msg +16 -0
  34. data/ext/parsley/install-sh +520 -0
  35. data/ext/parsley/json-c-0.9/AUTHORS +2 -0
  36. data/ext/parsley/json-c-0.9/COPYING +19 -0
  37. data/ext/parsley/json-c-0.9/ChangeLog +103 -0
  38. data/ext/parsley/json-c-0.9/INSTALL +302 -0
  39. data/ext/parsley/json-c-0.9/Makefile.am +43 -0
  40. data/ext/parsley/json-c-0.9/Makefile.in +800 -0
  41. data/ext/parsley/json-c-0.9/NEWS +1 -0
  42. data/ext/parsley/json-c-0.9/README +20 -0
  43. data/ext/parsley/json-c-0.9/README-WIN32.html +57 -0
  44. data/ext/parsley/json-c-0.9/README.html +32 -0
  45. data/ext/parsley/json-c-0.9/aclocal.m4 +8909 -0
  46. data/ext/parsley/json-c-0.9/arraylist.c +94 -0
  47. data/ext/parsley/json-c-0.9/arraylist.h +53 -0
  48. data/ext/parsley/json-c-0.9/bits.h +27 -0
  49. data/ext/parsley/json-c-0.9/config.guess +1561 -0
  50. data/ext/parsley/json-c-0.9/config.h +125 -0
  51. data/ext/parsley/json-c-0.9/config.h.in +124 -0
  52. data/ext/parsley/json-c-0.9/config.h.win32 +94 -0
  53. data/ext/parsley/json-c-0.9/config.sub +1686 -0
  54. data/ext/parsley/json-c-0.9/configure +13084 -0
  55. data/ext/parsley/json-c-0.9/configure.in +33 -0
  56. data/ext/parsley/json-c-0.9/debug.c +98 -0
  57. data/ext/parsley/json-c-0.9/debug.h +50 -0
  58. data/ext/parsley/json-c-0.9/depcomp +630 -0
  59. data/ext/parsley/json-c-0.9/doc/html/annotated.html +40 -0
  60. data/ext/parsley/json-c-0.9/doc/html/arraylist_8h.html +240 -0
  61. data/ext/parsley/json-c-0.9/doc/html/bits_8h.html +150 -0
  62. data/ext/parsley/json-c-0.9/doc/html/classes.html +36 -0
  63. data/ext/parsley/json-c-0.9/doc/html/config_8h.html +612 -0
  64. data/ext/parsley/json-c-0.9/doc/html/debug_8h.html +392 -0
  65. data/ext/parsley/json-c-0.9/doc/html/doxygen.css +441 -0
  66. data/ext/parsley/json-c-0.9/doc/html/doxygen.png +0 -0
  67. data/ext/parsley/json-c-0.9/doc/html/files.html +42 -0
  68. data/ext/parsley/json-c-0.9/doc/html/functions.html +206 -0
  69. data/ext/parsley/json-c-0.9/doc/html/functions_vars.html +206 -0
  70. data/ext/parsley/json-c-0.9/doc/html/globals.html +459 -0
  71. data/ext/parsley/json-c-0.9/doc/html/globals_defs.html +202 -0
  72. data/ext/parsley/json-c-0.9/doc/html/globals_enum.html +50 -0
  73. data/ext/parsley/json-c-0.9/doc/html/globals_eval.html +135 -0
  74. data/ext/parsley/json-c-0.9/doc/html/globals_func.html +194 -0
  75. data/ext/parsley/json-c-0.9/doc/html/globals_type.html +70 -0
  76. data/ext/parsley/json-c-0.9/doc/html/globals_vars.html +50 -0
  77. data/ext/parsley/json-c-0.9/doc/html/index.html +25 -0
  78. data/ext/parsley/json-c-0.9/doc/html/json_8h.html +32 -0
  79. data/ext/parsley/json-c-0.9/doc/html/json__object_8h.html +1150 -0
  80. data/ext/parsley/json-c-0.9/doc/html/json__object__private_8h.html +75 -0
  81. data/ext/parsley/json-c-0.9/doc/html/json__tokener_8h.html +366 -0
  82. data/ext/parsley/json-c-0.9/doc/html/json__util_8h.html +106 -0
  83. data/ext/parsley/json-c-0.9/doc/html/linkhash_8h.html +740 -0
  84. data/ext/parsley/json-c-0.9/doc/html/printbuf_8h.html +214 -0
  85. data/ext/parsley/json-c-0.9/doc/html/structarray__list.html +104 -0
  86. data/ext/parsley/json-c-0.9/doc/html/structjson__object.html +141 -0
  87. data/ext/parsley/json-c-0.9/doc/html/structjson__object__iter.html +87 -0
  88. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener.html +206 -0
  89. data/ext/parsley/json-c-0.9/doc/html/structjson__tokener__srec.html +104 -0
  90. data/ext/parsley/json-c-0.9/doc/html/structlh__entry.html +105 -0
  91. data/ext/parsley/json-c-0.9/doc/html/structlh__table.html +275 -0
  92. data/ext/parsley/json-c-0.9/doc/html/structprintbuf.html +87 -0
  93. data/ext/parsley/json-c-0.9/doc/html/tab_b.gif +0 -0
  94. data/ext/parsley/json-c-0.9/doc/html/tab_l.gif +0 -0
  95. data/ext/parsley/json-c-0.9/doc/html/tab_r.gif +0 -0
  96. data/ext/parsley/json-c-0.9/doc/html/tabs.css +105 -0
  97. data/ext/parsley/json-c-0.9/doc/html/unionjson__object_1_1data.html +140 -0
  98. data/ext/parsley/json-c-0.9/install-sh +520 -0
  99. data/ext/parsley/json-c-0.9/json.h +31 -0
  100. data/ext/parsley/json-c-0.9/json.pc +11 -0
  101. data/ext/parsley/json-c-0.9/json.pc.in +11 -0
  102. data/ext/parsley/json-c-0.9/json_object.c +512 -0
  103. data/ext/parsley/json-c-0.9/json_object.h +319 -0
  104. data/ext/parsley/json-c-0.9/json_object_private.h +52 -0
  105. data/ext/parsley/json-c-0.9/json_tokener.c +628 -0
  106. data/ext/parsley/json-c-0.9/json_tokener.h +98 -0
  107. data/ext/parsley/json-c-0.9/json_util.c +122 -0
  108. data/ext/parsley/json-c-0.9/json_util.h +31 -0
  109. data/ext/parsley/json-c-0.9/libjson.la +41 -0
  110. data/ext/parsley/json-c-0.9/libtool +8890 -0
  111. data/ext/parsley/json-c-0.9/linkhash.c +216 -0
  112. data/ext/parsley/json-c-0.9/linkhash.h +272 -0
  113. data/ext/parsley/json-c-0.9/ltmain.sh +8406 -0
  114. data/ext/parsley/json-c-0.9/missing +376 -0
  115. data/ext/parsley/json-c-0.9/printbuf.c +149 -0
  116. data/ext/parsley/json-c-0.9/printbuf.h +64 -0
  117. data/ext/parsley/json-c-0.9/stamp-h1 +1 -0
  118. data/ext/parsley/json-c-0.9/test1 +130 -0
  119. data/ext/parsley/json-c-0.9/test1.c +164 -0
  120. data/ext/parsley/json-c-0.9/test2 +130 -0
  121. data/ext/parsley/json-c-0.9/test2.c +20 -0
  122. data/ext/parsley/json-c-0.9/test3 +130 -0
  123. data/ext/parsley/json-c-0.9/test3.c +23 -0
  124. data/ext/parsley/libtool +8890 -0
  125. data/ext/parsley/ltmain.sh +8406 -0
  126. data/ext/parsley/missing +376 -0
  127. data/ext/parsley/parsed_xpath.c +168 -0
  128. data/ext/parsley/parsed_xpath.h +34 -0
  129. data/ext/parsley/parser.y +631 -0
  130. data/ext/parsley/parsley.c +793 -0
  131. data/ext/parsley/parsley.h +87 -0
  132. data/ext/parsley/parsley_main.c +185 -0
  133. data/ext/parsley/parsleyc_main.c +108 -0
  134. data/ext/parsley/regexp.c +359 -0
  135. data/ext/parsley/regexp.h +36 -0
  136. data/ext/parsley/scanner.l +221 -0
  137. data/ext/parsley/test/ambiguous.html +207 -0
  138. data/ext/parsley/test/ambiguous.json +1 -0
  139. data/ext/parsley/test/ambiguous.let +6 -0
  140. data/ext/parsley/test/array-regression.html +5 -0
  141. data/ext/parsley/test/array-regression.json +1 -0
  142. data/ext/parsley/test/array-regression.let +10 -0
  143. data/ext/parsley/test/backslash.html +5 -0
  144. data/ext/parsley/test/backslash.json +1 -0
  145. data/ext/parsley/test/backslash.let +3 -0
  146. data/ext/parsley/test/bang.html +17 -0
  147. data/ext/parsley/test/bang.json +1 -0
  148. data/ext/parsley/test/bang.let +6 -0
  149. data/ext/parsley/test/collate_regression.html +324 -0
  150. data/ext/parsley/test/collate_regression.json +1 -0
  151. data/ext/parsley/test/collate_regression.let +9 -0
  152. data/ext/parsley/test/contains.html +3 -0
  153. data/ext/parsley/test/contains.json +1 -0
  154. data/ext/parsley/test/contains.let +3 -0
  155. data/ext/parsley/test/content.html +13 -0
  156. data/ext/parsley/test/content.json +1 -0
  157. data/ext/parsley/test/content.let +7 -0
  158. data/ext/parsley/test/cool.html +575 -0
  159. data/ext/parsley/test/cool.json +1 -0
  160. data/ext/parsley/test/cool.let +9 -0
  161. data/ext/parsley/test/craigs-simple.html +207 -0
  162. data/ext/parsley/test/craigs-simple.json +1 -0
  163. data/ext/parsley/test/craigs-simple.let +6 -0
  164. data/ext/parsley/test/craigs.html +207 -0
  165. data/ext/parsley/test/craigs.json +1 -0
  166. data/ext/parsley/test/craigs.let +9 -0
  167. data/ext/parsley/test/crash.html +157 -0
  168. data/ext/parsley/test/crash.json +1 -0
  169. data/ext/parsley/test/crash.let +1 -0
  170. data/ext/parsley/test/css_attr.html +3 -0
  171. data/ext/parsley/test/css_attr.json +1 -0
  172. data/ext/parsley/test/css_attr.let +3 -0
  173. data/ext/parsley/test/default-namespace.json +1 -0
  174. data/ext/parsley/test/default-namespace.let +3 -0
  175. data/ext/parsley/test/default-namespace.xml +1493 -0
  176. data/ext/parsley/test/div.html +8 -0
  177. data/ext/parsley/test/div.json +1 -0
  178. data/ext/parsley/test/div.let +10 -0
  179. data/ext/parsley/test/empty.html +3 -0
  180. data/ext/parsley/test/empty.json +1 -0
  181. data/ext/parsley/test/empty.let +1 -0
  182. data/ext/parsley/test/emptyish.html +207 -0
  183. data/ext/parsley/test/emptyish.let +3 -0
  184. data/ext/parsley/test/fictional-opt.html +43 -0
  185. data/ext/parsley/test/fictional-opt.json +1 -0
  186. data/ext/parsley/test/fictional-opt.let +14 -0
  187. data/ext/parsley/test/fictional.html +43 -0
  188. data/ext/parsley/test/fictional.json +1 -0
  189. data/ext/parsley/test/fictional.let +14 -0
  190. data/ext/parsley/test/function-magic.html +9 -0
  191. data/ext/parsley/test/function-magic.json +1 -0
  192. data/ext/parsley/test/function-magic.let +8 -0
  193. data/ext/parsley/test/hn.html +32 -0
  194. data/ext/parsley/test/hn.json +1 -0
  195. data/ext/parsley/test/hn.let +8 -0
  196. data/ext/parsley/test/malformed-array.html +2329 -0
  197. data/ext/parsley/test/malformed-array.json +1 -0
  198. data/ext/parsley/test/malformed-array.let +22 -0
  199. data/ext/parsley/test/malformed-expr.html +2329 -0
  200. data/ext/parsley/test/malformed-expr.json +1 -0
  201. data/ext/parsley/test/malformed-expr.let +16 -0
  202. data/ext/parsley/test/malformed-function.html +845 -0
  203. data/ext/parsley/test/malformed-function.json +197 -0
  204. data/ext/parsley/test/malformed-function.let +8 -0
  205. data/ext/parsley/test/malformed-json.html +2329 -0
  206. data/ext/parsley/test/malformed-json.json +1 -0
  207. data/ext/parsley/test/malformed-json.let +6 -0
  208. data/ext/parsley/test/malformed-xpath.html +8 -0
  209. data/ext/parsley/test/malformed-xpath.json +1 -0
  210. data/ext/parsley/test/malformed-xpath.let +7 -0
  211. data/ext/parsley/test/match.json +1 -0
  212. data/ext/parsley/test/match.let +9 -0
  213. data/ext/parsley/test/match.xml +11 -0
  214. data/ext/parsley/test/math_ambiguity.html +9 -0
  215. data/ext/parsley/test/math_ambiguity.json +1 -0
  216. data/ext/parsley/test/math_ambiguity.let +5 -0
  217. data/ext/parsley/test/nth-regression.html +13 -0
  218. data/ext/parsley/test/nth-regression.json +1 -0
  219. data/ext/parsley/test/nth-regression.let +3 -0
  220. data/ext/parsley/test/optional.html +2328 -0
  221. data/ext/parsley/test/optional.json +1 -0
  222. data/ext/parsley/test/optional.let +8 -0
  223. data/ext/parsley/test/outer-xml.html +6 -0
  224. data/ext/parsley/test/outer-xml.json +1 -0
  225. data/ext/parsley/test/outer-xml.let +5 -0
  226. data/ext/parsley/test/position.html +8 -0
  227. data/ext/parsley/test/position.json +1 -0
  228. data/ext/parsley/test/position.let +6 -0
  229. data/ext/parsley/test/question_regressions.html +443 -0
  230. data/ext/parsley/test/question_regressions.json +1 -0
  231. data/ext/parsley/test/question_regressions.let +6 -0
  232. data/ext/parsley/test/quote.json +1 -0
  233. data/ext/parsley/test/quote.let +8 -0
  234. data/ext/parsley/test/quote.xml +11 -0
  235. data/ext/parsley/test/reddit.html +1 -0
  236. data/ext/parsley/test/reddit.json +1 -0
  237. data/ext/parsley/test/reddit.let +12 -0
  238. data/ext/parsley/test/remote-fail.json +1 -0
  239. data/ext/parsley/test/remote.html +3 -0
  240. data/ext/parsley/test/remote.json +1 -0
  241. data/ext/parsley/test/remote.let +4 -0
  242. data/ext/parsley/test/replace.json +1 -0
  243. data/ext/parsley/test/replace.let +9 -0
  244. data/ext/parsley/test/replace.xml +11 -0
  245. data/ext/parsley/test/scope.html +10 -0
  246. data/ext/parsley/test/scope.json +1 -0
  247. data/ext/parsley/test/scope.let +6 -0
  248. data/ext/parsley/test/segfault.html +5 -0
  249. data/ext/parsley/test/segfault.json +1 -0
  250. data/ext/parsley/test/segfault.let +9 -0
  251. data/ext/parsley/test/sg-wrap.html +5 -0
  252. data/ext/parsley/test/sg-wrap.json +1 -0
  253. data/ext/parsley/test/sg-wrap.let +3 -0
  254. data/ext/parsley/test/sg_off.html +5 -0
  255. data/ext/parsley/test/sg_off.json +1 -0
  256. data/ext/parsley/test/sg_off.let +3 -0
  257. data/ext/parsley/test/test.json +1 -0
  258. data/ext/parsley/test/test.let +6 -0
  259. data/ext/parsley/test/test.xml +11 -0
  260. data/ext/parsley/test/trivial.html +2329 -0
  261. data/ext/parsley/test/trivial.json +1 -0
  262. data/ext/parsley/test/trivial.let +4 -0
  263. data/ext/parsley/test/trivial2.html +2329 -0
  264. data/ext/parsley/test/trivial2.json +1 -0
  265. data/ext/parsley/test/trivial2.let +7 -0
  266. data/ext/parsley/test/unbang.html +17 -0
  267. data/ext/parsley/test/unbang.json +1 -0
  268. data/ext/parsley/test/unbang.let +6 -0
  269. data/ext/parsley/test/unicode.html +3 -0
  270. data/ext/parsley/test/unicode.json +1 -0
  271. data/ext/parsley/test/unicode.let +1 -0
  272. data/ext/parsley/test/whitespace.html +8 -0
  273. data/ext/parsley/test/whitespace.json +1 -0
  274. data/ext/parsley/test/whitespace.let +3 -0
  275. data/ext/parsley/test/whitespace_regression.html +4 -0
  276. data/ext/parsley/test/whitespace_regression.json +1 -0
  277. data/ext/parsley/test/whitespace_regression.let +3 -0
  278. data/ext/parsley/test/yelp-benchmark.rb +53 -0
  279. data/ext/parsley/test/yelp-home.html +1004 -0
  280. data/ext/parsley/test/yelp-home.json +1 -0
  281. data/ext/parsley/test/yelp-home.let +6 -0
  282. data/ext/parsley/test/yelp.html +2329 -0
  283. data/ext/parsley/test/yelp.json +1 -0
  284. data/ext/parsley/test/yelp.let +12 -0
  285. data/ext/parsley/test/youtube.html +1940 -0
  286. data/ext/parsley/test/youtube.let +11 -0
  287. data/ext/parsley/util.c +237 -0
  288. data/ext/parsley/util.h +34 -0
  289. data/ext/parsley/xml2json.c +47 -0
  290. data/ext/parsley/xml2json.h +14 -0
  291. data/ext/parsley/y.tab.h +222 -0
  292. data/ext/parsley/ylwrap +222 -0
  293. data/lib/parsley.rb +84 -0
  294. data/test/test_parsley.rb +120 -0
  295. data/test/yelp-benchmark.rb +53 -0
  296. data/test/yelp-home.html +1004 -0
  297. data/test/yelp-home.let +6 -0
  298. data/test/yelp.html +2329 -0
  299. metadata +366 -0
@@ -0,0 +1,740 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>json-c: linkhash.h File Reference</title>
4
+ <link href="tabs.css" rel="stylesheet" type="text/css">
5
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.8 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
13
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
14
+ </ul>
15
+ </div>
16
+ <div class="tabs">
17
+ <ul>
18
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
19
+ <li><a href="globals.html"><span>Globals</span></a></li>
20
+ </ul>
21
+ </div>
22
+ </div>
23
+ <div class="contents">
24
+ <h1>linkhash.h File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
25
+ <tr><td></td></tr>
26
+ <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
27
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html">lh_entry</a></td></tr>
28
+
29
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html">lh_table</a></td></tr>
30
+
31
+ <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
32
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#032f1bd115df254dda325437203ce5fb">LH_PRIME</a>&nbsp;&nbsp;&nbsp;0x9e370001UL</td></tr>
33
+
34
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#93fad7f8ae44575dc89c9567859972d2">LH_EMPTY</a>&nbsp;&nbsp;&nbsp;(void*)-1</td></tr>
35
+
36
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#c69428f2de0a6fb080b6fb373d506aa7">LH_FREED</a>&nbsp;&nbsp;&nbsp;(void*)-2</td></tr>
37
+
38
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#d7dd67da915065dce2c6f44cb03e2d82">lh_foreach</a>(table, entry)&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry; entry = entry-&gt;next)</td></tr>
39
+
40
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#bcbb0df08b4976d0649b826b6bacfca1">lh_foreach_safe</a>(table, entry, tmp)&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td></tr>
41
+
42
+ <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
43
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> )(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
44
+
45
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned long(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> )(const void *k)</td></tr>
46
+
47
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> )(const void *k1, const void *k2)</td></tr>
48
+
49
+ <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
50
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#2e560f0d3e5a20f6b0bfa4049737db23">lh_ptr_hash</a> (const void *k)</td></tr>
51
+
52
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#6ce3cb97560072c40f5caeaba85f756a">lh_ptr_equal</a> (const void *k1, const void *k2)</td></tr>
53
+
54
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#1fcf495b9c4ce169630cb31f638b8435">lh_char_hash</a> (const void *k)</td></tr>
55
+
56
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#e4e9f21fb1a556c7a50c6b7ea61f2079">lh_char_equal</a> (const void *k1, const void *k2)</td></tr>
57
+
58
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#c3ba464ac43c083397b1f1d34f2ddf55">lh_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn, <a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *hash_fn, <a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *equal_fn)</td></tr>
59
+
60
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#0aaf11e11ee5b0925279a52eab04bc38">lh_kchar_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
61
+
62
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#705513954267a16cc1d40a284a7c441e">lh_kptr_table_new</a> (int size, const char *name, <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
63
+
64
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#81653acf740cf8c9fe672e6cd16df0cf">lh_table_free</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
65
+
66
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#22b897763cc34a98c21c7fe82d151004">lh_table_insert</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, void *k, const void *v)</td></tr>
67
+
68
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#d3b6ca2d967a6c3021ee6c39e014a918">lh_table_lookup_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
69
+
70
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#49c27f18a174eaf126d1b7953df13cb1">lh_table_lookup</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
71
+
72
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#e5885a71c3457190fb1dc2d6e20dde3b">lh_table_delete_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
73
+
74
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#2fed2c78f70d229edb2d00775ffe593c">lh_table_delete</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
75
+
76
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#1294160fa0e80cee04cd745a401f43a4">lh_abort</a> (const char *msg,...)</td></tr>
77
+
78
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#5322eccf3394af7dc1ebb22af8f8c562">lh_table_resize</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, int new_size)</td></tr>
79
+
80
+ </table>
81
+ <hr><h2>Define Documentation</h2>
82
+ <a class="anchor" name="93fad7f8ae44575dc89c9567859972d2"></a><!-- doxytag: member="linkhash.h::LH_EMPTY" ref="93fad7f8ae44575dc89c9567859972d2" args="" -->
83
+ <div class="memitem">
84
+ <div class="memproto">
85
+ <table class="memname">
86
+ <tr>
87
+ <td class="memname">#define LH_EMPTY&nbsp;&nbsp;&nbsp;(void*)-1 </td>
88
+ </tr>
89
+ </table>
90
+ </div>
91
+ <div class="memdoc">
92
+
93
+ <p>
94
+ sentinel pointer value for empty slots
95
+ </div>
96
+ </div><p>
97
+ <a class="anchor" name="d7dd67da915065dce2c6f44cb03e2d82"></a><!-- doxytag: member="linkhash.h::lh_foreach" ref="d7dd67da915065dce2c6f44cb03e2d82" args="(table, entry)" -->
98
+ <div class="memitem">
99
+ <div class="memproto">
100
+ <table class="memname">
101
+ <tr>
102
+ <td class="memname">#define lh_foreach </td>
103
+ <td>(</td>
104
+ <td class="paramtype">table, <tr>
105
+ <td class="paramkey"></td>
106
+ <td></td>
107
+ <td class="paramtype">entry&nbsp;</td>
108
+ <td class="paramname"> </td>
109
+ <td>&nbsp;)&nbsp;</td>
110
+ <td>&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry; entry = entry-&gt;next)</td>
111
+ </tr>
112
+ </table>
113
+ </div>
114
+ <div class="memdoc">
115
+
116
+ <p>
117
+ Convenience list iterator.
118
+ </div>
119
+ </div><p>
120
+ <a class="anchor" name="bcbb0df08b4976d0649b826b6bacfca1"></a><!-- doxytag: member="linkhash.h::lh_foreach_safe" ref="bcbb0df08b4976d0649b826b6bacfca1" args="(table, entry, tmp)" -->
121
+ <div class="memitem">
122
+ <div class="memproto">
123
+ <table class="memname">
124
+ <tr>
125
+ <td class="memname">#define lh_foreach_safe </td>
126
+ <td>(</td>
127
+ <td class="paramtype">table, <tr>
128
+ <td class="paramkey"></td>
129
+ <td></td>
130
+ <td class="paramtype">entry, <tr>
131
+ <td class="paramkey"></td>
132
+ <td></td>
133
+ <td class="paramtype">tmp&nbsp;</td>
134
+ <td class="paramname"> </td>
135
+ <td>&nbsp;)&nbsp;</td>
136
+ <td>&nbsp;&nbsp;&nbsp;for(entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td>
137
+ </tr>
138
+ </table>
139
+ </div>
140
+ <div class="memdoc">
141
+
142
+ <p>
143
+ lh_foreach_safe allows calling of deletion routine while iterating.
144
+ </div>
145
+ </div><p>
146
+ <a class="anchor" name="c69428f2de0a6fb080b6fb373d506aa7"></a><!-- doxytag: member="linkhash.h::LH_FREED" ref="c69428f2de0a6fb080b6fb373d506aa7" args="" -->
147
+ <div class="memitem">
148
+ <div class="memproto">
149
+ <table class="memname">
150
+ <tr>
151
+ <td class="memname">#define LH_FREED&nbsp;&nbsp;&nbsp;(void*)-2 </td>
152
+ </tr>
153
+ </table>
154
+ </div>
155
+ <div class="memdoc">
156
+
157
+ <p>
158
+ sentinel pointer value for freed slots
159
+ </div>
160
+ </div><p>
161
+ <a class="anchor" name="032f1bd115df254dda325437203ce5fb"></a><!-- doxytag: member="linkhash.h::LH_PRIME" ref="032f1bd115df254dda325437203ce5fb" args="" -->
162
+ <div class="memitem">
163
+ <div class="memproto">
164
+ <table class="memname">
165
+ <tr>
166
+ <td class="memname">#define LH_PRIME&nbsp;&nbsp;&nbsp;0x9e370001UL </td>
167
+ </tr>
168
+ </table>
169
+ </div>
170
+ <div class="memdoc">
171
+
172
+ <p>
173
+ golden prime used in hash functions
174
+ </div>
175
+ </div><p>
176
+ <hr><h2>Typedef Documentation</h2>
177
+ <a class="anchor" name="671553d0ee3c2a123190ba0f8ed2b635"></a><!-- doxytag: member="linkhash.h::lh_entry_free_fn" ref="671553d0ee3c2a123190ba0f8ed2b635" args=")(struct lh_entry *e)" -->
178
+ <div class="memitem">
179
+ <div class="memproto">
180
+ <table class="memname">
181
+ <tr>
182
+ <td class="memname">typedef void( <a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a>)(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e) </td>
183
+ </tr>
184
+ </table>
185
+ </div>
186
+ <div class="memdoc">
187
+
188
+ <p>
189
+ callback function prototypes
190
+ </div>
191
+ </div><p>
192
+ <a class="anchor" name="91fd85fc81b0c7c83c62f00e84729091"></a><!-- doxytag: member="linkhash.h::lh_equal_fn" ref="91fd85fc81b0c7c83c62f00e84729091" args=")(const void *k1, const void *k2)" -->
193
+ <div class="memitem">
194
+ <div class="memproto">
195
+ <table class="memname">
196
+ <tr>
197
+ <td class="memname">typedef int( <a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a>)(const void *k1, const void *k2) </td>
198
+ </tr>
199
+ </table>
200
+ </div>
201
+ <div class="memdoc">
202
+
203
+ <p>
204
+ callback function prototypes
205
+ </div>
206
+ </div><p>
207
+ <a class="anchor" name="38bae27995dcfb6ee3fb109a9be229b2"></a><!-- doxytag: member="linkhash.h::lh_hash_fn" ref="38bae27995dcfb6ee3fb109a9be229b2" args=")(const void *k)" -->
208
+ <div class="memitem">
209
+ <div class="memproto">
210
+ <table class="memname">
211
+ <tr>
212
+ <td class="memname">typedef unsigned long( <a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a>)(const void *k) </td>
213
+ </tr>
214
+ </table>
215
+ </div>
216
+ <div class="memdoc">
217
+
218
+ <p>
219
+ callback function prototypes
220
+ </div>
221
+ </div><p>
222
+ <hr><h2>Function Documentation</h2>
223
+ <a class="anchor" name="1294160fa0e80cee04cd745a401f43a4"></a><!-- doxytag: member="linkhash.h::lh_abort" ref="1294160fa0e80cee04cd745a401f43a4" args="(const char *msg,...)" -->
224
+ <div class="memitem">
225
+ <div class="memproto">
226
+ <table class="memname">
227
+ <tr>
228
+ <td class="memname">void lh_abort </td>
229
+ <td>(</td>
230
+ <td class="paramtype">const char *&nbsp;</td>
231
+ <td class="paramname"> <em>msg</em>, </td>
232
+ </tr>
233
+ <tr>
234
+ <td class="paramkey"></td>
235
+ <td></td>
236
+ <td class="paramtype">&nbsp;</td>
237
+ <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
238
+ </tr>
239
+ <tr>
240
+ <td></td>
241
+ <td>)</td>
242
+ <td></td><td></td><td></td>
243
+ </tr>
244
+ </table>
245
+ </div>
246
+ <div class="memdoc">
247
+
248
+ <p>
249
+
250
+ </div>
251
+ </div><p>
252
+ <a class="anchor" name="e4e9f21fb1a556c7a50c6b7ea61f2079"></a><!-- doxytag: member="linkhash.h::lh_char_equal" ref="e4e9f21fb1a556c7a50c6b7ea61f2079" args="(const void *k1, const void *k2)" -->
253
+ <div class="memitem">
254
+ <div class="memproto">
255
+ <table class="memname">
256
+ <tr>
257
+ <td class="memname">int lh_char_equal </td>
258
+ <td>(</td>
259
+ <td class="paramtype">const void *&nbsp;</td>
260
+ <td class="paramname"> <em>k1</em>, </td>
261
+ </tr>
262
+ <tr>
263
+ <td class="paramkey"></td>
264
+ <td></td>
265
+ <td class="paramtype">const void *&nbsp;</td>
266
+ <td class="paramname"> <em>k2</em></td><td>&nbsp;</td>
267
+ </tr>
268
+ <tr>
269
+ <td></td>
270
+ <td>)</td>
271
+ <td></td><td></td><td></td>
272
+ </tr>
273
+ </table>
274
+ </div>
275
+ <div class="memdoc">
276
+
277
+ <p>
278
+
279
+ </div>
280
+ </div><p>
281
+ <a class="anchor" name="1fcf495b9c4ce169630cb31f638b8435"></a><!-- doxytag: member="linkhash.h::lh_char_hash" ref="1fcf495b9c4ce169630cb31f638b8435" args="(const void *k)" -->
282
+ <div class="memitem">
283
+ <div class="memproto">
284
+ <table class="memname">
285
+ <tr>
286
+ <td class="memname">unsigned long lh_char_hash </td>
287
+ <td>(</td>
288
+ <td class="paramtype">const void *&nbsp;</td>
289
+ <td class="paramname"> <em>k</em> </td>
290
+ <td>&nbsp;)&nbsp;</td>
291
+ <td></td>
292
+ </tr>
293
+ </table>
294
+ </div>
295
+ <div class="memdoc">
296
+
297
+ <p>
298
+
299
+ </div>
300
+ </div><p>
301
+ <a class="anchor" name="0aaf11e11ee5b0925279a52eab04bc38"></a><!-- doxytag: member="linkhash.h::lh_kchar_table_new" ref="0aaf11e11ee5b0925279a52eab04bc38" args="(int size, const char *name, lh_entry_free_fn *free_fn)" -->
302
+ <div class="memitem">
303
+ <div class="memproto">
304
+ <table class="memname">
305
+ <tr>
306
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kchar_table_new </td>
307
+ <td>(</td>
308
+ <td class="paramtype">int&nbsp;</td>
309
+ <td class="paramname"> <em>size</em>, </td>
310
+ </tr>
311
+ <tr>
312
+ <td class="paramkey"></td>
313
+ <td></td>
314
+ <td class="paramtype">const char *&nbsp;</td>
315
+ <td class="paramname"> <em>name</em>, </td>
316
+ </tr>
317
+ <tr>
318
+ <td class="paramkey"></td>
319
+ <td></td>
320
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
321
+ <td class="paramname"> <em>free_fn</em></td><td>&nbsp;</td>
322
+ </tr>
323
+ <tr>
324
+ <td></td>
325
+ <td>)</td>
326
+ <td></td><td></td><td><code> [read]</code></td>
327
+ </tr>
328
+ </table>
329
+ </div>
330
+ <div class="memdoc">
331
+
332
+ <p>
333
+ Convenience function to create a new linkhash table with char keys. <dl compact><dt><b>Parameters:</b></dt><dd>
334
+ <table border="0" cellspacing="2" cellpadding="0">
335
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. </td></tr>
336
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>table name. </td></tr>
337
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries. </td></tr>
338
+ </table>
339
+ </dl>
340
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
341
+
342
+ </div>
343
+ </div><p>
344
+ <a class="anchor" name="705513954267a16cc1d40a284a7c441e"></a><!-- doxytag: member="linkhash.h::lh_kptr_table_new" ref="705513954267a16cc1d40a284a7c441e" args="(int size, const char *name, lh_entry_free_fn *free_fn)" -->
345
+ <div class="memitem">
346
+ <div class="memproto">
347
+ <table class="memname">
348
+ <tr>
349
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kptr_table_new </td>
350
+ <td>(</td>
351
+ <td class="paramtype">int&nbsp;</td>
352
+ <td class="paramname"> <em>size</em>, </td>
353
+ </tr>
354
+ <tr>
355
+ <td class="paramkey"></td>
356
+ <td></td>
357
+ <td class="paramtype">const char *&nbsp;</td>
358
+ <td class="paramname"> <em>name</em>, </td>
359
+ </tr>
360
+ <tr>
361
+ <td class="paramkey"></td>
362
+ <td></td>
363
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
364
+ <td class="paramname"> <em>free_fn</em></td><td>&nbsp;</td>
365
+ </tr>
366
+ <tr>
367
+ <td></td>
368
+ <td>)</td>
369
+ <td></td><td></td><td><code> [read]</code></td>
370
+ </tr>
371
+ </table>
372
+ </div>
373
+ <div class="memdoc">
374
+
375
+ <p>
376
+ Convenience function to create a new linkhash table with ptr keys. <dl compact><dt><b>Parameters:</b></dt><dd>
377
+ <table border="0" cellspacing="2" cellpadding="0">
378
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. </td></tr>
379
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>table name. </td></tr>
380
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries. </td></tr>
381
+ </table>
382
+ </dl>
383
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
384
+
385
+ </div>
386
+ </div><p>
387
+ <a class="anchor" name="6ce3cb97560072c40f5caeaba85f756a"></a><!-- doxytag: member="linkhash.h::lh_ptr_equal" ref="6ce3cb97560072c40f5caeaba85f756a" args="(const void *k1, const void *k2)" -->
388
+ <div class="memitem">
389
+ <div class="memproto">
390
+ <table class="memname">
391
+ <tr>
392
+ <td class="memname">int lh_ptr_equal </td>
393
+ <td>(</td>
394
+ <td class="paramtype">const void *&nbsp;</td>
395
+ <td class="paramname"> <em>k1</em>, </td>
396
+ </tr>
397
+ <tr>
398
+ <td class="paramkey"></td>
399
+ <td></td>
400
+ <td class="paramtype">const void *&nbsp;</td>
401
+ <td class="paramname"> <em>k2</em></td><td>&nbsp;</td>
402
+ </tr>
403
+ <tr>
404
+ <td></td>
405
+ <td>)</td>
406
+ <td></td><td></td><td></td>
407
+ </tr>
408
+ </table>
409
+ </div>
410
+ <div class="memdoc">
411
+
412
+ <p>
413
+
414
+ </div>
415
+ </div><p>
416
+ <a class="anchor" name="2e560f0d3e5a20f6b0bfa4049737db23"></a><!-- doxytag: member="linkhash.h::lh_ptr_hash" ref="2e560f0d3e5a20f6b0bfa4049737db23" args="(const void *k)" -->
417
+ <div class="memitem">
418
+ <div class="memproto">
419
+ <table class="memname">
420
+ <tr>
421
+ <td class="memname">unsigned long lh_ptr_hash </td>
422
+ <td>(</td>
423
+ <td class="paramtype">const void *&nbsp;</td>
424
+ <td class="paramname"> <em>k</em> </td>
425
+ <td>&nbsp;)&nbsp;</td>
426
+ <td></td>
427
+ </tr>
428
+ </table>
429
+ </div>
430
+ <div class="memdoc">
431
+
432
+ <p>
433
+ Pre-defined hash and equality functions
434
+ </div>
435
+ </div><p>
436
+ <a class="anchor" name="2fed2c78f70d229edb2d00775ffe593c"></a><!-- doxytag: member="linkhash.h::lh_table_delete" ref="2fed2c78f70d229edb2d00775ffe593c" args="(struct lh_table *t, const void *k)" -->
437
+ <div class="memitem">
438
+ <div class="memproto">
439
+ <table class="memname">
440
+ <tr>
441
+ <td class="memname">int lh_table_delete </td>
442
+ <td>(</td>
443
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
444
+ <td class="paramname"> <em>t</em>, </td>
445
+ </tr>
446
+ <tr>
447
+ <td class="paramkey"></td>
448
+ <td></td>
449
+ <td class="paramtype">const void *&nbsp;</td>
450
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
451
+ </tr>
452
+ <tr>
453
+ <td></td>
454
+ <td>)</td>
455
+ <td></td><td></td><td></td>
456
+ </tr>
457
+ </table>
458
+ </div>
459
+ <div class="memdoc">
460
+
461
+ <p>
462
+ Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. <dl compact><dt><b>Parameters:</b></dt><dd>
463
+ <table border="0" cellspacing="2" cellpadding="0">
464
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to delete from. </td></tr>
465
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to delete. </td></tr>
466
+ </table>
467
+ </dl>
468
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the item was deleted. <p>
469
+ -1 if it was not found. </dd></dl>
470
+
471
+ </div>
472
+ </div><p>
473
+ <a class="anchor" name="e5885a71c3457190fb1dc2d6e20dde3b"></a><!-- doxytag: member="linkhash.h::lh_table_delete_entry" ref="e5885a71c3457190fb1dc2d6e20dde3b" args="(struct lh_table *t, struct lh_entry *e)" -->
474
+ <div class="memitem">
475
+ <div class="memproto">
476
+ <table class="memname">
477
+ <tr>
478
+ <td class="memname">int lh_table_delete_entry </td>
479
+ <td>(</td>
480
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
481
+ <td class="paramname"> <em>t</em>, </td>
482
+ </tr>
483
+ <tr>
484
+ <td class="paramkey"></td>
485
+ <td></td>
486
+ <td class="paramtype">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&nbsp;</td>
487
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
488
+ </tr>
489
+ <tr>
490
+ <td></td>
491
+ <td>)</td>
492
+ <td></td><td></td><td></td>
493
+ </tr>
494
+ </table>
495
+ </div>
496
+ <div class="memdoc">
497
+
498
+ <p>
499
+ Delete a record from the table. If a callback free function is provided then it is called for the for the item being deleted. <dl compact><dt><b>Parameters:</b></dt><dd>
500
+ <table border="0" cellspacing="2" cellpadding="0">
501
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to delete from. </td></tr>
502
+ <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>a pointer to the entry to delete. </td></tr>
503
+ </table>
504
+ </dl>
505
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the item was deleted. <p>
506
+ -1 if it was not found. </dd></dl>
507
+
508
+ </div>
509
+ </div><p>
510
+ <a class="anchor" name="81653acf740cf8c9fe672e6cd16df0cf"></a><!-- doxytag: member="linkhash.h::lh_table_free" ref="81653acf740cf8c9fe672e6cd16df0cf" args="(struct lh_table *t)" -->
511
+ <div class="memitem">
512
+ <div class="memproto">
513
+ <table class="memname">
514
+ <tr>
515
+ <td class="memname">void lh_table_free </td>
516
+ <td>(</td>
517
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
518
+ <td class="paramname"> <em>t</em> </td>
519
+ <td>&nbsp;)&nbsp;</td>
520
+ <td></td>
521
+ </tr>
522
+ </table>
523
+ </div>
524
+ <div class="memdoc">
525
+
526
+ <p>
527
+ Free a linkhash table. If a callback free function is provided then it is called for all entries in the table. <dl compact><dt><b>Parameters:</b></dt><dd>
528
+ <table border="0" cellspacing="2" cellpadding="0">
529
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>table to free. </td></tr>
530
+ </table>
531
+ </dl>
532
+
533
+ </div>
534
+ </div><p>
535
+ <a class="anchor" name="22b897763cc34a98c21c7fe82d151004"></a><!-- doxytag: member="linkhash.h::lh_table_insert" ref="22b897763cc34a98c21c7fe82d151004" args="(struct lh_table *t, void *k, const void *v)" -->
536
+ <div class="memitem">
537
+ <div class="memproto">
538
+ <table class="memname">
539
+ <tr>
540
+ <td class="memname">int lh_table_insert </td>
541
+ <td>(</td>
542
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
543
+ <td class="paramname"> <em>t</em>, </td>
544
+ </tr>
545
+ <tr>
546
+ <td class="paramkey"></td>
547
+ <td></td>
548
+ <td class="paramtype">void *&nbsp;</td>
549
+ <td class="paramname"> <em>k</em>, </td>
550
+ </tr>
551
+ <tr>
552
+ <td class="paramkey"></td>
553
+ <td></td>
554
+ <td class="paramtype">const void *&nbsp;</td>
555
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
556
+ </tr>
557
+ <tr>
558
+ <td></td>
559
+ <td>)</td>
560
+ <td></td><td></td><td></td>
561
+ </tr>
562
+ </table>
563
+ </div>
564
+ <div class="memdoc">
565
+
566
+ <p>
567
+ Insert a record into the table. <dl compact><dt><b>Parameters:</b></dt><dd>
568
+ <table border="0" cellspacing="2" cellpadding="0">
569
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to insert into. </td></tr>
570
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to insert. </td></tr>
571
+ <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>a pointer to the value to insert. </td></tr>
572
+ </table>
573
+ </dl>
574
+
575
+ </div>
576
+ </div><p>
577
+ <a class="anchor" name="49c27f18a174eaf126d1b7953df13cb1"></a><!-- doxytag: member="linkhash.h::lh_table_lookup" ref="49c27f18a174eaf126d1b7953df13cb1" args="(struct lh_table *t, const void *k)" -->
578
+ <div class="memitem">
579
+ <div class="memproto">
580
+ <table class="memname">
581
+ <tr>
582
+ <td class="memname">const void* lh_table_lookup </td>
583
+ <td>(</td>
584
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
585
+ <td class="paramname"> <em>t</em>, </td>
586
+ </tr>
587
+ <tr>
588
+ <td class="paramkey"></td>
589
+ <td></td>
590
+ <td class="paramtype">const void *&nbsp;</td>
591
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
592
+ </tr>
593
+ <tr>
594
+ <td></td>
595
+ <td>)</td>
596
+ <td></td><td></td><td></td>
597
+ </tr>
598
+ </table>
599
+ </div>
600
+ <div class="memdoc">
601
+
602
+ <p>
603
+ Lookup a record into the table <dl compact><dt><b>Parameters:</b></dt><dd>
604
+ <table border="0" cellspacing="2" cellpadding="0">
605
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to lookup </td></tr>
606
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to lookup </td></tr>
607
+ </table>
608
+ </dl>
609
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the found value or NULL if it does not exist. </dd></dl>
610
+
611
+ </div>
612
+ </div><p>
613
+ <a class="anchor" name="d3b6ca2d967a6c3021ee6c39e014a918"></a><!-- doxytag: member="linkhash.h::lh_table_lookup_entry" ref="d3b6ca2d967a6c3021ee6c39e014a918" args="(struct lh_table *t, const void *k)" -->
614
+ <div class="memitem">
615
+ <div class="memproto">
616
+ <table class="memname">
617
+ <tr>
618
+ <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table_lookup_entry </td>
619
+ <td>(</td>
620
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
621
+ <td class="paramname"> <em>t</em>, </td>
622
+ </tr>
623
+ <tr>
624
+ <td class="paramkey"></td>
625
+ <td></td>
626
+ <td class="paramtype">const void *&nbsp;</td>
627
+ <td class="paramname"> <em>k</em></td><td>&nbsp;</td>
628
+ </tr>
629
+ <tr>
630
+ <td></td>
631
+ <td>)</td>
632
+ <td></td><td></td><td><code> [read]</code></td>
633
+ </tr>
634
+ </table>
635
+ </div>
636
+ <div class="memdoc">
637
+
638
+ <p>
639
+ Lookup a record into the table. <dl compact><dt><b>Parameters:</b></dt><dd>
640
+ <table border="0" cellspacing="2" cellpadding="0">
641
+ <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>the table to lookup </td></tr>
642
+ <tr><td valign="top"></td><td valign="top"><em>k</em>&nbsp;</td><td>a pointer to the key to lookup </td></tr>
643
+ </table>
644
+ </dl>
645
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the record structure of the value or NULL if it does not exist. </dd></dl>
646
+
647
+ </div>
648
+ </div><p>
649
+ <a class="anchor" name="c3ba464ac43c083397b1f1d34f2ddf55"></a><!-- doxytag: member="linkhash.h::lh_table_new" ref="c3ba464ac43c083397b1f1d34f2ddf55" args="(int size, const char *name, lh_entry_free_fn *free_fn, lh_hash_fn *hash_fn, lh_equal_fn *equal_fn)" -->
650
+ <div class="memitem">
651
+ <div class="memproto">
652
+ <table class="memname">
653
+ <tr>
654
+ <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_table_new </td>
655
+ <td>(</td>
656
+ <td class="paramtype">int&nbsp;</td>
657
+ <td class="paramname"> <em>size</em>, </td>
658
+ </tr>
659
+ <tr>
660
+ <td class="paramkey"></td>
661
+ <td></td>
662
+ <td class="paramtype">const char *&nbsp;</td>
663
+ <td class="paramname"> <em>name</em>, </td>
664
+ </tr>
665
+ <tr>
666
+ <td class="paramkey"></td>
667
+ <td></td>
668
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&nbsp;</td>
669
+ <td class="paramname"> <em>free_fn</em>, </td>
670
+ </tr>
671
+ <tr>
672
+ <td class="paramkey"></td>
673
+ <td></td>
674
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *&nbsp;</td>
675
+ <td class="paramname"> <em>hash_fn</em>, </td>
676
+ </tr>
677
+ <tr>
678
+ <td class="paramkey"></td>
679
+ <td></td>
680
+ <td class="paramtype"><a class="el" href="linkhash_8h.html#91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *&nbsp;</td>
681
+ <td class="paramname"> <em>equal_fn</em></td><td>&nbsp;</td>
682
+ </tr>
683
+ <tr>
684
+ <td></td>
685
+ <td>)</td>
686
+ <td></td><td></td><td><code> [read]</code></td>
687
+ </tr>
688
+ </table>
689
+ </div>
690
+ <div class="memdoc">
691
+
692
+ <p>
693
+ Create a new linkhash table. <dl compact><dt><b>Parameters:</b></dt><dd>
694
+ <table border="0" cellspacing="2" cellpadding="0">
695
+ <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>initial table size. The table is automatically resized although this incurs a performance penalty. </td></tr>
696
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the table name. </td></tr>
697
+ <tr><td valign="top"></td><td valign="top"><em>free_fn</em>&nbsp;</td><td>callback function used to free memory for entries when lh_table_free or lh_table_delete is called. If NULL is provided, then memory for keys and values must be freed by the caller. </td></tr>
698
+ <tr><td valign="top"></td><td valign="top"><em>hash_fn</em>&nbsp;</td><td>function used to hash keys. 2 standard ones are defined: lh_ptr_hash and lh_char_hash for hashing pointer values and C strings respectively. </td></tr>
699
+ <tr><td valign="top"></td><td valign="top"><em>equal_fn</em>&nbsp;</td><td>comparison function to compare keys. 2 standard ones defined: lh_ptr_hash and lh_char_hash for comparing pointer values and C strings respectively. </td></tr>
700
+ </table>
701
+ </dl>
702
+ <dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer onto the linkhash table. </dd></dl>
703
+
704
+ </div>
705
+ </div><p>
706
+ <a class="anchor" name="5322eccf3394af7dc1ebb22af8f8c562"></a><!-- doxytag: member="linkhash.h::lh_table_resize" ref="5322eccf3394af7dc1ebb22af8f8c562" args="(struct lh_table *t, int new_size)" -->
707
+ <div class="memitem">
708
+ <div class="memproto">
709
+ <table class="memname">
710
+ <tr>
711
+ <td class="memname">void lh_table_resize </td>
712
+ <td>(</td>
713
+ <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&nbsp;</td>
714
+ <td class="paramname"> <em>t</em>, </td>
715
+ </tr>
716
+ <tr>
717
+ <td class="paramkey"></td>
718
+ <td></td>
719
+ <td class="paramtype">int&nbsp;</td>
720
+ <td class="paramname"> <em>new_size</em></td><td>&nbsp;</td>
721
+ </tr>
722
+ <tr>
723
+ <td></td>
724
+ <td>)</td>
725
+ <td></td><td></td><td></td>
726
+ </tr>
727
+ </table>
728
+ </div>
729
+ <div class="memdoc">
730
+
731
+ <p>
732
+
733
+ </div>
734
+ </div><p>
735
+ </div>
736
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jul 31 10:58:15 2009 for json-c by&nbsp;
737
+ <a href="http://www.doxygen.org/index.html">
738
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
739
+ </body>
740
+ </html>