Update from latest ddm4
[awesomized/libmemcached] / docs / libmemcached_examples.rst
index b6d27d5d113bd53c83381bfc4c269120eff6bb5a..a43ee1a2a11f77a07cffd6614531359ab9e0d13b 100644 (file)
@@ -1,11 +1,9 @@
-=====================
-libmemcached examples
-=====================
-
+========
+Examples
+========
 
 Examples for libmemcached
 
 
 Examples for libmemcached
 
-
 -----------
 DESCRIPTION
 -----------
 -----------
 DESCRIPTION
 -----------
@@ -15,58 +13,63 @@ 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
 
 
-   memcached_st *memc;
-   memcached_return_t rc;
-   memc= memcached_create(NULL);
-   ...do stuff...
+.. 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);
 
 
    memcached_free(memc);
 
 
-The above code would create a connection and then free the connection when
-finished.
+In the above code you create a :c:type:`memcached_st` object with three server 
+by making use of :c:func:`memcached_create`.
 
 
 
 
----------------------
-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);
+Creating a pool of Servers::
+
+  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;
 
 
-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.
+  memcached_st *memc= memcached_pool_pop(pool, false, &rc);
 
 
-You can reuse the \ ``memcached_server_st``\  object with multile \ ``memcached_st``\ 
-structures.
+  .... 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 :c:type:`memcached_pool_st` object with three
+server by making use of :c:func:`memcached_pool()`.
+
+When :c:func:`memcached_pool_destroy()` all memory will be released that is associated
+with the pool.
 
 
 ----------------------------
 
 
 ----------------------------
@@ -75,28 +78,19 @@ Adding a value to the server
 
 
 
 
 
 
-.. code-block:: perl
+.. code-block:: c
+
+Adding a value to the Server::
 
    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,21 +102,21 @@ Fetching multiple values
 
 
 
 
 
 
-.. code-block:: perl
+.. code-block:: c
 
    memcached_return_t rc;
    char *keys[]= {"fudge", "son", "food"};
    size_t key_length[]= {5, 3, 4};
    unsigned int x;
    uint32_t flags;
 
    memcached_return_t rc;
    char *keys[]= {"fudge", "son", "food"};
    size_t key_length[]= {5, 3, 4};
    unsigned int x;
    uint32_t flags;
+
    char return_key[MEMCACHED_MAX_KEY];
    size_t return_key_length;
    char *return_value;
    size_t return_value_length;
    char return_key[MEMCACHED_MAX_KEY];
    size_t return_key_length;
    char *return_value;
    size_t return_value_length;
+
    rc= memcached_mget(memc, keys, key_length, 3);
    rc= memcached_mget(memc, keys, key_length, 3);
+
    x= 0;
    while ((return_value= memcached_fetch(memc, return_key, &return_key_length, 
                                          &return_value_length, &flags, &rc)))
    x= 0;
    while ((return_value= memcached_fetch(memc, return_key, &return_key_length, 
                                          &return_value_length, &flags, &rc)))
@@ -133,7 +127,7 @@ Fetching multiple values
 
 
 Notice that you freed values returned from memcached_fetch(). The define
 
 
 Notice that you freed values returned from memcached_fetch(). The define
-\ ``MEMCACHED_MAX_KEY``\  is provided for usage.
+:c:type:`MEMCACHED_MAX_KEY` is provided for usage.
 
 
 
 
 
 
@@ -143,7 +137,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/>`_
 
 
 --------
 
 
 --------