Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

memcached-test.c 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <netdb.h>
  4. #include <errno.h>
  5. #include <string.h>
  6. #include <netinet/in.h>
  7. #include <arpa/inet.h>
  8. #include <event.h>
  9. #include "upstream.h"
  10. #include "memcached.h"
  11. #define HOST "127.0.0.1"
  12. #define PORT 11211
  13. memcached_param_t cur_param;
  14. static void
  15. test_memc_callback (memcached_ctx_t *ctx, memc_error_t error, void *data)
  16. {
  17. int s;
  18. int r;
  19. int *num = ((int *)data);
  20. printf ("result of memc command '%s' is '%s'\n", ctx->cmd, memc_strerror (error));
  21. /* Connect */
  22. if (*num == 0) {
  23. printf ("Setting value to memcached: %s -> %s\n", cur_param.key, (char *)cur_param.buf);
  24. s = 1;
  25. r = memc_set (ctx, &cur_param, &s, 60);
  26. (*num)++;
  27. }
  28. else if (*num == 1) {
  29. printf ("Getting value from memcached: %s -> %s\n", cur_param.key, (char *)cur_param.buf);
  30. s = 1;
  31. r = memc_get (ctx, &cur_param, &s);
  32. (*num)++;
  33. }
  34. else {
  35. printf ("Got value from memcached: %s -> %s\n", cur_param.key, (char *)cur_param.buf);
  36. event_loopexit (NULL);
  37. }
  38. }
  39. int
  40. main (int argc, char **argv)
  41. {
  42. memcached_ctx_t mctx;
  43. char *addr, buf[512];
  44. int num = 0;
  45. event_init ();
  46. strcpy (cur_param.key, "testkey");
  47. strcpy (buf, "test_value");
  48. cur_param.buf = buf;
  49. cur_param.bufsize = sizeof ("test_value") - 1;
  50. if (argc == 2) {
  51. addr = argv[1];
  52. }
  53. else {
  54. addr = HOST;
  55. }
  56. mctx.protocol = TCP_TEXT;
  57. mctx.timeout.tv_sec = 1;
  58. mctx.timeout.tv_usec = 0;
  59. mctx.port = htons (PORT);
  60. mctx.options = MEMC_OPT_DEBUG;
  61. mctx.callback = test_memc_callback;
  62. /* XXX: it is wrong to use local variable pointer here */
  63. mctx.callback_data = (void *)&num;
  64. inet_aton (addr, &mctx.addr);
  65. memc_init_ctx (&mctx);
  66. event_loop (0);
  67. return 0;
  68. }