redis-client 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Gemfile +1 -2
  4. data/Gemfile.lock +2 -3
  5. data/README.md +66 -3
  6. data/Rakefile +43 -23
  7. data/lib/redis_client/command_builder.rb +83 -0
  8. data/lib/redis_client/config.rb +9 -48
  9. data/lib/redis_client/connection_mixin.rb +38 -0
  10. data/lib/redis_client/decorator.rb +84 -0
  11. data/lib/redis_client/pooled.rb +38 -30
  12. data/lib/redis_client/ruby_connection/buffered_io.rb +153 -0
  13. data/lib/redis_client/{resp3.rb → ruby_connection/resp3.rb} +0 -26
  14. data/lib/redis_client/{connection.rb → ruby_connection.rb} +26 -31
  15. data/lib/redis_client/version.rb +1 -1
  16. data/lib/redis_client.rb +162 -36
  17. data/redis-client.gemspec +2 -4
  18. metadata +12 -59
  19. data/.rubocop.yml +0 -190
  20. data/ext/redis_client/hiredis/export.clang +0 -2
  21. data/ext/redis_client/hiredis/export.gcc +0 -7
  22. data/ext/redis_client/hiredis/extconf.rb +0 -62
  23. data/ext/redis_client/hiredis/hiredis_connection.c +0 -708
  24. data/ext/redis_client/hiredis/vendor/.gitignore +0 -9
  25. data/ext/redis_client/hiredis/vendor/.travis.yml +0 -131
  26. data/ext/redis_client/hiredis/vendor/CHANGELOG.md +0 -364
  27. data/ext/redis_client/hiredis/vendor/CMakeLists.txt +0 -165
  28. data/ext/redis_client/hiredis/vendor/COPYING +0 -29
  29. data/ext/redis_client/hiredis/vendor/Makefile +0 -308
  30. data/ext/redis_client/hiredis/vendor/README.md +0 -664
  31. data/ext/redis_client/hiredis/vendor/adapters/ae.h +0 -130
  32. data/ext/redis_client/hiredis/vendor/adapters/glib.h +0 -156
  33. data/ext/redis_client/hiredis/vendor/adapters/ivykis.h +0 -84
  34. data/ext/redis_client/hiredis/vendor/adapters/libev.h +0 -179
  35. data/ext/redis_client/hiredis/vendor/adapters/libevent.h +0 -175
  36. data/ext/redis_client/hiredis/vendor/adapters/libuv.h +0 -117
  37. data/ext/redis_client/hiredis/vendor/adapters/macosx.h +0 -115
  38. data/ext/redis_client/hiredis/vendor/adapters/qt.h +0 -135
  39. data/ext/redis_client/hiredis/vendor/alloc.c +0 -86
  40. data/ext/redis_client/hiredis/vendor/alloc.h +0 -91
  41. data/ext/redis_client/hiredis/vendor/appveyor.yml +0 -24
  42. data/ext/redis_client/hiredis/vendor/async.c +0 -887
  43. data/ext/redis_client/hiredis/vendor/async.h +0 -147
  44. data/ext/redis_client/hiredis/vendor/async_private.h +0 -75
  45. data/ext/redis_client/hiredis/vendor/dict.c +0 -352
  46. data/ext/redis_client/hiredis/vendor/dict.h +0 -126
  47. data/ext/redis_client/hiredis/vendor/fmacros.h +0 -12
  48. data/ext/redis_client/hiredis/vendor/hiredis-config.cmake.in +0 -13
  49. data/ext/redis_client/hiredis/vendor/hiredis.c +0 -1174
  50. data/ext/redis_client/hiredis/vendor/hiredis.h +0 -336
  51. data/ext/redis_client/hiredis/vendor/hiredis.pc.in +0 -12
  52. data/ext/redis_client/hiredis/vendor/hiredis_ssl-config.cmake.in +0 -13
  53. data/ext/redis_client/hiredis/vendor/hiredis_ssl.h +0 -157
  54. data/ext/redis_client/hiredis/vendor/hiredis_ssl.pc.in +0 -12
  55. data/ext/redis_client/hiredis/vendor/net.c +0 -612
  56. data/ext/redis_client/hiredis/vendor/net.h +0 -56
  57. data/ext/redis_client/hiredis/vendor/read.c +0 -739
  58. data/ext/redis_client/hiredis/vendor/read.h +0 -129
  59. data/ext/redis_client/hiredis/vendor/sds.c +0 -1289
  60. data/ext/redis_client/hiredis/vendor/sds.h +0 -278
  61. data/ext/redis_client/hiredis/vendor/sdsalloc.h +0 -44
  62. data/ext/redis_client/hiredis/vendor/sockcompat.c +0 -248
  63. data/ext/redis_client/hiredis/vendor/sockcompat.h +0 -92
  64. data/ext/redis_client/hiredis/vendor/ssl.c +0 -544
  65. data/ext/redis_client/hiredis/vendor/test.c +0 -1401
  66. data/ext/redis_client/hiredis/vendor/test.sh +0 -78
  67. data/ext/redis_client/hiredis/vendor/win32.h +0 -56
  68. data/lib/redis_client/buffered_io.rb +0 -151
  69. data/lib/redis_client/hiredis_connection.rb +0 -80
@@ -1,129 +0,0 @@
1
- /*
2
- * Copyright (c) 2009-2011, Salvatore Sanfilippo <antirez at gmail dot com>
3
- * Copyright (c) 2010-2011, Pieter Noordhuis <pcnoordhuis at gmail dot com>
4
- *
5
- * All rights reserved.
6
- *
7
- * Redistribution and use in source and binary forms, with or without
8
- * modification, are permitted provided that the following conditions are met:
9
- *
10
- * * Redistributions of source code must retain the above copyright notice,
11
- * this list of conditions and the following disclaimer.
12
- * * Redistributions in binary form must reproduce the above copyright
13
- * notice, this list of conditions and the following disclaimer in the
14
- * documentation and/or other materials provided with the distribution.
15
- * * Neither the name of Redis nor the names of its contributors may be used
16
- * to endorse or promote products derived from this software without
17
- * specific prior written permission.
18
- *
19
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
- * POSSIBILITY OF SUCH DAMAGE.
30
- */
31
-
32
-
33
- #ifndef __HIREDIS_READ_H
34
- #define __HIREDIS_READ_H
35
- #include <stdio.h> /* for size_t */
36
-
37
- #define REDIS_ERR -1
38
- #define REDIS_OK 0
39
-
40
- /* When an error occurs, the err flag in a context is set to hold the type of
41
- * error that occurred. REDIS_ERR_IO means there was an I/O error and you
42
- * should use the "errno" variable to find out what is wrong.
43
- * For other values, the "errstr" field will hold a description. */
44
- #define REDIS_ERR_IO 1 /* Error in read or write */
45
- #define REDIS_ERR_EOF 3 /* End of file */
46
- #define REDIS_ERR_PROTOCOL 4 /* Protocol error */
47
- #define REDIS_ERR_OOM 5 /* Out of memory */
48
- #define REDIS_ERR_TIMEOUT 6 /* Timed out */
49
- #define REDIS_ERR_OTHER 2 /* Everything else... */
50
-
51
- #define REDIS_REPLY_STRING 1
52
- #define REDIS_REPLY_ARRAY 2
53
- #define REDIS_REPLY_INTEGER 3
54
- #define REDIS_REPLY_NIL 4
55
- #define REDIS_REPLY_STATUS 5
56
- #define REDIS_REPLY_ERROR 6
57
- #define REDIS_REPLY_DOUBLE 7
58
- #define REDIS_REPLY_BOOL 8
59
- #define REDIS_REPLY_MAP 9
60
- #define REDIS_REPLY_SET 10
61
- #define REDIS_REPLY_ATTR 11
62
- #define REDIS_REPLY_PUSH 12
63
- #define REDIS_REPLY_BIGNUM 13
64
- #define REDIS_REPLY_VERB 14
65
-
66
- /* Default max unused reader buffer. */
67
- #define REDIS_READER_MAX_BUF (1024*16)
68
-
69
- /* Default multi-bulk element limit */
70
- #define REDIS_READER_MAX_ARRAY_ELEMENTS ((1LL<<32) - 1)
71
-
72
- #ifdef __cplusplus
73
- extern "C" {
74
- #endif
75
-
76
- typedef struct redisReadTask {
77
- int type;
78
- long long elements; /* number of elements in multibulk container */
79
- int idx; /* index in parent (array) object */
80
- void *obj; /* holds user-generated value for a read task */
81
- struct redisReadTask *parent; /* parent task */
82
- void *privdata; /* user-settable arbitrary field */
83
- } redisReadTask;
84
-
85
- typedef struct redisReplyObjectFunctions {
86
- void *(*createString)(const redisReadTask*, char*, size_t);
87
- void *(*createArray)(const redisReadTask*, size_t);
88
- void *(*createInteger)(const redisReadTask*, long long);
89
- void *(*createDouble)(const redisReadTask*, double, char*, size_t);
90
- void *(*createNil)(const redisReadTask*);
91
- void *(*createBool)(const redisReadTask*, int);
92
- void (*freeObject)(void*);
93
- } redisReplyObjectFunctions;
94
-
95
- typedef struct redisReader {
96
- int err; /* Error flags, 0 when there is no error */
97
- char errstr[128]; /* String representation of error when applicable */
98
-
99
- char *buf; /* Read buffer */
100
- size_t pos; /* Buffer cursor */
101
- size_t len; /* Buffer length */
102
- size_t maxbuf; /* Max length of unused buffer */
103
- long long maxelements; /* Max multi-bulk elements */
104
-
105
- redisReadTask **task;
106
- int tasks;
107
-
108
- int ridx; /* Index of current read task */
109
- void *reply; /* Temporary reply pointer */
110
-
111
- redisReplyObjectFunctions *fn;
112
- void *privdata;
113
- } redisReader;
114
-
115
- /* Public API for the protocol parser. */
116
- redisReader *redisReaderCreateWithFunctions(redisReplyObjectFunctions *fn);
117
- void redisReaderFree(redisReader *r);
118
- int redisReaderFeed(redisReader *r, const char *buf, size_t len);
119
- int redisReaderGetReply(redisReader *r, void **reply);
120
-
121
- #define redisReaderSetPrivdata(_r, _p) (int)(((redisReader*)(_r))->privdata = (_p))
122
- #define redisReaderGetObject(_r) (((redisReader*)(_r))->reply)
123
- #define redisReaderGetError(_r) (((redisReader*)(_r))->errstr)
124
-
125
- #ifdef __cplusplus
126
- }
127
- #endif
128
-
129
- #endif