Merge in docs.
[m6w6/libmemcached] / docs / libmemcached_examples.rst
index b6d27d5d113bd53c83381bfc4c269120eff6bb5a..81137e86353dc7e31a696932dc257bc89cf79ec5 100644 (file)
@@ -1,11 +1,9 @@
-=====================
-libmemcached examples
-=====================
-
+========
+Examples
+========
 
 Examples for libmemcached
 
 
 Examples for libmemcached
 
-
 -----------
 DESCRIPTION
 -----------
 -----------
 DESCRIPTION
 -----------
@@ -15,58 +13,60 @@ 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.
 
 distribution. These are always up to date, and are used for each test run of
 the library.
 
-------------------------------
-Creating and Freeing structure
-------------------------------
+
+---------------------
+Connecting to servers
+---------------------
 
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
 
-   memcached_st *memc;
-   memcached_return_t rc;
-   memc= memcached_create(NULL);
-   ...do stuff...
+   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);
 
 
    memcached_free(memc);
 
 
-The above code would create a connection and then free the connection when
-finished.
+In the above code you create a \ ``memcached_st``\  object with three server by making use of :manpage:`memcached_create_with_options(3)`.
 
 
 
 
----------------------
-Connecting to servers
----------------------
+--------------------------
+Creating a pool of 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++)
-   {
-     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);
+  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_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.
 
 
-You can reuse the \ ``memcached_server_st``\  object with multile \ ``memcached_st``\ 
-structures.
+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.
 
 
 ----------------------------
 
 
 ----------------------------
@@ -75,28 +75,17 @@ Adding a value to the server
 
 
 
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
    char *key= "foo";
 
    char *key= "foo";
-   char *value;
-   size_t value_length= 8191;
-   unsigned int x;
-   value = (char*)malloc(value_length);
-   assert(value);
-   for (x= 0; x < value_length; x++)
-   value[x] = (char) (x % 127);
-   for (x= 0; x < 1; x++)
+   char *value= "value";
+
+   memcached_return_t rc= memcached_set(memc, key, strlen(key), value, value_length, (time_t)0, (uint32_t)0);
+
+   if (rc != MEMCACHED_SUCCESS)
    {
    {
-     rc= memcached_set(memc, key, strlen(key), 
-     value, value_length,
-     (time_t)0, (uint32_t)0);
-     assert(rc == MEMCACHED_SUCCESS);
+   ... // handle failure
    }
    }
-   free(value);
 
 
 It is best practice to always look at the return value of any operation.
 
 
 It is best practice to always look at the return value of any operation.
@@ -108,7 +97,7 @@ Fetching multiple values
 
 
 
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
    memcached_return_t rc;
    char *keys[]= {"fudge", "son", "food"};
 
    memcached_return_t rc;
    char *keys[]= {"fudge", "son", "food"};
@@ -143,7 +132,7 @@ HOME
 
 
 To find out more information please check:
 
 
 To find out more information please check:
-`https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
+`http://libmemcached.org/ <http://libmemcached.org/>`_
 
 
 --------
 
 
 --------