couchbase 1.2.0.z.beta-x86-mingw32 → 1.2.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +1 -1
- data/Makefile +3 -0
- data/README.markdown +15 -4
- data/RELEASE_NOTES.markdown +526 -0
- data/couchbase.gemspec +0 -1
- data/ext/couchbase_ext/arguments.c +161 -244
- data/ext/couchbase_ext/arithmetic.c +29 -37
- data/ext/couchbase_ext/bucket.c +252 -219
- data/ext/couchbase_ext/couchbase_ext.c +540 -417
- data/ext/couchbase_ext/couchbase_ext.h +218 -191
- data/ext/couchbase_ext/delete.c +30 -27
- data/ext/couchbase_ext/extconf.rb +15 -3
- data/ext/couchbase_ext/get.c +45 -37
- data/ext/couchbase_ext/http.c +95 -74
- data/ext/couchbase_ext/multithread_plugin.c +1238 -0
- data/ext/couchbase_ext/observe.c +42 -37
- data/ext/couchbase_ext/result.c +17 -20
- data/ext/couchbase_ext/stats.c +30 -28
- data/ext/couchbase_ext/store.c +47 -39
- data/ext/couchbase_ext/timer.c +11 -11
- data/ext/couchbase_ext/touch.c +30 -27
- data/ext/couchbase_ext/unlock.c +30 -27
- data/ext/couchbase_ext/utils.c +166 -89
- data/ext/couchbase_ext/version.c +29 -26
- data/lib/action_dispatch/middleware/session/couchbase_store.rb +2 -2
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase.rb +1 -0
- data/lib/couchbase/bucket.rb +6 -11
- data/lib/couchbase/cluster.rb +105 -0
- data/lib/couchbase/utils.rb +8 -5
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase/view.rb +51 -5
- data/lib/couchbase/view_row.rb +1 -1
- data/lib/ext/multi_json_fix.rb +13 -9
- data/lib/rack/session/couchbase.rb +11 -7
- data/tasks/compile.rake +1 -1
- data/tasks/test.rake +40 -34
- data/tasks/util.rake +1 -1
- data/test/setup.rb +9 -2
- data/test/test_arithmetic.rb +37 -0
- data/test/test_async.rb +22 -18
- data/test/test_unlock.rb +0 -1
- data/test/test_utils.rb +32 -0
- metadata +13 -23
- data/HISTORY.markdown +0 -219
@@ -23,6 +23,9 @@
|
|
23
23
|
#endif
|
24
24
|
|
25
25
|
#include "couchbase_config.h"
|
26
|
+
#ifdef HAVE_STDINT_H
|
27
|
+
#include <stdint.h>
|
28
|
+
#endif
|
26
29
|
#ifndef HAVE_GETHRTIME
|
27
30
|
typedef uint64_t hrtime_t;
|
28
31
|
extern hrtime_t gethrtime(void);
|
@@ -48,54 +51,60 @@ extern hrtime_t gethrtime(void);
|
|
48
51
|
#define va_init_list(a,b) va_start(a)
|
49
52
|
#endif
|
50
53
|
|
51
|
-
#
|
54
|
+
#ifndef HAVE_RB_HASH_LOOKUP2
|
55
|
+
VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);
|
56
|
+
#endif
|
57
|
+
|
58
|
+
#define cb_debug_object(OBJ) \
|
52
59
|
rb_funcall(rb_stderr, rb_intern("print"), 1, rb_funcall(OBJ, rb_intern("object_id"), 0)); \
|
53
60
|
rb_funcall(rb_stderr, rb_intern("print"), 1, STR_NEW_CSTR(" ")); \
|
54
61
|
rb_funcall(rb_stderr, rb_intern("print"), 1, rb_funcall(OBJ, rb_intern("class"), 0)); \
|
55
62
|
rb_funcall(rb_stderr, rb_intern("print"), 1, STR_NEW_CSTR(" ")); \
|
56
63
|
rb_funcall(rb_stderr, rb_intern("puts"), 1, rb_funcall(OBJ, rb_intern("inspect"), 0));
|
57
64
|
|
58
|
-
#define
|
59
|
-
#define
|
60
|
-
#define
|
61
|
-
#define
|
65
|
+
#define CB_FMT_MASK 0x3
|
66
|
+
#define CB_FMT_DOCUMENT 0x0
|
67
|
+
#define CB_FMT_MARSHAL 0x1
|
68
|
+
#define CB_FMT_PLAIN 0x2
|
62
69
|
|
63
|
-
#define
|
70
|
+
#define CB_PACKET_HEADER_SIZE 24
|
64
71
|
/* Structs */
|
65
|
-
struct
|
72
|
+
struct cb_bucket_st
|
66
73
|
{
|
67
74
|
lcb_t handle;
|
75
|
+
lcb_type_t type;
|
68
76
|
struct lcb_io_opt_st *io;
|
69
77
|
uint16_t port;
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
78
|
+
VALUE authority;
|
79
|
+
VALUE hostname;
|
80
|
+
VALUE pool;
|
81
|
+
VALUE bucket;
|
82
|
+
VALUE username;
|
83
|
+
VALUE password;
|
76
84
|
int async;
|
77
85
|
int quiet;
|
78
86
|
VALUE default_format; /* should update +default_flags+ on change */
|
79
87
|
uint32_t default_flags;
|
80
88
|
time_t default_ttl;
|
81
89
|
time_t default_observe_timeout;
|
90
|
+
lcb_uint64_t default_arith_create; /* should the incr/decr create the key? if non-zero, will use arith_init */
|
91
|
+
lcb_uint64_t default_arith_init; /* default initial value for incr/decr */
|
82
92
|
uint32_t timeout;
|
83
93
|
size_t threshold; /* the number of bytes to trigger event loop, zero if don't care */
|
84
94
|
size_t nbytes; /* the number of bytes scheduled to be sent */
|
85
95
|
VALUE exception; /* error delivered by error_callback */
|
86
96
|
VALUE on_error_proc; /* is using to deliver errors in async mode */
|
87
97
|
VALUE environment; /* sym_development or sym_production */
|
88
|
-
char *key_prefix;
|
89
98
|
VALUE key_prefix_val;
|
90
|
-
|
99
|
+
VALUE node_list;
|
91
100
|
VALUE object_space;
|
92
101
|
VALUE self; /* the pointer to bucket representation in ruby land */
|
93
102
|
};
|
94
103
|
|
95
|
-
struct
|
96
|
-
struct
|
104
|
+
struct cb_http_request_st;
|
105
|
+
struct cb_context_st
|
97
106
|
{
|
98
|
-
struct
|
107
|
+
struct cb_bucket_st* bucket;
|
99
108
|
int extended;
|
100
109
|
VALUE proc;
|
101
110
|
void *rv;
|
@@ -105,14 +114,15 @@ struct context_st
|
|
105
114
|
VALUE operation;
|
106
115
|
VALUE headers_val;
|
107
116
|
int headers_built;
|
108
|
-
struct
|
117
|
+
struct cb_http_request_st *request;
|
109
118
|
int quiet;
|
110
119
|
int arith; /* incr: +1, decr: -1, other: 0 */
|
120
|
+
int http_cancel_on_error;
|
111
121
|
size_t nqueries;
|
112
122
|
};
|
113
123
|
|
114
|
-
struct
|
115
|
-
struct
|
124
|
+
struct cb_http_request_st {
|
125
|
+
struct cb_bucket_st *bucket;
|
116
126
|
VALUE bucket_obj;
|
117
127
|
VALUE type;
|
118
128
|
int extended;
|
@@ -120,13 +130,13 @@ struct http_request_st {
|
|
120
130
|
int completed;
|
121
131
|
lcb_http_request_t request;
|
122
132
|
lcb_http_cmd_t cmd;
|
123
|
-
struct
|
133
|
+
struct cb_context_st *ctx;
|
124
134
|
VALUE on_body_callback;
|
125
135
|
};
|
126
136
|
|
127
|
-
struct
|
137
|
+
struct cb_timer_st
|
128
138
|
{
|
129
|
-
struct
|
139
|
+
struct cb_bucket_st *bucket;
|
130
140
|
int periodic;
|
131
141
|
uint32_t usec;
|
132
142
|
lcb_timer_t timer;
|
@@ -135,171 +145,185 @@ struct timer_st
|
|
135
145
|
};
|
136
146
|
|
137
147
|
/* Classes */
|
138
|
-
extern VALUE
|
139
|
-
extern VALUE
|
140
|
-
extern VALUE
|
141
|
-
extern VALUE
|
148
|
+
extern VALUE cb_cBucket;
|
149
|
+
extern VALUE cb_cCouchRequest;
|
150
|
+
extern VALUE cb_cResult;
|
151
|
+
extern VALUE cb_cTimer;
|
142
152
|
|
143
153
|
/* Modules */
|
144
|
-
extern VALUE
|
145
|
-
extern VALUE
|
146
|
-
extern VALUE
|
147
|
-
extern VALUE
|
148
|
-
extern VALUE
|
154
|
+
extern VALUE cb_mCouchbase;
|
155
|
+
extern VALUE cb_mError;
|
156
|
+
extern VALUE cb_mMarshal;
|
157
|
+
extern VALUE cb_mMultiJson;
|
158
|
+
extern VALUE cb_mURI;
|
149
159
|
|
150
160
|
/* Symbols */
|
151
|
-
extern ID
|
152
|
-
extern ID
|
153
|
-
extern ID
|
154
|
-
extern ID
|
155
|
-
extern ID
|
156
|
-
extern ID
|
157
|
-
extern ID
|
158
|
-
extern ID
|
159
|
-
extern ID
|
160
|
-
extern ID
|
161
|
-
extern ID
|
162
|
-
extern ID
|
163
|
-
extern ID
|
164
|
-
extern ID
|
165
|
-
extern ID
|
166
|
-
extern ID
|
167
|
-
extern ID
|
168
|
-
extern ID
|
169
|
-
extern ID
|
170
|
-
extern ID
|
171
|
-
extern ID
|
172
|
-
extern ID
|
173
|
-
extern ID
|
174
|
-
extern ID
|
175
|
-
extern ID
|
176
|
-
extern ID
|
177
|
-
extern ID
|
178
|
-
extern ID
|
179
|
-
extern ID
|
180
|
-
extern ID
|
181
|
-
extern ID
|
182
|
-
extern ID
|
183
|
-
extern ID
|
184
|
-
extern ID
|
185
|
-
extern ID
|
186
|
-
extern ID
|
187
|
-
extern ID
|
188
|
-
extern ID
|
189
|
-
extern ID
|
190
|
-
extern ID
|
191
|
-
extern ID
|
192
|
-
extern ID
|
193
|
-
extern ID
|
194
|
-
extern ID
|
195
|
-
extern ID
|
196
|
-
extern ID
|
197
|
-
extern ID
|
198
|
-
extern ID
|
199
|
-
extern ID
|
200
|
-
extern ID
|
201
|
-
extern ID
|
202
|
-
extern ID
|
203
|
-
extern ID
|
204
|
-
extern ID
|
205
|
-
extern ID
|
206
|
-
extern ID
|
207
|
-
extern ID
|
208
|
-
extern ID
|
209
|
-
extern ID
|
210
|
-
extern ID
|
211
|
-
extern ID
|
212
|
-
extern ID
|
213
|
-
extern ID
|
214
|
-
extern ID
|
215
|
-
extern ID
|
216
|
-
extern ID
|
217
|
-
extern ID
|
218
|
-
extern ID
|
219
|
-
extern ID
|
220
|
-
extern ID
|
221
|
-
extern ID
|
222
|
-
extern ID
|
223
|
-
extern ID
|
224
|
-
extern ID
|
225
|
-
extern ID
|
226
|
-
extern ID
|
227
|
-
extern ID
|
228
|
-
extern ID
|
229
|
-
extern ID
|
230
|
-
extern ID
|
231
|
-
extern ID
|
232
|
-
extern ID
|
233
|
-
extern ID
|
234
|
-
extern ID
|
235
|
-
extern ID
|
236
|
-
extern ID
|
237
|
-
extern ID
|
238
|
-
extern ID
|
239
|
-
extern ID
|
240
|
-
extern ID
|
241
|
-
extern ID
|
242
|
-
extern ID
|
243
|
-
extern ID
|
161
|
+
extern ID cb_sym_add;
|
162
|
+
extern ID cb_sym_append;
|
163
|
+
extern ID cb_sym_assemble_hash;
|
164
|
+
extern ID cb_sym_body;
|
165
|
+
extern ID cb_sym_bucket;
|
166
|
+
extern ID cb_sym_cas;
|
167
|
+
extern ID cb_sym_chunked;
|
168
|
+
extern ID cb_sym_cluster;
|
169
|
+
extern ID cb_sym_content_type;
|
170
|
+
extern ID cb_sym_create;
|
171
|
+
extern ID cb_sym_decrement;
|
172
|
+
extern ID cb_sym_default_arithmetic_init;
|
173
|
+
extern ID cb_sym_default_flags;
|
174
|
+
extern ID cb_sym_default_format;
|
175
|
+
extern ID cb_sym_default_observe_timeout;
|
176
|
+
extern ID cb_sym_default_ttl;
|
177
|
+
extern ID cb_sym_delete;
|
178
|
+
extern ID cb_sym_delta;
|
179
|
+
extern ID cb_sym_development;
|
180
|
+
extern ID cb_sym_document;
|
181
|
+
extern ID cb_sym_environment;
|
182
|
+
extern ID cb_sym_extended;
|
183
|
+
extern ID cb_sym_flags;
|
184
|
+
extern ID cb_sym_format;
|
185
|
+
extern ID cb_sym_found;
|
186
|
+
extern ID cb_sym_get;
|
187
|
+
extern ID cb_sym_hostname;
|
188
|
+
extern ID cb_sym_http_request;
|
189
|
+
extern ID cb_sym_increment;
|
190
|
+
extern ID cb_sym_initial;
|
191
|
+
extern ID cb_sym_key_prefix;
|
192
|
+
extern ID cb_sym_lock;
|
193
|
+
extern ID cb_sym_management;
|
194
|
+
extern ID cb_sym_marshal;
|
195
|
+
extern ID cb_sym_method;
|
196
|
+
extern ID cb_sym_node_list;
|
197
|
+
extern ID cb_sym_not_found;
|
198
|
+
extern ID cb_sym_num_replicas;
|
199
|
+
extern ID cb_sym_observe;
|
200
|
+
extern ID cb_sym_password;
|
201
|
+
extern ID cb_sym_periodic;
|
202
|
+
extern ID cb_sym_persisted;
|
203
|
+
extern ID cb_sym_plain;
|
204
|
+
extern ID cb_sym_pool;
|
205
|
+
extern ID cb_sym_port;
|
206
|
+
extern ID cb_sym_post;
|
207
|
+
extern ID cb_sym_prepend;
|
208
|
+
extern ID cb_sym_production;
|
209
|
+
extern ID cb_sym_put;
|
210
|
+
extern ID cb_sym_quiet;
|
211
|
+
extern ID cb_sym_replace;
|
212
|
+
extern ID cb_sym_replica;
|
213
|
+
extern ID cb_sym_send_threshold;
|
214
|
+
extern ID cb_sym_set;
|
215
|
+
extern ID cb_sym_stats;
|
216
|
+
extern ID cb_sym_timeout;
|
217
|
+
extern ID cb_sym_touch;
|
218
|
+
extern ID cb_sym_ttl;
|
219
|
+
extern ID cb_sym_type;
|
220
|
+
extern ID cb_sym_unlock;
|
221
|
+
extern ID cb_sym_username;
|
222
|
+
extern ID cb_sym_version;
|
223
|
+
extern ID cb_sym_view;
|
224
|
+
extern ID cb_id_arity;
|
225
|
+
extern ID cb_id_call;
|
226
|
+
extern ID cb_id_delete;
|
227
|
+
extern ID cb_id_dump;
|
228
|
+
extern ID cb_id_dup;
|
229
|
+
extern ID cb_id_flatten_bang;
|
230
|
+
extern ID cb_id_has_key_p;
|
231
|
+
extern ID cb_id_host;
|
232
|
+
extern ID cb_id_iv_body;
|
233
|
+
extern ID cb_id_iv_cas;
|
234
|
+
extern ID cb_id_iv_completed;
|
235
|
+
extern ID cb_id_iv_error;
|
236
|
+
extern ID cb_id_iv_flags;
|
237
|
+
extern ID cb_id_iv_from_master;
|
238
|
+
extern ID cb_id_iv_headers;
|
239
|
+
extern ID cb_id_iv_inner_exception;
|
240
|
+
extern ID cb_id_iv_key;
|
241
|
+
extern ID cb_id_iv_node;
|
242
|
+
extern ID cb_id_iv_operation;
|
243
|
+
extern ID cb_id_iv_status;
|
244
|
+
extern ID cb_id_iv_time_to_persist;
|
245
|
+
extern ID cb_id_iv_time_to_replicate;
|
246
|
+
extern ID cb_id_iv_value;
|
247
|
+
extern ID cb_id_load;
|
248
|
+
extern ID cb_id_match;
|
249
|
+
extern ID cb_id_observe_and_wait;
|
250
|
+
extern ID cb_id_parse;
|
251
|
+
extern ID cb_id_parse_body_bang;
|
252
|
+
extern ID cb_id_password;
|
253
|
+
extern ID cb_id_path;
|
254
|
+
extern ID cb_id_port;
|
255
|
+
extern ID cb_id_scheme;
|
256
|
+
extern ID cb_id_sprintf;
|
257
|
+
extern ID cb_id_to_s;
|
258
|
+
extern ID cb_id_user;
|
259
|
+
extern ID cb_id_verify_observe_options;
|
244
260
|
|
245
261
|
/* Errors */
|
246
|
-
extern VALUE
|
247
|
-
extern VALUE
|
262
|
+
extern VALUE cb_eBaseError;
|
263
|
+
extern VALUE cb_eValueFormatError;
|
264
|
+
extern VALUE cb_eHTTPError;
|
248
265
|
/* LCB_SUCCESS = 0x00 */
|
249
266
|
/* LCB_AUTH_CONTINUE = 0x01 */
|
250
|
-
extern VALUE
|
251
|
-
extern VALUE
|
252
|
-
extern VALUE
|
253
|
-
extern VALUE
|
254
|
-
extern VALUE
|
255
|
-
extern VALUE
|
256
|
-
extern VALUE
|
257
|
-
extern VALUE
|
258
|
-
extern VALUE
|
259
|
-
extern VALUE
|
260
|
-
extern VALUE
|
261
|
-
extern VALUE
|
262
|
-
extern VALUE
|
263
|
-
extern VALUE
|
264
|
-
extern VALUE
|
265
|
-
extern VALUE
|
266
|
-
extern VALUE
|
267
|
-
extern VALUE
|
268
|
-
extern VALUE
|
269
|
-
extern VALUE
|
270
|
-
extern VALUE
|
271
|
-
extern VALUE
|
272
|
-
extern VALUE
|
273
|
-
extern VALUE
|
274
|
-
extern VALUE
|
267
|
+
extern VALUE cb_eAuthError; /* LCB_AUTH_ERROR = 0x02 */
|
268
|
+
extern VALUE cb_eDeltaBadvalError; /* LCB_DELTA_BADVAL = 0x03 */
|
269
|
+
extern VALUE cb_eTooBigError; /* LCB_E2BIG = 0x04 */
|
270
|
+
extern VALUE cb_eBusyError; /* LCB_EBUSY = 0x05 */
|
271
|
+
extern VALUE cb_eInternalError; /* LCB_EINTERNAL = 0x06 */
|
272
|
+
extern VALUE cb_eInvalidError; /* LCB_EINVAL = 0x07 */
|
273
|
+
extern VALUE cb_eNoMemoryError; /* LCB_ENOMEM = 0x08 */
|
274
|
+
extern VALUE cb_eRangeError; /* LCB_ERANGE = 0x09 */
|
275
|
+
extern VALUE cb_eLibcouchbaseError; /* LCB_ERROR = 0x0a */
|
276
|
+
extern VALUE cb_eTmpFailError; /* LCB_ETMPFAIL = 0x0b */
|
277
|
+
extern VALUE cb_eKeyExistsError; /* LCB_KEY_EEXISTS = 0x0c */
|
278
|
+
extern VALUE cb_eNotFoundError; /* LCB_KEY_ENOENT = 0x0d */
|
279
|
+
extern VALUE cb_eDlopenFailedError; /* LCB_DLOPEN_FAILED = 0x0e */
|
280
|
+
extern VALUE cb_eDlsymFailedError; /* LCB_DLSYM_FAILED = 0x0f */
|
281
|
+
extern VALUE cb_eNetworkError; /* LCB_NETWORK_ERROR = 0x10 */
|
282
|
+
extern VALUE cb_eNotMyVbucketError; /* LCB_NOT_MY_VBUCKET = 0x11 */
|
283
|
+
extern VALUE cb_eNotStoredError; /* LCB_NOT_STORED = 0x12 */
|
284
|
+
extern VALUE cb_eNotSupportedError; /* LCB_NOT_SUPPORTED = 0x13 */
|
285
|
+
extern VALUE cb_eUnknownCommandError; /* LCB_UNKNOWN_COMMAND = 0x14 */
|
286
|
+
extern VALUE cb_eUnknownHostError; /* LCB_UNKNOWN_HOST = 0x15 */
|
287
|
+
extern VALUE cb_eProtocolError; /* LCB_PROTOCOL_ERROR = 0x16 */
|
288
|
+
extern VALUE cb_eTimeoutError; /* LCB_ETIMEDOUT = 0x17 */
|
289
|
+
extern VALUE cb_eConnectError; /* LCB_CONNECT_ERROR = 0x18 */
|
290
|
+
extern VALUE cb_eBucketNotFoundError; /* LCB_BUCKET_ENOENT = 0x19 */
|
291
|
+
extern VALUE cb_eClientNoMemoryError; /* LCB_CLIENT_ENOMEM = 0x1a */
|
292
|
+
extern VALUE cb_eClientTmpFailError; /* LCB_CLIENT_ETMPFAIL = 0x1b */
|
293
|
+
extern VALUE cb_eBadHandleError; /* LCB_EBADHANDLE = 0x1c */
|
294
|
+
|
295
|
+
/* Default Strings */
|
296
|
+
extern VALUE cb_vStrDefault;
|
297
|
+
extern VALUE cb_vStrEmpty;
|
275
298
|
|
276
|
-
void
|
299
|
+
void cb_strip_key_prefix(struct cb_bucket_st *bucket, VALUE key);
|
277
300
|
VALUE cb_check_error(lcb_error_t rc, const char *msg, VALUE key);
|
278
301
|
VALUE cb_check_error_with_status(lcb_error_t rc, const char *msg, VALUE key, lcb_http_status_t status);
|
279
|
-
VALUE cb_gc_protect(struct
|
280
|
-
VALUE cb_gc_unprotect(struct
|
281
|
-
VALUE cb_proc_call(VALUE recv, int argc, ...);
|
302
|
+
VALUE cb_gc_protect(struct cb_bucket_st *bucket, VALUE val);
|
303
|
+
VALUE cb_gc_unprotect(struct cb_bucket_st *bucket, VALUE val);
|
304
|
+
VALUE cb_proc_call(struct cb_bucket_st *bucket, VALUE recv, int argc, ...);
|
282
305
|
int cb_first_value_i(VALUE key, VALUE value, VALUE arg);
|
283
|
-
void cb_build_headers(struct
|
284
|
-
void
|
285
|
-
VALUE
|
286
|
-
VALUE
|
287
|
-
VALUE
|
288
|
-
uint32_t
|
289
|
-
ID
|
306
|
+
void cb_build_headers(struct cb_context_st *ctx, const char * const *headers);
|
307
|
+
void cb_maybe_do_loop(struct cb_bucket_st *bucket);
|
308
|
+
VALUE cb_unify_key(struct cb_bucket_st *bucket, VALUE key, int apply_prefix);
|
309
|
+
VALUE cb_encode_value(VALUE val, uint32_t flags);
|
310
|
+
VALUE cb_decode_value(VALUE blob, uint32_t flags, VALUE force_format);
|
311
|
+
uint32_t cb_flags_set_format(uint32_t flags, ID format);
|
312
|
+
ID cb_flags_get_format(uint32_t flags);
|
313
|
+
void cb_async_error_notify(struct cb_bucket_st *bucket, VALUE exc);
|
290
314
|
|
291
|
-
void storage_callback(lcb_t handle, const void *cookie, lcb_storage_t operation, lcb_error_t error, const lcb_store_resp_t *resp);
|
292
|
-
void get_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_get_resp_t *resp);
|
293
|
-
void touch_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_touch_resp_t *resp);
|
294
|
-
void delete_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_remove_resp_t *resp);
|
295
|
-
void stat_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_server_stat_resp_t *resp);
|
296
|
-
void arithmetic_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_arithmetic_resp_t *resp);
|
297
|
-
void version_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_server_version_resp_t *resp);
|
298
|
-
void http_complete_callback(lcb_http_request_t request, lcb_t handle, const void *cookie, lcb_error_t error, const lcb_http_resp_t *resp);
|
299
|
-
void http_data_callback(lcb_http_request_t request, lcb_t handle, const void *cookie, lcb_error_t error, const lcb_http_resp_t *resp);
|
300
|
-
void observe_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_observe_resp_t *resp);
|
301
|
-
void unlock_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_unlock_resp_t *resp);
|
302
315
|
|
316
|
+
void cb_storage_callback(lcb_t handle, const void *cookie, lcb_storage_t operation, lcb_error_t error, const lcb_store_resp_t *resp);
|
317
|
+
void cb_get_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_get_resp_t *resp);
|
318
|
+
void cb_touch_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_touch_resp_t *resp);
|
319
|
+
void cb_delete_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_remove_resp_t *resp);
|
320
|
+
void cb_stat_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_server_stat_resp_t *resp);
|
321
|
+
void cb_arithmetic_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_arithmetic_resp_t *resp);
|
322
|
+
void cb_version_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_server_version_resp_t *resp);
|
323
|
+
void cb_http_complete_callback(lcb_http_request_t request, lcb_t handle, const void *cookie, lcb_error_t error, const lcb_http_resp_t *resp);
|
324
|
+
void cb_http_data_callback(lcb_http_request_t request, lcb_t handle, const void *cookie, lcb_error_t error, const lcb_http_resp_t *resp);
|
325
|
+
void cb_observe_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_observe_resp_t *resp);
|
326
|
+
void cb_unlock_callback(lcb_t handle, const void *cookie, lcb_error_t error, const lcb_unlock_resp_t *resp);
|
303
327
|
|
304
328
|
VALUE cb_bucket_alloc(VALUE klass);
|
305
329
|
void cb_bucket_free(void *ptr);
|
@@ -352,6 +376,8 @@ VALUE cb_bucket_environment_get(VALUE self);
|
|
352
376
|
VALUE cb_bucket_num_replicas_get(VALUE self);
|
353
377
|
VALUE cb_bucket_default_observe_timeout_get(VALUE self);
|
354
378
|
VALUE cb_bucket_default_observe_timeout_set(VALUE self, VALUE val);
|
379
|
+
VALUE cb_bucket_default_arithmetic_init_get(VALUE self);
|
380
|
+
VALUE cb_bucket_default_arithmetic_init_set(VALUE self, VALUE val);
|
355
381
|
|
356
382
|
VALUE cb_http_request_alloc(VALUE klass);
|
357
383
|
VALUE cb_http_request_init(int argc, VALUE *argv, VALUE self);
|
@@ -374,21 +400,21 @@ VALUE cb_timer_init(int argc, VALUE *argv, VALUE self);
|
|
374
400
|
|
375
401
|
/* Method arguments */
|
376
402
|
|
377
|
-
enum
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
403
|
+
enum cb_command_t {
|
404
|
+
cb_cmd_touch = 0x01,
|
405
|
+
cb_cmd_remove = 0x02,
|
406
|
+
cb_cmd_store = 0x03,
|
407
|
+
cb_cmd_get = 0x04,
|
408
|
+
cb_cmd_arith = 0x05,
|
409
|
+
cb_cmd_stats = 0x06,
|
410
|
+
cb_cmd_version = 0x08,
|
411
|
+
cb_cmd_observe = 0x09,
|
412
|
+
cb_cmd_unlock = 0x10
|
387
413
|
};
|
388
414
|
|
389
|
-
struct
|
415
|
+
struct cb_params_st
|
390
416
|
{
|
391
|
-
enum
|
417
|
+
enum cb_command_t type;
|
392
418
|
union {
|
393
419
|
struct {
|
394
420
|
/* number of items */
|
@@ -504,16 +530,17 @@ struct params_st
|
|
504
530
|
lcb_cas_t cas;
|
505
531
|
} unlock;
|
506
532
|
} cmd;
|
507
|
-
struct
|
533
|
+
struct cb_bucket_st *bucket;
|
508
534
|
/* helper index for iterators */
|
509
535
|
size_t idx;
|
510
536
|
/* the approximate size of the data to be sent */
|
511
537
|
size_t npayload;
|
512
538
|
};
|
513
539
|
|
514
|
-
void cb_params_destroy(struct
|
515
|
-
void cb_params_build(struct
|
516
|
-
|
540
|
+
void cb_params_destroy(struct cb_params_st *params);
|
541
|
+
void cb_params_build(struct cb_params_st *params, int argc, VALUE argv);
|
517
542
|
|
543
|
+
LIBCOUCHBASE_API
|
544
|
+
lcb_error_t cb_create_ruby_mt_io_opts(int version, lcb_io_opt_t *io, void *arg);
|
518
545
|
#endif
|
519
546
|
|