docs: sanitize
[awesomized/libmemcached] / docs / source / libmemcached / configuration.rst
diff --git a/docs/source/libmemcached/configuration.rst b/docs/source/libmemcached/configuration.rst
new file mode 100644 (file)
index 0000000..36b1bc4
--- /dev/null
@@ -0,0 +1,225 @@
+libmemcached Configuration
+==========================
+
+SYNOPSIS
+--------
+
+#include <libmemcached-1.0/memcached.h>
+  Compile and link with -lmemcached
+
+.. function:: memcached_st *memcached(const char *string, size_t string_length)
+
+.. function:: memcached_return_t libmemcached_check_configuration(const char *option_string, size_t length, char *error_buffer, size_t error_buffer_size)
+
+DESCRIPTION
+-----------
+
+`libmemcached` implements a custom language for configuring and modifying
+servers. By passing in an option string you can generate a `memcached_st` object
+that you can use in your application directly.
+
+General Options:
+~~~~~~~~~~~~~~~~
+
+.. describe::  --SERVER=<servername>:<optional_port>/?<optional_weight>
+
+    Provide a servername to be used by the client.
+
+    Providing a weight will cause weighting to occur with all hosts with each 
+    server getting a default weight of 1.
+
+.. describe:: --SOCKET=\"<filepath>/?<optional_weight>\"
+
+    Provide a filepath to a UNIX socket file. Providing a weight will cause 
+    weighting to occur with all hosts with each server getting a default weight 
+    of 1.
+
+.. describe:: --VERIFY-KEY
+
+    Verify that keys that are being used fit within the design of the protocol 
+    being used.
+
+.. describe:: --REMOVE_FAILED_SERVERS
+
+    Enable the behavior `MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS`.
+
+.. describe:: --BINARY-PROTOCOL
+
+    Force all connections to use the binary protocol.
+
+.. describe:: --BUFFER-REQUESTS
+
+    Please see `MEMCACHED_BEHAVIOR_BUFFER_REQUESTS`.
+
+.. describe:: --CONFIGURE-FILE=
+
+    Provide a configuration file to be used to load requests. Beware that by 
+    using a configuration file `libmemcached` will reset `memcached_st` based 
+    on information only contained in the file.
+
+.. describe:: --CONNECT-TIMEOUT=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT`. 
+
+.. describe:: --DISTRIBUTION=
+
+    Set the distribution model used by the client.
+    See `memcached_behavior_set` for more details.
+
+.. describe:: --HASH=
+
+    Set the hashing algorithm used for placing keys on servers.
+
+.. describe:: --HASH-WITH-NAMESPACE
+
+    When enabled the prefix key will be added to the key when determining which
+    server to store the data in.
+
+.. describe:: --NOREPLY
+
+    Enable "no reply" for all calls that support this. It is highly recommended
+    that you use this option with the binary protocol only.
+
+.. describe:: --NUMBER-OF-REPLICAS=
+
+    Set the number of servers that keys will be replicated to.
+
+.. describe:: --RANDOMIZE-REPLICA-READ
+
+    Select randomly the server within the replication pool to read from.
+
+.. describe:: --SORT-HOSTS
+
+    When adding new servers always calculate their distribution based on sorted 
+    naming order.
+
+.. describe:: --SUPPORT-CAS
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_SUPPORT_CAS`
+
+.. describe:: --USE-UDP
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_USE_UDP`
+
+.. describe:: --NAMESPACE=
+
+    A namespace is a container that provides context for keys, only other
+    requests that know the namespace can access these values. This is
+    accomplished by prepending the namespace value to all keys.
+
+Memcached Pool Options:
+~~~~~~~~~~~~~~~~~~~~~~~
+
+.. describe:: --POOL-MIN
+
+    Initial size of pool.
+
+.. describe:: --POOL-MAX
+
+    Maximize size of the pool.
+
+I/O Options:
+~~~~~~~~~~~~
+
+.. describe:: --TCP-NODELAY
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_TCP_NODELAY`
+
+.. describe:: --TCP-KEEPALIVE
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_TCP_KEEPALIVE`
+
+.. describe:: --RETRY-TIMEOUT=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_RETRY_TIMEOUT`
+
+.. describe:: --SERVER-FAILURE-LIMIT=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT`
+
+.. describe:: --SND-TIMEOUT=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_SND_TIMEOUT`
+
+.. describe:: --SOCKET-RECV-SIZE=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE`
+
+.. describe:: --SOCKET-SEND-SIZE=
+
+    See `memcached_behavior_set` for `MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE`
+
+.. describe:: --POLL-TIMEOUT=
+
+    Set the timeout used by :manpage:`poll(3)`.
+
+.. describe:: --IO-BYTES-WATERMARK=
+
+.. describe:: --IO-KEY-PREFETCH=
+
+.. describe:: --IO-MSG-WATERMARK=
+
+.. describe:: --TCP-KEEPIDLE
+
+.. describe:: --RCV-TIMEOUT=
+
+Other Options:
+~~~~~~~~~~~~~~
+
+.. describe:: INCLUDE
+
+    Include a file in configuration.
+    Unlike --CONFIGURE-FILE= this will not reset `memcached_st`.
+
+.. describe:: RESET
+
+    Reset `memcached_st` and continue to process.
+
+.. describe:: END
+
+    End configuration processing.
+
+.. describe:: ERROR
+
+    End configuration processing and throw an error.
+
+ENVIRONMENT
+-----------
+
+.. envvar:: LIBMEMCACHED
+
+RETURN VALUE
+------------
+
+:func:`memcached()` returns a pointer to the memcached_st that was
+created (or initialized).  On an allocation failure, it returns NULL.
+
+EXAMPLE 
+-------
+
+.. code-block:: c
+
+   const char *config_string=
+     "--SERVER=host10.example.com "
+     "--SERVER=host11.example.com "
+     "--SERVER=host10.example.com";
+   memcached_st *memc= memcached(config_string, strlen(config_string));
+   {
+     // ...
+   }
+   memcached_free(memc);
+
+SEE ALSO
+--------
+
+.. only:: man
+
+    :manpage:`memcached(1)`
+    :manpage:`libmemcached(3)`
+    :manpage:`memcached_strerror(3)`
+
+.. only:: html
+
+    * :manpage:`memcached(1)`
+    * :doc:`../libmemcached`
+    * :doc:`memcached_strerror`