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

<appendix xml:id="memcached.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 &reftitle.constants;
 &extension.constants;
 <variablelist>

  <varlistentry xml:id="memcached.constants.opt-compression">
   <term><constant>Memcached::OPT_COMPRESSION</constant></term>
   <listitem>
    <para>Enables or disables payload compression. When enabled,
     item values longer than a certain threshold (currently 100 bytes) will be
     compressed during storage and decompressed during retrieval
     transparently.</para>
    <para>Type: &boolean;, default: &true;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-serializer">
   <term><constant>Memcached::OPT_SERIALIZER</constant></term>
   <listitem>
    <para>
     Specifies the serializer to use for serializing non-scalar values.
     The valid serializers are <constant>Memcached::SERIALIZER_PHP</constant>
     or <constant>Memcached::SERIALIZER_IGBINARY</constant>. The latter is
     supported only when memcached is configured with
     <literal>--enable-memcached-igbinary</literal> option and the
     <literal>igbinary</literal> extension is loaded.
    </para>
    <para>Type: &integer;, default: <constant>Memcached::SERIALIZER_PHP</constant>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.serializer-php">
   <term><constant>Memcached::SERIALIZER_PHP</constant></term>
   <listitem>
    <para>The default PHP serializer.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.serializer-igbinary">
   <term><constant>Memcached::SERIALIZER_IGBINARY</constant></term>
   <listitem>
    <para>The <link xlink:href="&url.igbinary;">igbinary</link> serializer.
     Instead of textual representation it stores PHP data structures in a
     compact binary form, resulting in space and time gains.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.serializer-json">
   <term><constant>Memcached::SERIALIZER_JSON</constant></term>
   <listitem>
    <para>The JSON serializer.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-prefix-key">
   <term><constant>Memcached::OPT_PREFIX_KEY</constant></term>
   <listitem>
    <para>This can be used to create a "domain" for your item keys. The value
     specified here will be prefixed to each of the keys. It cannot be
     longer than <literal>128</literal> characters and will reduce the
     maximum available key size. The prefix is applied only to the item keys,
     not to the server keys.</para>
    <para>Type: &string;, default: <literal>""</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-hash">
   <term><constant>Memcached::OPT_HASH</constant></term>
   <listitem>
    <para>Specifies the hashing algorithm used for the item keys. The valid
     values are supplied via <constant>Memcached::HASH_*</constant> constants.
     Each hash algorithm has its advantages and its disadvantages. Go with the
     default if you don't know or don't care.</para>
    <para>Type: &integer;, default: <constant>Memcached::HASH_DEFAULT</constant></para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-default">
   <term><constant>Memcached::HASH_DEFAULT</constant></term>
   <listitem>
    <para>The default (Jenkins one-at-a-time) item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-md5">
   <term><constant>Memcached::HASH_MD5</constant></term>
   <listitem>
    <para>MD5 item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-crc">
   <term><constant>Memcached::HASH_CRC</constant></term>
   <listitem>
    <para>CRC item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-fnv1-64">
   <term><constant>Memcached::HASH_FNV1_64</constant></term>
   <listitem>
    <para>FNV1_64 item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-fnv1a-64">
   <term><constant>Memcached::HASH_FNV1A_64</constant></term>
   <listitem>
    <para>FNV1_64A item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-fnv1-32">
   <term><constant>Memcached::HASH_FNV1_32</constant></term>
   <listitem>
    <para>FNV1_32 item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-fnv1a-32">
   <term><constant>Memcached::HASH_FNV1A_32</constant></term>
   <listitem>
    <para>FNV1_32A item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-hsieh">
   <term><constant>Memcached::HASH_HSIEH</constant></term>
   <listitem>
    <para>Hsieh item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.hash-murmur">
   <term><constant>Memcached::HASH_MURMUR</constant></term>
   <listitem>
    <para>Murmur item key hashing algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-distribution">
   <term><constant>Memcached::OPT_DISTRIBUTION</constant></term>
   <listitem>
    <para>Specifies the method of distributing item keys to the servers.
     Currently supported methods are modulo and consistent hashing. Consistent
     hashing delivers better distribution and allows servers to be added to
     the cluster with minimal cache losses.</para>
    <para>Type: &integer;, default: <constant>Memcached::DISTRIBUTION_MODULA.</constant></para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.distribution-modula">
   <term><constant>Memcached::DISTRIBUTION_MODULA</constant></term>
   <listitem>
    <para>Modulo-based key distribution algorithm.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.distribution-consistent">
   <term><constant>Memcached::DISTRIBUTION_CONSISTENT</constant></term>
   <listitem>
    <para>Consistent hashing key distribution algorithm (based on libketama).</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-libketama-compatible">
   <term><constant>Memcached::OPT_LIBKETAMA_COMPATIBLE</constant></term>
   <listitem>
    <para>Enables or disables compatibility with libketama-like behavior. When
     enabled, the item key hashing algorithm is set to MD5 and distribution is
     set to be weighted consistent hashing distribution. This is useful
     because other libketama-based clients (Python, Ruby, etc.) with the same
     server configuration will be able to access the keys transparently.
    </para>
    <note>
     <para>
      It is highly recommended to enable this option if you want to use
     consistent hashing, and it may be enabled by default in future
     releases.
     </para>
    </note>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-buffer-writes">
   <term><constant>Memcached::OPT_BUFFER_WRITES</constant></term>
   <listitem>
    <para>Enables or disables buffered I/O. Enabling buffered I/O causes
     storage commands to "buffer" instead of being sent. Any action that
     retrieves data causes this buffer to be sent to the remote connection.
     Quitting the connection or closing down the connection will also cause
     the buffered data to be pushed to the remote connection.</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-binary-protocol">
   <term><constant>Memcached::OPT_BINARY_PROTOCOL</constant></term>
   <listitem>
    <para>Enable the use of the binary protocol. Please note that you cannot
     toggle this option on an open connection.</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-no-block">
   <term><constant>Memcached::OPT_NO_BLOCK</constant></term>
   <listitem>
    <para>Enables or disables asynchronous I/O. This is the fastest transport
     available for storage functions.</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-noreply">
   <term><constant>Memcached::OPT_NOREPLY</constant></term>
   <listitem>
    <para>
     Enables or disables ignoring the result of storage commands 
     (set, add, replace, append, prepend, delete, increment, decrement, etc.). 
     Storage commands will be sent without spending time waiting for a reply 
     (there would be no reply).
     Retrieval commands such as <function>Memcached::get</function> are unaffected by this setting.</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-tcp-nodelay">
   <term><constant>Memcached::OPT_TCP_NODELAY</constant></term>
   <listitem>
    <para>Enables or disables the no-delay feature for connecting sockets (may
     be faster in some environments).</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-socket-send-size">
   <term><constant>Memcached::OPT_SOCKET_SEND_SIZE</constant></term>
   <listitem>
    <para>The maximum socket send buffer in bytes.</para>
    <para>Type: &integer;, default: varies by platform/kernel
     configuration.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-socket-recv-size">
   <term><constant>Memcached::OPT_SOCKET_RECV_SIZE</constant></term>
   <listitem>
    <para>The maximum socket receive buffer in bytes.</para>
    <para>Type: &integer;, default: varies by platform/kernel
     configuration.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-connect-timeout">
   <term><constant>Memcached::OPT_CONNECT_TIMEOUT</constant></term>
   <listitem>
    <para>In non-blocking mode this set the value of the timeout during socket
     connection, in milliseconds.</para>
    <para>Type: &integer;, default: <literal>1000</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-retry-timeout">
   <term><constant>Memcached::OPT_RETRY_TIMEOUT</constant></term>
   <listitem>
    <para>The amount of time, in seconds, to wait until retrying a failed
     connection attempt.</para>
    <para>Type: &integer;, default: <literal>0</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-send-timeout">
   <term><constant>Memcached::OPT_SEND_TIMEOUT</constant></term>
   <listitem>
    <para>Socket sending timeout, in microseconds. In cases where you cannot
     use non-blocking I/O this will allow you to still have timeouts on the
     sending of data.</para>
    <para>Type: &integer;, default: <literal>0</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-recv-timeout">
   <term><constant>Memcached::OPT_RECV_TIMEOUT</constant></term>
   <listitem>
    <para>Socket reading timeout, in microseconds. In cases where you cannot
     use non-blocking I/O this will allow you to still have timeouts on the
     reading of data.</para>
    <para>Type: &integer;, default: <literal>0</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-poll-timeout">
   <term><constant>Memcached::OPT_POLL_TIMEOUT</constant></term>
   <listitem>
    <para>Timeout for connection polling, in milliseconds.</para>
    <para>Type: &integer;, default: <literal>1000</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-cache-lookups">
   <term><constant>Memcached::OPT_CACHE_LOOKUPS</constant></term>
   <listitem>
    <para>Enables or disables caching of DNS lookups.</para>
    <para>Type: &boolean;, default: &false;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.opt-server-failure-limit">
   <term><constant>Memcached::OPT_SERVER_FAILURE_LIMIT</constant></term>
   <listitem>
    <para>Specifies the failure limit for server connection attempts. The
     server will be removed after this many continuous connection
     failures.</para>
    <para>Type: &integer;, default: <literal>0</literal>.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.have-igbinary">
   <term><constant>Memcached::HAVE_IGBINARY</constant></term>
   <listitem>
    <para>Indicates whether igbinary serializer support is available.</para>
    <para>Type: &boolean;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.have-json">
   <term><constant>Memcached::HAVE_JSON</constant></term>
   <listitem>
    <para>Indicates whether JSON serializer support is available.</para>
    <para>Type: &boolean;.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.have-msgpack">
   <term><constant>Memcached::HAVE_MSGPACK</constant></term>
   <listitem>
    <para>Indicates whether msgpack serializer support is available.</para>
    <para>Type: &boolean;.</para>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.have-session">
   <term><constant>Memcached::HAVE_SESSION</constant></term>
   <listitem>
    <para>Type: &boolean;.</para>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.have-sasl">
   <term><constant>Memcached::HAVE_SASL</constant></term>
   <listitem>
    <para>Type: &boolean;.</para>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.get-extended">
   <term><constant>Memcached::GET_EXTENDED</constant></term>
   <listitem>
    <para>A flag for <function>Memcached::get</function>, <function>Memcached::getMulti</function> and
     <function>Memcached::getMultiByKey</function> to ensure that the CAS token values
     are returned as well.</para>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.get-preserve-order">
   <term><constant>Memcached::GET_PRESERVE_ORDER</constant></term>
   <listitem>
    <para>A flag for <function>Memcached::getMulti</function> and
     <function>Memcached::getMultiByKey</function> to ensure that the keys are
     returned in the same order as they were requested in. Non-existing keys
     get a default value of NULL.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-success">
   <term><constant>Memcached::RES_SUCCESS</constant></term>
   <listitem>
    <para>The operation was successful.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-failure">
   <term><constant>Memcached::RES_FAILURE</constant></term>
   <listitem>
    <para>The operation failed in some fashion.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-host-lookup-failure">
   <term><constant>Memcached::RES_HOST_LOOKUP_FAILURE</constant></term>
   <listitem>
    <para>DNS lookup failed.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-unknown-read-failure">
   <term><constant>Memcached::RES_UNKNOWN_READ_FAILURE</constant></term>
   <listitem>
    <para>Failed to read network data.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-protocol-error">
   <term><constant>Memcached::RES_PROTOCOL_ERROR</constant></term>
   <listitem>
    <para>Bad command in memcached protocol.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-client-error">
   <term><constant>Memcached::RES_CLIENT_ERROR</constant></term>
   <listitem>
    <para>Error on the client side.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-server-error">
   <term><constant>Memcached::RES_SERVER_ERROR</constant></term>
   <listitem>
    <para>Error on the server side.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-write-failure">
   <term><constant>Memcached::RES_WRITE_FAILURE</constant></term>
   <listitem>
    <para>Failed to write network data.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-data-exists">
   <term><constant>Memcached::RES_DATA_EXISTS</constant></term>
   <listitem>
    <para>Failed to do compare-and-swap: item you are trying to store has been
     modified since you last fetched it.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-notstored">
   <term><constant>Memcached::RES_NOTSTORED</constant></term>
   <listitem>
    <para>Item was not stored: but not because of an error. This normally
     means that either the condition for an "add" or a "replace" command
     wasn't met, or that the item is in a delete queue.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-notfound">
   <term><constant>Memcached::RES_NOTFOUND</constant></term>
   <listitem>
    <para>Item with this key was not found (with "get" operation or "cas"
     operations).</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-partial-read">
   <term><constant>Memcached::RES_PARTIAL_READ</constant></term>
   <listitem>
    <para>Partial network data read error.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-some-errors">
   <term><constant>Memcached::RES_SOME_ERRORS</constant></term>
   <listitem>
    <para>Some errors occurred during multi-get.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-no-servers">
   <term><constant>Memcached::RES_NO_SERVERS</constant></term>
   <listitem>
    <para>Server list is empty.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-end">
   <term><constant>Memcached::RES_END</constant></term>
   <listitem>
    <para>End of result set.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-errno">
   <term><constant>Memcached::RES_ERRNO</constant></term>
   <listitem>
    <para>System error.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-buffered">
   <term><constant>Memcached::RES_BUFFERED</constant></term>
   <listitem>
    <para>The operation was buffered.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-timeout">
   <term><constant>Memcached::RES_TIMEOUT</constant></term>
   <listitem>
    <para>The operation timed out.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-bad-key-provided">
   <term><constant>Memcached::RES_BAD_KEY_PROVIDED</constant></term>
   <listitem>
    <para>Bad key.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-connection-socket-create-failure">
   <term><constant>Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE</constant></term>
   <listitem>
    <para>Failed to create network socket.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-payload-failure">
   <term><constant>Memcached::RES_PAYLOAD_FAILURE</constant></term>
   <listitem>
    <para>Payload failure: could not compress/decompress or serialize/unserialize the value.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-auth-problem">
   <term><constant>Memcached::RES_AUTH_PROBLEM</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-auth-failure">
   <term><constant>Memcached::RES_AUTH_FAILURE</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-auth-continue">
   <term><constant>Memcached::RES_AUTH_CONTINUE</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-e2big">
   <term><constant>Memcached::RES_E2BIG</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-key-too-big">
   <term><constant>Memcached::RES_KEY_TOO_BIG</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-server-temporarily-disabled">
   <term><constant>Memcached::RES_SERVER_TEMPORARILY_DISABLED</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

  <varlistentry xml:id="memcached.constants.res-server-memory-allocation-failure">
   <term><constant>Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE</constant></term>
   <listitem>
    <para>Available as of Memcached 3.0.0.</para>
   </listitem>
  </varlistentry>

 </variablelist>
</appendix>

<!-- 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
-->

