Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 1081

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csStringHash Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csStringHash Class Reference</h1><!-- doxytag: class="csStringHash" -->A string-to-ID hash table.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="strhash_8h-source.html">csutil/strhash.h</a>&gt;</code>
<p>

<p>
<a href="classcsStringHash-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bc9f04415cbe70e38503e9193bb627d1"></a><!-- doxytag: member="csStringHash::GlobalIterator" ref="bc9f04415cbe70e38503e9193bb627d1" args="" -->
typedef <br>
<a class="el" href="classcsHash_1_1ConstGlobalIterator.html">HashType::ConstGlobalIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#bc9f04415cbe70e38503e9193bb627d1">GlobalIterator</a></td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#8c69d63cd90d1642a21a49561ce80e06">Clear</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete all stored strings.  <a href="#8c69d63cd90d1642a21a49561ce80e06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#8f1dede993638e1905dbdbd0a5d4a3fb">Contains</a> (<a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> id) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if the hash contains a string with a particular ID.  <a href="#8f1dede993638e1905dbdbd0a5d4a3fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#f664069dcfda1b5195b026be73687f0e">Contains</a> (char const *s) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if the hash contains a particular string.  <a href="#f664069dcfda1b5195b026be73687f0e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#e0994fd1ead9695c06b82c694d7afef2">csStringHash</a> (<a class="el" href="classcsStringHash.html">csStringHash</a> const &amp;h)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#e0994fd1ead9695c06b82c694d7afef2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#8639dab924aae1a9d07a0550f7c3d2a5">csStringHash</a> (size_t size=23)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#8639dab924aae1a9d07a0550f7c3d2a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#78c9ca7fe84ffc336e427064240f94a8">Delete</a> (<a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a string with the specified ID.  <a href="#78c9ca7fe84ffc336e427064240f94a8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#2a26f02cd674662b0d4cf8d59becebb8">Delete</a> (char const *s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove specified string.  <a href="#2a26f02cd674662b0d4cf8d59becebb8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#836209a4daa6d3806811143486a07c4c">Empty</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all stored strings.  <a href="#836209a4daa6d3806811143486a07c4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsHash_1_1ConstGlobalIterator.html">GlobalIterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#87c7e5528207b6ec6080ed847e27bf56">GetIterator</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an iterator for the string hash which iterates over all elements.  <a href="#87c7e5528207b6ec6080ed847e27bf56"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#5919b02edb524864ce7137ea3185e6a7">GetSize</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of elements in the hash.  <a href="#5919b02edb524864ce7137ea3185e6a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#64eddf4090ec31dadf6f9b15beb8729c">IsEmpty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the hash is empty.  <a href="#64eddf4090ec31dadf6f9b15beb8729c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsStringHash.html">csStringHash</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#3d27640fdff527b20c9485773b5ec29a">operator=</a> (<a class="el" href="classcsStringHash.html">csStringHash</a> const &amp;h)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator.  <a href="#3d27640fdff527b20c9485773b5ec29a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#63958c8367338dd79e0d490bc8b2ff5b">Register</a> (const char *s, <a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> id=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a string with an ID.  <a href="#63958c8367338dd79e0d490bc8b2ff5b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#9bed7b22f0c471e8d8318932faaac75d">Request</a> (<a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> id) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request the string for a given ID.  <a href="#9bed7b22f0c471e8d8318932faaac75d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#c1b7122f93d2c824f9e9c7b46cef75f6">Request</a> (const char *s) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request the ID for the given string.  <a href="#c1b7122f93d2c824f9e9c7b46cef75f6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsStringHash.html#7c91b448da3049daa738c23f351d6f10">~csStringHash</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#7c91b448da3049daa738c23f351d6f10"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A string-to-ID hash table. 
<p>
Useful when you need to work with strings but want the performance characteristics of simple numeric comparisons. Register a string with a unique numeric ID and then compare ID's rather than comparing strings. You can fetch a string's ID via <a class="el" href="classcsStringHash.html#c1b7122f93d2c824f9e9c7b46cef75f6" title="Request the ID for the given string.">Request()</a>. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a> </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00038">38</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="8639dab924aae1a9d07a0550f7c3d2a5"></a><!-- doxytag: member="csStringHash::csStringHash" ref="8639dab924aae1a9d07a0550f7c3d2a5" args="(size_t size=23)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csStringHash::csStringHash           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>23</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor. 
<p>

</div>
</div><p>
<a class="anchor" name="e0994fd1ead9695c06b82c694d7afef2"></a><!-- doxytag: member="csStringHash::csStringHash" ref="e0994fd1ead9695c06b82c694d7afef2" args="(csStringHash const &amp;h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csStringHash::csStringHash           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsStringHash.html">csStringHash</a> const &amp;&nbsp;</td>
          <td class="paramname"> <em>h</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00054">54</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7c91b448da3049daa738c23f351d6f10"></a><!-- doxytag: member="csStringHash::~csStringHash" ref="7c91b448da3049daa738c23f351d6f10" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csStringHash::~csStringHash           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="8c69d63cd90d1642a21a49561ce80e06"></a><!-- doxytag: member="csStringHash::Clear" ref="8c69d63cd90d1642a21a49561ce80e06" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csStringHash::Clear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete all stored strings. 
<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000071">Deprecated:</a></b></dt><dd>Use <a class="el" href="classcsStringHash.html#836209a4daa6d3806811143486a07c4c" title="Remove all stored strings.">Empty()</a> instead. </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00143">143</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8f1dede993638e1905dbdbd0a5d4a3fb"></a><!-- doxytag: member="csStringHash::Contains" ref="8f1dede993638e1905dbdbd0a5d4a3fb" args="(csStringID id) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csStringHash::Contains           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a>&nbsp;</td>
          <td class="paramname"> <em>id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if the hash contains a string with a particular ID. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This is rigidly equivalent to <code>return Request(id) != NULL</code>, but more idiomatic. </dd></dl>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>This operation is slow. If you need to check containment of ID's frequently, then instead consider using <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>, in which such checks are optimized. </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00116">116</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f664069dcfda1b5195b026be73687f0e"></a><!-- doxytag: member="csStringHash::Contains" ref="f664069dcfda1b5195b026be73687f0e" args="(char const *s) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csStringHash::Contains           </td>
          <td>(</td>
          <td class="paramtype">char const *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if the hash contains a particular string. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This is rigidly equivalent to <code>return Request(s) != csInvalidStringID</code>. </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00105">105</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

<p>References <a class="el" href="iutil_2strset_8h-source.html#l00036">csInvalidStringID</a>.</p>

</div>
</div><p>
<a class="anchor" name="78c9ca7fe84ffc336e427064240f94a8"></a><!-- doxytag: member="csStringHash::Delete" ref="78c9ca7fe84ffc336e427064240f94a8" args="(csStringID id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csStringHash::Delete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a>&nbsp;</td>
          <td class="paramname"> <em>id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a string with the specified ID. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if a matching string was in thet set; else false. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If more than one string is associated with the ID, then one is removed (but specifically which one is unspecified). </dd></dl>

</div>
</div><p>
<a class="anchor" name="2a26f02cd674662b0d4cf8d59becebb8"></a><!-- doxytag: member="csStringHash::Delete" ref="2a26f02cd674662b0d4cf8d59becebb8" args="(char const *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csStringHash::Delete           </td>
          <td>(</td>
          <td class="paramtype">char const *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove specified string. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if a matching string was in thet set; else false. </dd></dl>

</div>
</div><p>
<a class="anchor" name="836209a4daa6d3806811143486a07c4c"></a><!-- doxytag: member="csStringHash::Empty" ref="836209a4daa6d3806811143486a07c4c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csStringHash::Empty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove all stored strings. 
<p>

</div>
</div><p>
<a class="anchor" name="87c7e5528207b6ec6080ed847e27bf56"></a><!-- doxytag: member="csStringHash::GetIterator" ref="87c7e5528207b6ec6080ed847e27bf56" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsHash_1_1ConstGlobalIterator.html">GlobalIterator</a> csStringHash::GetIterator           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an iterator for the string hash which iterates over all elements. 
<p>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>Modifying the hash while you have open iterators will result undefined behaviour. </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00163">163</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5919b02edb524864ce7137ea3185e6a7"></a><!-- doxytag: member="csStringHash::GetSize" ref="5919b02edb524864ce7137ea3185e6a7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t csStringHash::GetSize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the number of elements in the hash. 
<p>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00147">147</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="64eddf4090ec31dadf6f9b15beb8729c"></a><!-- doxytag: member="csStringHash::IsEmpty" ref="64eddf4090ec31dadf6f9b15beb8729c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csStringHash::IsEmpty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return true if the hash is empty. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Rigidly equivalent to <code>return <a class="el" href="classcsStringHash.html#5919b02edb524864ce7137ea3185e6a7" title="Get the number of elements in the hash.">GetSize()</a> == 0</code>, but more idiomatic. </dd></dl>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00155">155</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3d27640fdff527b20c9485773b5ec29a"></a><!-- doxytag: member="csStringHash::operator=" ref="3d27640fdff527b20c9485773b5ec29a" args="(csStringHash const &amp;h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsStringHash.html">csStringHash</a>&amp; csStringHash::operator=           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsStringHash.html">csStringHash</a> const &amp;&nbsp;</td>
          <td class="paramname"> <em>h</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assignment operator. 
<p>

<p>Definition at line <a class="el" href="strhash_8h-source.html#l00058">58</a> of file <a class="el" href="strhash_8h-source.html">strhash.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="63958c8367338dd79e0d490bc8b2ff5b"></a><!-- doxytag: member="csStringHash::Register" ref="63958c8367338dd79e0d490bc8b2ff5b" args="(const char *s, csStringID id=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* csStringHash::Register           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a>&nbsp;</td>
          <td class="paramname"> <em>id</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a string with an ID. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>The string with which to associate the ID. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>A numeric value with which to identify this string. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the copy of the string in this hash. </dd></dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the string is already registered with a different ID, the old ID will be replaced with the one specified here. If you would like the convenience of having the ID assigned automatically, then consider using <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>, instead. <p>
If you do not care about the ID, but instead simply want to use the hash as a string <em>set</em> which merely records if a string is present, then you can omit <code>id</code>. To find out if a string is contained in the set, invoke <a class="el" href="classcsStringHash.html#f664069dcfda1b5195b026be73687f0e" title="Check if the hash contains a particular string.">Contains()</a>. The same functionality can be accomplished via <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>, however <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a> is more heavyweight because it also maintains a reverse-mapping from ID to string. Omitting the <code>id</code> makes for a good alternative to <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a> when you do not require its extra bulk. </dd></dl>

</div>
</div><p>
<a class="anchor" name="9bed7b22f0c471e8d8318932faaac75d"></a><!-- doxytag: member="csStringHash::Request" ref="9bed7b22f0c471e8d8318932faaac75d" args="(csStringID id) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* csStringHash::Request           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a>&nbsp;</td>
          <td class="paramname"> <em>id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Request the string for a given ID. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The string associated with the given ID, or the null pointer if the string has not yet been registered. If more than one string is associated with the ID, then one is returned (but specifically which one is unspecified). </dd></dl>
<dl class="warning" compact><dt><b>Warning:</b></dt><dd>This operation is slow. If you need to perform reverse lookups frequently, then instead consider using <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>, in which reverse lookups are optimized. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c1b7122f93d2c824f9e9c7b46cef75f6"></a><!-- doxytag: member="csStringHash::Request" ref="c1b7122f93d2c824f9e9c7b46cef75f6" args="(const char *s) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> csStringHash::Request           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Request the ID for the given string. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The string's ID or csInvalidStringID if the string has not yet been registered. </dd></dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="strhash_8h-source.html">strhash.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>