<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<phpdoc:classref xml:id="class.quickhashinthash" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">

 <title>The QuickHashIntHash class</title>
 <titleabbrev>QuickHashIntHash</titleabbrev>

 <partintro>

<!-- {{{ QuickHashIntHash intro -->
  <section xml:id="quickhashinthash.intro">
   &reftitle.intro;
   <para>
    This class wraps around a hash containing integer numbers, where the
    values are also integer numbers. Hashes are also available as
    implementation of the <interfacename>ArrayAccess</interfacename> interface.
   </para>
   <para>
    Hashes can also be iterated over with <link linkend="control-structures.foreach"><literal>foreach</literal></link> as the <interfacename>Iterator</interfacename> interface is
    implemented as well. The order of which elements are returned in is not
    guaranteed.
   </para>
  </section>
<!-- }}} -->

  <section xml:id="quickhashinthash.synopsis">
   &reftitle.classsynopsis;

<!-- {{{ Synopsis -->
   <classsynopsis>
    <ooclass><classname>QuickHashIntHash</classname></ooclass>

<!-- {{{ Class synopsis -->
    <classsynopsisinfo>
     <ooclass>
      <classname>QuickHashIntHash</classname>
     </ooclass>
    </classsynopsisinfo>
<!-- }}} -->
    <classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
    <fieldsynopsis>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="quickhashinthash.constants.check-for-dupes">QuickHashIntHash::CHECK_FOR_DUPES</varname>
     <initializer>1</initializer>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="quickhashinthash.constants.do-not-use-zend-alloc">QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC</varname>
     <initializer>2</initializer>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="quickhashinthash.constants.hasher-no-hash">QuickHashIntHash::HASHER_NO_HASH</varname>
     <initializer>256</initializer>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="quickhashinthash.constants.hasher-jenkins1">QuickHashIntHash::HASHER_JENKINS1</varname>
     <initializer>512</initializer>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="quickhashinthash.constants.hasher-jenkins2">QuickHashIntHash::HASHER_JENKINS2</varname>
     <initializer>1024</initializer>
    </fieldsynopsis>

    <classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.quickhashinthash')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
   </classsynopsis>
<!-- }}} -->

  </section>

<!-- {{{ QuickHashIntHash constants -->
  <section xml:id="quickhashinthash.constants">
   &reftitle.constants;
   <variablelist>

    <varlistentry xml:id="quickhashinthash.constants.check-for-dupes">
     <term><constant>QuickHashIntHash::CHECK_FOR_DUPES</constant></term>
     <listitem>
      <para>If enabled, adding duplicate elements to a set (through either <methodname>QuickHashIntHash::add</methodname> or
      <methodname>QuickHashIntHash::loadFromFile</methodname>) will result in those elements to be dropped from the
      set. This will take up extra time, so only used when it is required.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="quickhashinthash.constants.do-not-use-zend-alloc">
     <term><constant>QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC</constant></term>
     <listitem>
      <para>Disables the use of PHP's internal memory manager for internal
      set structures. With this option enabled, internal allocations will not
      count towards the <link linkend="ini.memory-limit">memory_limit</link> settings.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="quickhashinthash.constants.hasher-no-hash">
     <term><constant>QuickHashIntHash::HASHER_NO_HASH</constant></term>
     <listitem>
      <para>Selects to not use a hashing function, but merely use a modulo to
      find the bucket list index. This is not faster than normal hashing, and
      gives more collisions.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="quickhashinthash.constants.hasher-jenkins1">
     <term><constant>QuickHashIntHash::HASHER_JENKINS1</constant></term>
     <listitem>
      <para>This is the default hashing function to turn the integer hashes
      into bucket list indexes.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="quickhashinthash.constants.hasher-jenkins2">
     <term><constant>QuickHashIntHash::HASHER_JENKINS2</constant></term>
     <listitem>
      <para>Selects a variant hashing algorithm.</para>
     </listitem>
    </varlistentry>

   </variablelist>
  </section>
<!-- }}} -->


 </partintro>

 &reference.quickhash.entities.quickhashinthash;

</phpdoc:classref>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
