class___string_table.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.9.8"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Torque2D Reference: _StringTable Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. <link href="t2d-stylesheet-extra.css" rel="stylesheet" type="text/css"/>
  17. </head>
  18. <body>
  19. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  20. <div id="titlearea">
  21. <table cellspacing="0" cellpadding="0">
  22. <tbody>
  23. <tr id="projectrow">
  24. <td id="projectalign">
  25. <div id="projectname">Torque2D Reference
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.9.8 -->
  34. <script type="text/javascript">
  35. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  36. var searchBox = new SearchBox("searchBox", "search/",'.html');
  37. /* @license-end */
  38. </script>
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  43. $(function() {
  44. initMenu('',true,false,'search.php','Search');
  45. $(document).ready(function() { init_search(); });
  46. });
  47. /* @license-end */
  48. </script>
  49. <div id="main-nav"></div>
  50. <!-- window showing the filter options -->
  51. <div id="MSearchSelectWindow"
  52. onmouseover="return searchBox.OnSearchSelectShow()"
  53. onmouseout="return searchBox.OnSearchSelectHide()"
  54. onkeydown="return searchBox.OnSearchSelectKey(event)">
  55. </div>
  56. <!-- iframe showing the search results (closed by default) -->
  57. <div id="MSearchResultsWindow">
  58. <div id="MSearchResults">
  59. <div class="SRPage">
  60. <div id="SRIndex">
  61. <div id="SRResults"></div>
  62. <div class="SRStatus" id="Loading">Loading...</div>
  63. <div class="SRStatus" id="Searching">Searching...</div>
  64. <div class="SRStatus" id="NoMatches">No Matches</div>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div><!-- top -->
  70. <div class="header">
  71. <div class="summary">
  72. <a href="#nested-classes">Classes</a> &#124;
  73. <a href="#pub-methods">Public Member Functions</a> &#124;
  74. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  75. <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
  76. <a href="class___string_table-members.html">List of all members</a> </div>
  77. <div class="headertitle"><div class="title">_StringTable Class Reference</div></div>
  78. </div><!--header-->
  79. <div class="contents">
  80. <p><code>#include &lt;stringTable.h&gt;</code></p>
  81. <table class="memberdecls">
  82. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  83. Public Member Functions</h2></td></tr>
  84. <tr class="memitem:a8a267f13ab1788d0d3e802b949394e55" id="r_a8a267f13ab1788d0d3e802b949394e55"><td class="memItemLeft" align="right" valign="top">StringTableEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#a8a267f13ab1788d0d3e802b949394e55">insert</a> (const char *string, bool caseSens=false)</td></tr>
  85. <tr class="separator:a8a267f13ab1788d0d3e802b949394e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:ae8a3aabd8996f3fcccf38466e499e313" id="r_ae8a3aabd8996f3fcccf38466e499e313"><td class="memItemLeft" align="right" valign="top">StringTableEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#ae8a3aabd8996f3fcccf38466e499e313">insertn</a> (const char *string, S32 len, bool caseSens=false)</td></tr>
  87. <tr class="separator:ae8a3aabd8996f3fcccf38466e499e313"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:aef1524dec7c7132d45450c478906d7d5" id="r_aef1524dec7c7132d45450c478906d7d5"><td class="memItemLeft" align="right" valign="top">StringTableEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#aef1524dec7c7132d45450c478906d7d5">lookup</a> (const char *string, bool caseSens=false)</td></tr>
  89. <tr class="separator:aef1524dec7c7132d45450c478906d7d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:ae95d7f0dd3b142cebcb8c4f9cf4707d4" id="r_ae95d7f0dd3b142cebcb8c4f9cf4707d4"><td class="memItemLeft" align="right" valign="top">StringTableEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#ae95d7f0dd3b142cebcb8c4f9cf4707d4">lookupn</a> (const char *string, S32 len, bool caseSens=false)</td></tr>
  91. <tr class="separator:ae95d7f0dd3b142cebcb8c4f9cf4707d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:aba611fc59860de5d02b005be9d34df80" id="r_aba611fc59860de5d02b005be9d34df80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#aba611fc59860de5d02b005be9d34df80">resize</a> (const U32 newSize)</td></tr>
  93. <tr class="separator:aba611fc59860de5d02b005be9d34df80"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. </table><table class="memberdecls">
  95. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  96. Static Public Member Functions</h2></td></tr>
  97. <tr class="memitem:ae2ee59f7cc16ee42559c87e81c433039" id="r_ae2ee59f7cc16ee42559c87e81c433039"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#ae2ee59f7cc16ee42559c87e81c433039">create</a> ()</td></tr>
  98. <tr class="separator:ae2ee59f7cc16ee42559c87e81c433039"><td class="memSeparator" colspan="2">&#160;</td></tr>
  99. <tr class="memitem:a3a80b6032f86a56bec74609034b3246f" id="r_a3a80b6032f86a56bec74609034b3246f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#a3a80b6032f86a56bec74609034b3246f">destroy</a> ()</td></tr>
  100. <tr class="separator:a3a80b6032f86a56bec74609034b3246f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:a77495875859a00c9440c4ddeec96fc50" id="r_a77495875859a00c9440c4ddeec96fc50"><td class="memItemLeft" align="right" valign="top">static U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#a77495875859a00c9440c4ddeec96fc50">hashString</a> (const char *in_pString)</td></tr>
  102. <tr class="memdesc:a77495875859a00c9440c4ddeec96fc50"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="namespace_hash.html">Hash</a> a string into a U32. <br /></td></tr>
  103. <tr class="separator:a77495875859a00c9440c4ddeec96fc50"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:ab2ed570f795ffb3686cd768e7dd6fb77" id="r_ab2ed570f795ffb3686cd768e7dd6fb77"><td class="memItemLeft" align="right" valign="top">static U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#ab2ed570f795ffb3686cd768e7dd6fb77">hashStringn</a> (const char *in_pString, S32 len)</td></tr>
  105. <tr class="memdesc:ab2ed570f795ffb3686cd768e7dd6fb77"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="namespace_hash.html">Hash</a> a string of given length into a U32. <br /></td></tr>
  106. <tr class="separator:ab2ed570f795ffb3686cd768e7dd6fb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. </table><table class="memberdecls">
  108. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
  109. Static Public Attributes</h2></td></tr>
  110. <tr class="memitem:ad9c5b65a2bf7403d65f700eef0f81b8e" id="r_ad9c5b65a2bf7403d65f700eef0f81b8e"><td class="memItemLeft" align="right" valign="top">static StringTableEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#ad9c5b65a2bf7403d65f700eef0f81b8e">EmptyString</a></td></tr>
  111. <tr class="memdesc:ad9c5b65a2bf7403d65f700eef0f81b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty string. <br /></td></tr>
  112. <tr class="separator:ad9c5b65a2bf7403d65f700eef0f81b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. </table><table class="memberdecls">
  114. <tr class="heading"><td colspan="2"><h2 class="groupheader">Implementation details</h2></td></tr>
  115. <tr class="memitem:aed3f80da6ce46de1758aa6867e47d8fe" id="r_aed3f80da6ce46de1758aa6867e47d8fe"><td class="memItemLeft" align="right" valign="top">static const U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#aed3f80da6ce46de1758aa6867e47d8fe">csm_stInitSize</a> = 29</td></tr>
  116. <tr class="separator:aed3f80da6ce46de1758aa6867e47d8fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a39985458d6c7cc5db147ab08b89854ad" id="r_a39985458d6c7cc5db147ab08b89854ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#a39985458d6c7cc5db147ab08b89854ad">_StringTable</a> ()</td></tr>
  118. <tr class="separator:a39985458d6c7cc5db147ab08b89854ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:a04b0dc2df9aafbe553478e70db881369" id="r_a04b0dc2df9aafbe553478e70db881369"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class___string_table.html#a04b0dc2df9aafbe553478e70db881369">~_StringTable</a> ()</td></tr>
  120. <tr class="separator:a04b0dc2df9aafbe553478e70db881369"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. </table>
  122. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  123. <div class="textblock"><p>A global table for the hashing and tracking of strings.</p>
  124. <p>Only one <a class="el" href="class___string_table.html">_StringTable</a> is ever instantiated in <a class="el" href="namespace_torque.html">Torque</a>. It is accessible via the global variable StringTable.</p>
  125. <p>StringTable is used to manage strings in <a class="el" href="namespace_torque.html">Torque</a>. It performs the following tasks:</p><ul>
  126. <li>Ensures that only one pointer is ever used for a given string (through <a class="el" href="class___string_table.html#a8a267f13ab1788d0d3e802b949394e55">insert()</a>).</li>
  127. <li>Allows the lookup of a string in the table.</li>
  128. </ul>
  129. <div class="fragment"><div class="line"><span class="comment">// Adding a string to the StringTable.</span></div>
  130. <div class="line">StringTableEntry mRoot;</div>
  131. <div class="line">mRoot = StringTable-&gt;insert(root);</div>
  132. <div class="line"> </div>
  133. <div class="line"><span class="comment">// Looking up a string in the StringTable.</span></div>
  134. <div class="line">StringTableEntry stName = StringTable-&gt;lookupn(name, len);</div>
  135. <div class="line"> </div>
  136. <div class="line"><span class="comment">// Comparing two strings in the StringTable (see below).</span></div>
  137. <div class="line"><span class="keywordflow">if</span>(mRoot == stName) <a class="code hl_function" href="namespace_con.html#a0aff7311d684a0e0ef33125616a73385">Con::printf</a>(<span class="stringliteral">&quot;These strings are equal!&quot;</span>);</div>
  138. <div class="ttc" id="anamespace_con_html_a0aff7311d684a0e0ef33125616a73385"><div class="ttname"><a href="namespace_con.html#a0aff7311d684a0e0ef33125616a73385">Con::printf</a></div><div class="ttdeci">void printf(const char *fmt,...)</div><div class="ttdef"><b>Definition</b> console.cc:636</div></div>
  139. </div><!-- fragment --><p><b>But why is this useful, you ask?</b> Because every string that's run through the StringTable is stored once and only once, every string has one and only one pointer mapped to it. As a pointer is an integer value (usually an unsigned int), so we can do several neat things:</p><ul>
  140. <li>StringTableEntrys can be compared directly for equality, instead of using the time-consuming dStrcmp() or dStricmp() function.</li>
  141. <li>For things like object names, we can avoid storing multiple copies of the string containing the name. The StringTable ensures that we only ever store one copy.</li>
  142. <li>When we're doing lookups by name (for instances, of resources), we can determine if the object is even registered in the system by looking up its name in the StringTable. Then, we can use the pointer as a hash key.</li>
  143. </ul>
  144. <p>The scripting engine and the resource manager are the primary users of the StringTable.</p>
  145. <dl class="section note"><dt>Note</dt><dd>Be aware that the StringTable NEVER DEALLOCATES memory, so be careful when you add strings to it. If you carelessly add many strings, you will end up wasting space. </dd></dl>
  146. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  147. <a id="a39985458d6c7cc5db147ab08b89854ad" name="a39985458d6c7cc5db147ab08b89854ad"></a>
  148. <h2 class="memtitle"><span class="permalink"><a href="#a39985458d6c7cc5db147ab08b89854ad">&#9670;&#160;</a></span>_StringTable()</h2>
  149. <div class="memitem">
  150. <div class="memproto">
  151. <table class="mlabels">
  152. <tr>
  153. <td class="mlabels-left">
  154. <table class="memname">
  155. <tr>
  156. <td class="memname"><a class="el" href="class___string_table.html">_StringTable</a> </td>
  157. <td>(</td>
  158. <td class="paramname"></td><td>)</td>
  159. <td></td>
  160. </tr>
  161. </table>
  162. </td>
  163. <td class="mlabels-right">
  164. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  165. </tr>
  166. </table>
  167. </div><div class="memdoc">
  168. </div>
  169. </div>
  170. <a id="a04b0dc2df9aafbe553478e70db881369" name="a04b0dc2df9aafbe553478e70db881369"></a>
  171. <h2 class="memtitle"><span class="permalink"><a href="#a04b0dc2df9aafbe553478e70db881369">&#9670;&#160;</a></span>~_StringTable()</h2>
  172. <div class="memitem">
  173. <div class="memproto">
  174. <table class="mlabels">
  175. <tr>
  176. <td class="mlabels-left">
  177. <table class="memname">
  178. <tr>
  179. <td class="memname">~<a class="el" href="class___string_table.html">_StringTable</a> </td>
  180. <td>(</td>
  181. <td class="paramname"></td><td>)</td>
  182. <td></td>
  183. </tr>
  184. </table>
  185. </td>
  186. <td class="mlabels-right">
  187. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  188. </tr>
  189. </table>
  190. </div><div class="memdoc">
  191. </div>
  192. </div>
  193. <h2 class="groupheader">Member Function Documentation</h2>
  194. <a id="ae2ee59f7cc16ee42559c87e81c433039" name="ae2ee59f7cc16ee42559c87e81c433039"></a>
  195. <h2 class="memtitle"><span class="permalink"><a href="#ae2ee59f7cc16ee42559c87e81c433039">&#9670;&#160;</a></span>create()</h2>
  196. <div class="memitem">
  197. <div class="memproto">
  198. <table class="mlabels">
  199. <tr>
  200. <td class="mlabels-left">
  201. <table class="memname">
  202. <tr>
  203. <td class="memname">void create </td>
  204. <td>(</td>
  205. <td class="paramname"></td><td>)</td>
  206. <td></td>
  207. </tr>
  208. </table>
  209. </td>
  210. <td class="mlabels-right">
  211. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  212. </tr>
  213. </table>
  214. </div><div class="memdoc">
  215. <p>Initialize StringTable.</p>
  216. <p>This is called at program start to initialize the StringTable global. </p>
  217. </div>
  218. </div>
  219. <a id="a3a80b6032f86a56bec74609034b3246f" name="a3a80b6032f86a56bec74609034b3246f"></a>
  220. <h2 class="memtitle"><span class="permalink"><a href="#a3a80b6032f86a56bec74609034b3246f">&#9670;&#160;</a></span>destroy()</h2>
  221. <div class="memitem">
  222. <div class="memproto">
  223. <table class="mlabels">
  224. <tr>
  225. <td class="mlabels-left">
  226. <table class="memname">
  227. <tr>
  228. <td class="memname">void destroy </td>
  229. <td>(</td>
  230. <td class="paramname"></td><td>)</td>
  231. <td></td>
  232. </tr>
  233. </table>
  234. </td>
  235. <td class="mlabels-right">
  236. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  237. </tr>
  238. </table>
  239. </div><div class="memdoc">
  240. <p>Destroy the StringTable</p>
  241. <p>This is called at program end to destroy the StringTable global. </p>
  242. </div>
  243. </div>
  244. <a id="a77495875859a00c9440c4ddeec96fc50" name="a77495875859a00c9440c4ddeec96fc50"></a>
  245. <h2 class="memtitle"><span class="permalink"><a href="#a77495875859a00c9440c4ddeec96fc50">&#9670;&#160;</a></span>hashString()</h2>
  246. <div class="memitem">
  247. <div class="memproto">
  248. <table class="mlabels">
  249. <tr>
  250. <td class="mlabels-left">
  251. <table class="memname">
  252. <tr>
  253. <td class="memname">U32 hashString </td>
  254. <td>(</td>
  255. <td class="paramtype">const char *&#160;</td>
  256. <td class="paramname"><em>in_pString</em></td><td>)</td>
  257. <td></td>
  258. </tr>
  259. </table>
  260. </td>
  261. <td class="mlabels-right">
  262. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <p><a class="el" href="namespace_hash.html">Hash</a> a string into a U32. </p>
  267. </div>
  268. </div>
  269. <a id="ab2ed570f795ffb3686cd768e7dd6fb77" name="ab2ed570f795ffb3686cd768e7dd6fb77"></a>
  270. <h2 class="memtitle"><span class="permalink"><a href="#ab2ed570f795ffb3686cd768e7dd6fb77">&#9670;&#160;</a></span>hashStringn()</h2>
  271. <div class="memitem">
  272. <div class="memproto">
  273. <table class="mlabels">
  274. <tr>
  275. <td class="mlabels-left">
  276. <table class="memname">
  277. <tr>
  278. <td class="memname">U32 hashStringn </td>
  279. <td>(</td>
  280. <td class="paramtype">const char *&#160;</td>
  281. <td class="paramname"><em>in_pString</em>, </td>
  282. </tr>
  283. <tr>
  284. <td class="paramkey"></td>
  285. <td></td>
  286. <td class="paramtype">S32&#160;</td>
  287. <td class="paramname"><em>len</em>&#160;</td>
  288. </tr>
  289. <tr>
  290. <td></td>
  291. <td>)</td>
  292. <td></td><td></td>
  293. </tr>
  294. </table>
  295. </td>
  296. <td class="mlabels-right">
  297. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  298. </tr>
  299. </table>
  300. </div><div class="memdoc">
  301. <p><a class="el" href="namespace_hash.html">Hash</a> a string of given length into a U32. </p>
  302. </div>
  303. </div>
  304. <a id="a8a267f13ab1788d0d3e802b949394e55" name="a8a267f13ab1788d0d3e802b949394e55"></a>
  305. <h2 class="memtitle"><span class="permalink"><a href="#a8a267f13ab1788d0d3e802b949394e55">&#9670;&#160;</a></span>insert()</h2>
  306. <div class="memitem">
  307. <div class="memproto">
  308. <table class="memname">
  309. <tr>
  310. <td class="memname">StringTableEntry insert </td>
  311. <td>(</td>
  312. <td class="paramtype">const char *&#160;</td>
  313. <td class="paramname"><em>string</em>, </td>
  314. </tr>
  315. <tr>
  316. <td class="paramkey"></td>
  317. <td></td>
  318. <td class="paramtype">bool&#160;</td>
  319. <td class="paramname"><em>caseSens</em> = <code>false</code>&#160;</td>
  320. </tr>
  321. <tr>
  322. <td></td>
  323. <td>)</td>
  324. <td></td><td></td>
  325. </tr>
  326. </table>
  327. </div><div class="memdoc">
  328. <p>Get a pointer from the string table, adding the string to the table if it was not already present.</p>
  329. <dl class="params"><dt>Parameters</dt><dd>
  330. <table class="params">
  331. <tr><td class="paramname">string</td><td>String to check in the table (and add). </td></tr>
  332. <tr><td class="paramname">caseSens</td><td>Determines whether case matters. </td></tr>
  333. </table>
  334. </dd>
  335. </dl>
  336. </div>
  337. </div>
  338. <a id="ae8a3aabd8996f3fcccf38466e499e313" name="ae8a3aabd8996f3fcccf38466e499e313"></a>
  339. <h2 class="memtitle"><span class="permalink"><a href="#ae8a3aabd8996f3fcccf38466e499e313">&#9670;&#160;</a></span>insertn()</h2>
  340. <div class="memitem">
  341. <div class="memproto">
  342. <table class="memname">
  343. <tr>
  344. <td class="memname">StringTableEntry insertn </td>
  345. <td>(</td>
  346. <td class="paramtype">const char *&#160;</td>
  347. <td class="paramname"><em>string</em>, </td>
  348. </tr>
  349. <tr>
  350. <td class="paramkey"></td>
  351. <td></td>
  352. <td class="paramtype">S32&#160;</td>
  353. <td class="paramname"><em>len</em>, </td>
  354. </tr>
  355. <tr>
  356. <td class="paramkey"></td>
  357. <td></td>
  358. <td class="paramtype">bool&#160;</td>
  359. <td class="paramname"><em>caseSens</em> = <code>false</code>&#160;</td>
  360. </tr>
  361. <tr>
  362. <td></td>
  363. <td>)</td>
  364. <td></td><td></td>
  365. </tr>
  366. </table>
  367. </div><div class="memdoc">
  368. <p>Get a pointer from the string table, adding the string to the table if it was not already present.</p>
  369. <dl class="params"><dt>Parameters</dt><dd>
  370. <table class="params">
  371. <tr><td class="paramname">string</td><td>String to check in the table (and add). </td></tr>
  372. <tr><td class="paramname">len</td><td>Length of the string in bytes. </td></tr>
  373. <tr><td class="paramname">caseSens</td><td>Determines whether case matters. </td></tr>
  374. </table>
  375. </dd>
  376. </dl>
  377. </div>
  378. </div>
  379. <a id="aef1524dec7c7132d45450c478906d7d5" name="aef1524dec7c7132d45450c478906d7d5"></a>
  380. <h2 class="memtitle"><span class="permalink"><a href="#aef1524dec7c7132d45450c478906d7d5">&#9670;&#160;</a></span>lookup()</h2>
  381. <div class="memitem">
  382. <div class="memproto">
  383. <table class="memname">
  384. <tr>
  385. <td class="memname">StringTableEntry lookup </td>
  386. <td>(</td>
  387. <td class="paramtype">const char *&#160;</td>
  388. <td class="paramname"><em>string</em>, </td>
  389. </tr>
  390. <tr>
  391. <td class="paramkey"></td>
  392. <td></td>
  393. <td class="paramtype">bool&#160;</td>
  394. <td class="paramname"><em>caseSens</em> = <code>false</code>&#160;</td>
  395. </tr>
  396. <tr>
  397. <td></td>
  398. <td>)</td>
  399. <td></td><td></td>
  400. </tr>
  401. </table>
  402. </div><div class="memdoc">
  403. <p>Get a pointer from the string table, NOT adding the string to the table if it was not already present.</p>
  404. <dl class="params"><dt>Parameters</dt><dd>
  405. <table class="params">
  406. <tr><td class="paramname">string</td><td>String to check in the table (but not add). </td></tr>
  407. <tr><td class="paramname">caseSens</td><td>Determines whether case matters. </td></tr>
  408. </table>
  409. </dd>
  410. </dl>
  411. </div>
  412. </div>
  413. <a id="ae95d7f0dd3b142cebcb8c4f9cf4707d4" name="ae95d7f0dd3b142cebcb8c4f9cf4707d4"></a>
  414. <h2 class="memtitle"><span class="permalink"><a href="#ae95d7f0dd3b142cebcb8c4f9cf4707d4">&#9670;&#160;</a></span>lookupn()</h2>
  415. <div class="memitem">
  416. <div class="memproto">
  417. <table class="memname">
  418. <tr>
  419. <td class="memname">StringTableEntry lookupn </td>
  420. <td>(</td>
  421. <td class="paramtype">const char *&#160;</td>
  422. <td class="paramname"><em>string</em>, </td>
  423. </tr>
  424. <tr>
  425. <td class="paramkey"></td>
  426. <td></td>
  427. <td class="paramtype">S32&#160;</td>
  428. <td class="paramname"><em>len</em>, </td>
  429. </tr>
  430. <tr>
  431. <td class="paramkey"></td>
  432. <td></td>
  433. <td class="paramtype">bool&#160;</td>
  434. <td class="paramname"><em>caseSens</em> = <code>false</code>&#160;</td>
  435. </tr>
  436. <tr>
  437. <td></td>
  438. <td>)</td>
  439. <td></td><td></td>
  440. </tr>
  441. </table>
  442. </div><div class="memdoc">
  443. <p>Get a pointer from the string table, NOT adding the string to the table if it was not already present.</p>
  444. <dl class="params"><dt>Parameters</dt><dd>
  445. <table class="params">
  446. <tr><td class="paramname">string</td><td>String to check in the table (but not add). </td></tr>
  447. <tr><td class="paramname">len</td><td>Length of string in bytes. </td></tr>
  448. <tr><td class="paramname">caseSens</td><td>Determines whether case matters. </td></tr>
  449. </table>
  450. </dd>
  451. </dl>
  452. </div>
  453. </div>
  454. <a id="aba611fc59860de5d02b005be9d34df80" name="aba611fc59860de5d02b005be9d34df80"></a>
  455. <h2 class="memtitle"><span class="permalink"><a href="#aba611fc59860de5d02b005be9d34df80">&#9670;&#160;</a></span>resize()</h2>
  456. <div class="memitem">
  457. <div class="memproto">
  458. <table class="memname">
  459. <tr>
  460. <td class="memname">void resize </td>
  461. <td>(</td>
  462. <td class="paramtype">const U32&#160;</td>
  463. <td class="paramname"><em>newSize</em></td><td>)</td>
  464. <td></td>
  465. </tr>
  466. </table>
  467. </div><div class="memdoc">
  468. <p>Resize the StringTable to be able to hold newSize items. This is called automatically by the StringTable when the table is full past a certain threshhold.</p>
  469. <dl class="params"><dt>Parameters</dt><dd>
  470. <table class="params">
  471. <tr><td class="paramname">newSize</td><td>Number of new items to allocate space for. </td></tr>
  472. </table>
  473. </dd>
  474. </dl>
  475. </div>
  476. </div>
  477. <h2 class="groupheader">Member Data Documentation</h2>
  478. <a id="aed3f80da6ce46de1758aa6867e47d8fe" name="aed3f80da6ce46de1758aa6867e47d8fe"></a>
  479. <h2 class="memtitle"><span class="permalink"><a href="#aed3f80da6ce46de1758aa6867e47d8fe">&#9670;&#160;</a></span>csm_stInitSize</h2>
  480. <div class="memitem">
  481. <div class="memproto">
  482. <table class="mlabels">
  483. <tr>
  484. <td class="mlabels-left">
  485. <table class="memname">
  486. <tr>
  487. <td class="memname">const U32 csm_stInitSize = 29</td>
  488. </tr>
  489. </table>
  490. </td>
  491. <td class="mlabels-right">
  492. <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
  493. </tr>
  494. </table>
  495. </div><div class="memdoc">
  496. </div>
  497. </div>
  498. <a id="ad9c5b65a2bf7403d65f700eef0f81b8e" name="ad9c5b65a2bf7403d65f700eef0f81b8e"></a>
  499. <h2 class="memtitle"><span class="permalink"><a href="#ad9c5b65a2bf7403d65f700eef0f81b8e">&#9670;&#160;</a></span>EmptyString</h2>
  500. <div class="memitem">
  501. <div class="memproto">
  502. <table class="mlabels">
  503. <tr>
  504. <td class="mlabels-left">
  505. <table class="memname">
  506. <tr>
  507. <td class="memname">StringTableEntry EmptyString</td>
  508. </tr>
  509. </table>
  510. </td>
  511. <td class="mlabels-right">
  512. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  513. </tr>
  514. </table>
  515. </div><div class="memdoc">
  516. <p>Empty string. </p>
  517. </div>
  518. </div>
  519. <hr/>The documentation for this class was generated from the following files:<ul>
  520. <li>string/<b>stringTable.h</b></li>
  521. <li>string/<b>stringTable.cc</b></li>
  522. </ul>
  523. </div><!-- contents -->
  524. <!-- start footer part -->
  525. <hr class="footer"/><address class="footer"><small>
  526. Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
  527. </small></address>
  528. </body>
  529. </html>