Merge in additional documentation updates.
[m6w6/libmemcached] / docs / libmemcached_examples.rst
index 82e2858852f825e9a326d06650b1d5e53941eba3..5c3acf6a9ac2725ac2a028dc0394d9664403b48e 100644 (file)
@@ -1,29 +1,24 @@
-.. highlight:: perl
+========
+Examples
+========
 
+Examples for libmemcached
 
-****
-NAME
-****
-
-
-libmemcached_examples - Examples for libmemcached
-
-
-***********
+-----------
 DESCRIPTION
-***********
+-----------
 
 
 For full examples, test cases are found in tests/\*.c in the main
 distribution. These are always up to date, and are used for each test run of
 the library.
 
-Creating and Freeing structure
-==============================
+-----------------------------------------------
+Creating and Freeing the memcached_st structure
+-----------------------------------------------
 
 
-
-.. code-block:: perl
+.. code-block:: c
 
    memcached_st *memc;
    memcached_return_t rc;
@@ -37,46 +32,69 @@ The above code would create a connection and then free the connection when
 finished.
 
 
+---------------------
 Connecting to servers
-=====================
+---------------------
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
-   memcached_server_st *servers;
-   memcached_st *memc= memcached_create(NULL);
-   char servername[]= "0.example.com";
-   servers= memcached_server_list_append(NULL, servername, 400, &rc);
-   for (x= 0; x < 20; x++)
+   const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com"
+   memcached_st *memc= memcached_create_with_options(config_string, strlen(config_string);
    {
-     char buffer[SMALL_STRING_LEN];
-     snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x);
-     servers= memcached_server_list_append(servers, buffer, 401, &rc);
+    ...
    }
-   rc= memcached_server_push(memc, servers);
-   memcached_server_free(servers);
    memcached_free(memc);
 
 
-In the above code you create a \ ``memcached_st``\  object that you then feed in a
-single host into. In the for loop you build a \ ``memcached_server_st``\ 
-pointer that you then later feed via memcached_server_push() into the
-\ ``memcached_st``\  structure.
+In the above code you create a \ ``memcached_st``\  object with three server by making use of :manpage:`memcached_create_with_options(3)`.
+
+
+--------------------------
+Creating a pool of servers
+--------------------------
+
+
+
+.. code-block:: c
 
-You can reuse the \ ``memcached_server_st``\  object with multile \ ``memcached_st``\ 
-structures.
+  const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com"; 
+  
+  memcached_pool_st* pool= memcached_pool(config_string, strlen(config_string));
 
+  memcached_return_t rc;
 
+  memcached_st *memc= memcached_pool_pop(pool, false, &rc);
+
+  .... do work
+
+  /*
+    Release the memc_ptr that was pulled from the pool
+  */
+  memcached_pool_push(pool, memc);
+
+  /*
+    Destroy the pool.
+  */
+  memcached_pool_destroy(pool);
+
+
+
+In the above code you create a \ ``memcached_pool_st``\  object with three
+server by making use of :manpage:`memcached_pool(3)`.
+
+When memcached_pool_destroy() all memory will be released that is associated
+with the pool.
+
+
+----------------------------
 Adding a value to the server
-============================
+----------------------------
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
    char *key= "foo";
    char *value;
@@ -103,12 +121,13 @@ Adding a value to the server
 It is best practice to always look at the return value of any operation.
 
 
+------------------------
 Fetching multiple values
-========================
+------------------------
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
    memcached_return_t rc;
    char *keys[]= {"fudge", "son", "food"};
@@ -137,27 +156,19 @@ Notice that you freed values returned from memcached_fetch(). The define
 
 
 
-****
+----
 HOME
-****
+----
 
 
 To find out more information please check:
 `https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
 
 
-******
-AUTHOR
-******
-
-
-Brian Aker, <brian@tangent.org>
-
-
-********
+--------
 SEE ALSO
-********
+--------
 
 
-memcached(1)
+:manpage:`memcached(1)`