<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />

  <title>hash_load_check_resize_trigger Interface</title>
  <meta http-equiv="Content-Type" content=
  "text/html; charset=us-ascii" />
  </head>

<body>
  <div id="page">
    <h1><tt>hash_load_check_resize_trigger</tt> Interface</h1>

    <p>A resize trigger policy based on a load check. It keeps the
    load factor between some load factors load_min and
    load_max.</p>

    <p>Defined in: <a href=
    "http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>

    <h2><a name="link1" id="link1">Template Parameters</a></h2>

    <table class="c1" width="100%" border="1" summary=
    "Template Parameters">
      <tr>
        <td width="20%" align="left"><b>Parameter</b></td>

        <td width="50%" align="left"><b>Description</b></td>

        <td width="30%" align="left"><b>Default Value</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="External_Load_Access1313998607" id=
"External_Load_Access1313998607"><b>bool</b> External_Load_Access </a>
</pre>
        </td>

        <td>
          <p>Specifies whether the load factor can be accessed
          externally. The two options have different trade-offs in
          terms of flexibility, genericity, and encapsulation.</p>
        </td>

        <td><tt><b>false</b></tt></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="Size_Type42920436" id=
"Size_Type42920436"><b>typename</b> Size_Type </a>
</pre>
        </td>

        <td>
          <p>Size type.</p>
        </td>

        <td>size_t</td>
      </tr>
    </table>

    <h2><a name="link2" id="link2">Public Types and
    Constants</a></h2>

    <h3><a name="link3" id="link3">General Definitions</a></h3>

    <table class="c1" width="100%" border="1" summary="Types">
      <tr>
        <td width="30%" align="left"><b>Type</b></td>

        <td width="55%" align="left"><b>Definition</b></td>

        <td width="15%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="size_type55424436" id="size_type55424436">size_type</a>
</pre>
        </td>

        <td>
          <pre>
<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
</pre>
        </td>

        <td>
          <p>Size type.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<a name="external_load_access3976598639" id=
"external_load_access3976598639">external_load_access</a>
</pre>
        </td>

        <td>
          <pre>
<a href=
"#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
</pre>
        </td>

        <td>
          <p>Indicates whether loads can be accessed externally</p>
        </td>
      </tr>
    </table>

    <h2><a name="link4" id="link4">Public Methods</a></h2>

    <h3><a name="link5" id="link5">Constructors, Destructor, and
    Related</a></h3>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
  hash_load_check_resize_trigger
  (float load_min = 0.125, 
    float load_max = 0.5)
</pre>
        </td>

        <td>
          <p>Default constructor, or constructor taking
          <span class="c1"><tt>load_min</tt></span> and
          <span class="c1"><tt>load_max</tt></span> load factors
          between which this policy will keep the actual load.</p>

          <p>It is the responsibility of the user to ensure that
          <span class="c1"><tt>load_min</tt></span> is smaller than
          <span class="c1"><tt>load_max</tt></span>.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b>
  swap
  (<span class=
"c2"><tt>hash_load_check_resize_trigger</tt></span> &amp;other)
</pre>
        </td>

        <td>
          <p>Swaps content.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
  <b>virtual</b>
    ~hash_load_check_resize_trigger
    ()
</pre>
        </td>

        <td>
          <p>Destructor.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link6" id="link6">Load Access Methods</a></h3>

    <p>These methods are only available if the external access
    parameter is set.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> std::pair&lt;float, float&gt;
  get_loads
  () <b>const</b>
</pre>
        </td>

        <td>
          <p>Returns a pair of the minimal and maximal loads,
          respectively.</p>

          <p>Calling this method will not compile when <a href=
          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
          == <tt><b>false</b></tt>.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b> 
  set_loads
  (std::pair&lt;float, float&gt; load_pair)
</pre>
        </td>

        <td>
          <p>Sets the loads through a pair of the minimal and
          maximal loads, respectively.</p>

          <p>Calling this method resizes the container, and might
          throw an exception. It is the responsibility of the user
          to pass appropriate loads to this function. Calling this
          method will not compile when <a href=
          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
          == <tt><b>false</b></tt>.</p>
        </td>
      </tr>
    </table>

    <h2><a name="link7" id="link7">Protected Methods</a></h2>

    <h3><a name="link8" id="link8">Insert Search
    Notifications.</a></h3>

    <p>Notifications called during an insert operation.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_insert_search_start
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search started.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_insert_search_collision
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search encountered a collision.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_insert_search_end
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search ended.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link9" id="link9">Find Search
    Notifications.</a></h3>

    <p>Notifications called during a find operation.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_find_search_start
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search started.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_find_search_collision
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search encountered a collision.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_find_search_end
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search ended.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link10" id="link10">Erase Search
    Notifications.</a></h3>

    <p>Notifications called during an insert operation.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_erase_search_start
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search started.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_erase_search_collision
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search encountered a collision.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_erase_search_end
  ()
</pre>
        </td>

        <td>
          <p>Notifies a search ended.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link11" id="link11">Content Change
    Notifications.</a></h3>

    <p>Notifications called when the content of the table changes
    in a way that can affect the resize policy.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_inserted
  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
</pre>
        </td>

        <td>
          <p>Notifies an element was inserted. the total number of
          entries in the table is <span class=
          "c1"><tt>num_entries</tt></span>.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>void</b>
  notify_erased
  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
</pre>
        </td>

        <td>
          <p>Notifies an element was erased.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b> 
  notify_cleared
  ()
</pre>
        </td>

        <td>
          <p>Notifies the table was cleared.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link12" id="link12">Size Change
    Notifications.</a></h3>

    <p>Notifications called when the table changes size.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b>
  notify_resized
  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
</pre>
        </td>

        <td>
          <p>Notifies the table was resized as a result of this
          object's signifying that a resize is needed.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>void</b>
  notify_externally_resized
  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
</pre>
        </td>

        <td>
          <p>Notifies the table was resized externally.</p>
        </td>
      </tr>
    </table>

    <h3><a name="link13" id="link13">Queries</a></h3>

    <p>Called to query whether/how to resize.</p>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>bool</b> 
  is_resize_needed
  () <b>const</b>
</pre>
        </td>

        <td>
          <p>Queries whether a resize is needed.</p>
        </td>
      </tr>

      <tr>
        <td>
          <pre>
<b>inline</b> <b>bool</b>
  is_grow_needed
  (<a href="#size_type55424436"><tt>size_type</tt></a> size, 
    <a href=
"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
</pre>
        </td>

        <td>
          <p>Queries whether a grow is needed.</p>

          <p>This method is called only if this object indicated
          resize is needed. The actual <span class=
          "c1"><tt>size</tt></span> of the table is <span class=
          "c1"><tt>size</tt></span>, and the number of entries in
          it is <span class="c1"><tt>num_entries</tt></span>.</p>
        </td>
      </tr>
    </table>

    <h2><a name="link14" id="link14">Private Methods</a></h2>

    <h3><a name="link15" id="link15">Overrides</a></h3>

    <table class="c1" width="100%" border="1" summary="Methods">
      <tr>
        <td width="45%" align="left"><b>Method</b></td>

        <td width="55%" align="left"><b>Description</b></td>
      </tr>

      <tr>
        <td>
          <pre>
<b>virtual</b> <b>void</b>
  do_resize
  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
</pre>
        </td>

        <td>
          <p>Resizes to <span class=
          "c1"><tt>new_size</tt></span>.</p>
        </td>
      </tr>
    </table>
  </div>
</body>
</html>
