11588ad9f69353b4b785acfba50bca0fcdf6f318
[awesomized/libmemcached] / src / execute.c
1 /*
2 Execute a memcached_set() a set of pairs.
3 Return the number of rows set.
4 */
5
6 #include "execute.h"
7
8 unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
9 {
10 memcached_return rc;
11 unsigned int x;
12 unsigned int pairs_sent;
13
14 for (x= 0, pairs_sent= 0; x < number_of; x++)
15 {
16 rc= memcached_set(memc, pairs[x].key, pairs[x].key_length,
17 pairs[x].value, pairs[x].value_length,
18 0, 0);
19 if (rc != MEMCACHED_SUCCESS)
20 fprintf(stderr, "Failured on insert of %.*s\n",
21 (unsigned int)pairs[x].key_length, pairs[x].key);
22 else
23 pairs_sent++;
24 }
25
26 return pairs_sent;
27 }
28
29 /*
30 Execute a memcached_get() on a set of pairs.
31 Return the number of rows retrieved.
32 */
33 unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
34 {
35 memcached_return rc;
36 unsigned int x;
37 unsigned int retrieved;
38
39
40 for (x= 0; x < number_of; x++)
41 {
42 char *value;
43 size_t value_length;
44 uint16_t flags;
45 unsigned int fetch_key;
46
47 fetch_key= random() % number_of;
48
49 value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length,
50 &value_length, &flags, &rc);
51
52 if (rc != MEMCACHED_SUCCESS)
53 fprintf(stderr, "Failured on read of %.*s\n",
54 (unsigned int)pairs[fetch_key].key_length, pairs[fetch_key].key);
55 else
56 retrieved++;
57
58 free(value);
59 }
60
61 return retrieved;
62 }