thrift 0.9.0 → 0.9.1
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.
- checksums.yaml +15 -0
- data/ext/binary_protocol_accelerated.c +19 -3
- data/ext/compact_protocol.c +21 -7
- data/ext/constants.h +1 -5
- data/ext/extconf.rb +1 -1
- data/ext/protocol.c +0 -185
- data/ext/protocol.h +0 -20
- data/ext/struct.c +0 -3
- data/ext/thrift_native.c +1 -11
- data/lib/thrift.rb +1 -0
- data/lib/thrift/exceptions.rb +3 -0
- data/lib/thrift/protocol/base_protocol.rb +87 -10
- data/lib/thrift/protocol/binary_protocol.rb +13 -5
- data/lib/thrift/protocol/compact_protocol.rb +14 -7
- data/lib/thrift/protocol/json_protocol.rb +19 -15
- data/lib/thrift/server/mongrel_http_server.rb +2 -0
- data/lib/thrift/server/thin_http_server.rb +91 -0
- data/lib/thrift/struct.rb +1 -1
- data/lib/thrift/struct_union.rb +2 -2
- data/lib/thrift/transport/http_client_transport.rb +4 -1
- data/spec/base_protocol_spec.rb +65 -7
- data/spec/binary_protocol_spec_shared.rb +30 -0
- data/spec/compact_protocol_spec.rb +1 -3
- data/spec/http_client_spec.rb +49 -0
- data/spec/json_protocol_spec.rb +2 -2
- data/spec/thin_http_server_spec.rb +140 -0
- data/spec/union_spec.rb +13 -1
- metadata +113 -93
- data/benchmark/gen-rb/benchmark_constants.rb +0 -11
- data/benchmark/gen-rb/benchmark_service.rb +0 -80
- data/benchmark/gen-rb/benchmark_types.rb +0 -10
- data/spec/gen-rb/nonblocking_service.rb +0 -272
- data/spec/gen-rb/thrift_spec_constants.rb +0 -11
- data/spec/gen-rb/thrift_spec_types.rb +0 -538
- data/spec/mongrel_http_server_spec.rb +0 -114
- data/test/debug_proto/gen-rb/debug_proto_test_constants.rb +0 -274
- data/test/debug_proto/gen-rb/debug_proto_test_types.rb +0 -761
- data/test/debug_proto/gen-rb/empty_service.rb +0 -24
- data/test/debug_proto/gen-rb/inherited.rb +0 -79
- data/test/debug_proto/gen-rb/reverse_order_service.rb +0 -82
- data/test/debug_proto/gen-rb/service_for_exception_with_a_map.rb +0 -81
- data/test/debug_proto/gen-rb/srv.rb +0 -330
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzRjZDcyMTAwY2Y3MTJkYTU2Mzk1MzdmYWYyOWFiMzAwOWU3NzYwZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
N2Y2MDQ4ZjBhYWM1N2IyOGI2ODE5NDYzNzBjZmRmYTI0NDIxODc1MQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWE1NzdmMDg3NjdiZGQzNjdkNzhhYzE1NTVkOGMxN2NlMzRmMmUxZDQ1NWNj
|
10
|
+
ZTUyNGM1YWRjNjM0MDViMWUzMWVjMzY5YzhiNzBhYWJmODk5OGUwODk3NjRh
|
11
|
+
NTgwNzdhZjIyYWJiZTMxZmJlODdlYzlmYjQ2MWI5ZGU2NmVmZDE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTE1ODAyOTM5M2E4OGFlMmYyNDFjYjVkMTcyMjA4MDEzM2I1MmE3ZDg2ZmIy
|
14
|
+
MGVjYjFhM2VlOGZlM2U2YjM0YzdkZTgxYmJjNmExMDIyNTIyNDc4MGY5ZjUx
|
15
|
+
MjhiY2Y3NzM5NGIwZGE5MWMyOTY2ZmU0YWI3YzI4MTYwMzg1Nzc=
|
@@ -79,7 +79,7 @@ static void write_i64_direct(VALUE trans, int64_t value) {
|
|
79
79
|
|
80
80
|
static void write_string_direct(VALUE trans, VALUE str) {
|
81
81
|
if (TYPE(str) != T_STRING) {
|
82
|
-
rb_raise(rb_eStandardError, "Value should be a string");
|
82
|
+
rb_raise(rb_eStandardError, "Value should be a string");
|
83
83
|
}
|
84
84
|
str = convert_to_utf8_byte_buffer(str);
|
85
85
|
write_i32_direct(trans, RSTRING_LEN(str));
|
@@ -219,11 +219,21 @@ VALUE rb_thrift_binary_proto_write_string(VALUE self, VALUE str) {
|
|
219
219
|
return Qnil;
|
220
220
|
}
|
221
221
|
|
222
|
+
VALUE rb_thrift_binary_proto_write_binary(VALUE self, VALUE buf) {
|
223
|
+
CHECK_NIL(buf);
|
224
|
+
VALUE trans = GET_TRANSPORT(self);
|
225
|
+
buf = force_binary_encoding(buf);
|
226
|
+
write_i32_direct(trans, RSTRING_LEN(buf));
|
227
|
+
rb_funcall(trans, write_method_id, 1, buf);
|
228
|
+
return Qnil;
|
229
|
+
}
|
230
|
+
|
222
231
|
//---------------------------------------
|
223
232
|
// interface reading methods
|
224
233
|
//---------------------------------------
|
225
234
|
|
226
235
|
VALUE rb_thrift_binary_proto_read_string(VALUE self);
|
236
|
+
VALUE rb_thrift_binary_proto_read_binary(VALUE self);
|
227
237
|
VALUE rb_thrift_binary_proto_read_byte(VALUE self);
|
228
238
|
VALUE rb_thrift_binary_proto_read_i32(VALUE self);
|
229
239
|
VALUE rb_thrift_binary_proto_read_i16(VALUE self);
|
@@ -381,11 +391,15 @@ VALUE rb_thrift_binary_proto_read_double(VALUE self) {
|
|
381
391
|
}
|
382
392
|
|
383
393
|
VALUE rb_thrift_binary_proto_read_string(VALUE self) {
|
384
|
-
|
385
|
-
VALUE buffer = READ(self, size);
|
394
|
+
VALUE buffer = rb_thrift_binary_proto_read_binary(self);
|
386
395
|
return convert_to_string(buffer);
|
387
396
|
}
|
388
397
|
|
398
|
+
VALUE rb_thrift_binary_proto_read_binary(VALUE self) {
|
399
|
+
int size = read_i32_direct(self);
|
400
|
+
return READ(self, size);
|
401
|
+
}
|
402
|
+
|
389
403
|
void Init_binary_protocol_accelerated() {
|
390
404
|
VALUE thrift_binary_protocol_class = rb_const_get(thrift_module, rb_intern("BinaryProtocol"));
|
391
405
|
|
@@ -410,6 +424,7 @@ void Init_binary_protocol_accelerated() {
|
|
410
424
|
rb_define_method(bpa_class, "write_i64", rb_thrift_binary_proto_write_i64, 1);
|
411
425
|
rb_define_method(bpa_class, "write_double", rb_thrift_binary_proto_write_double, 1);
|
412
426
|
rb_define_method(bpa_class, "write_string", rb_thrift_binary_proto_write_string, 1);
|
427
|
+
rb_define_method(bpa_class, "write_binary", rb_thrift_binary_proto_write_binary, 1);
|
413
428
|
// unused methods
|
414
429
|
rb_define_method(bpa_class, "write_message_end", rb_thrift_binary_proto_write_message_end, 0);
|
415
430
|
rb_define_method(bpa_class, "write_struct_begin", rb_thrift_binary_proto_write_struct_begin, 1);
|
@@ -431,6 +446,7 @@ void Init_binary_protocol_accelerated() {
|
|
431
446
|
rb_define_method(bpa_class, "read_i64", rb_thrift_binary_proto_read_i64, 0);
|
432
447
|
rb_define_method(bpa_class, "read_double", rb_thrift_binary_proto_read_double, 0);
|
433
448
|
rb_define_method(bpa_class, "read_string", rb_thrift_binary_proto_read_string, 0);
|
449
|
+
rb_define_method(bpa_class, "read_binary", rb_thrift_binary_proto_read_binary, 0);
|
434
450
|
// unused methods
|
435
451
|
rb_define_method(bpa_class, "read_message_end", rb_thrift_binary_proto_read_message_end, 0);
|
436
452
|
rb_define_method(bpa_class, "read_struct_begin", rb_thift_binary_proto_read_struct_begin, 0);
|
data/ext/compact_protocol.c
CHANGED
@@ -167,6 +167,7 @@ static void write_collection_begin(VALUE transport, VALUE elem_type, VALUE size_
|
|
167
167
|
|
168
168
|
VALUE rb_thrift_compact_proto_write_i32(VALUE self, VALUE i32);
|
169
169
|
VALUE rb_thrift_compact_proto_write_string(VALUE self, VALUE str);
|
170
|
+
VALUE rb_thrift_compact_proto_write_binary(VALUE self, VALUE buf);
|
170
171
|
|
171
172
|
VALUE rb_thrift_compact_proto_write_message_end(VALUE self) {
|
172
173
|
return Qnil;
|
@@ -305,10 +306,16 @@ VALUE rb_thrift_compact_proto_write_double(VALUE self, VALUE dub) {
|
|
305
306
|
}
|
306
307
|
|
307
308
|
VALUE rb_thrift_compact_proto_write_string(VALUE self, VALUE str) {
|
308
|
-
VALUE transport = GET_TRANSPORT(self);
|
309
309
|
str = convert_to_utf8_byte_buffer(str);
|
310
|
-
|
311
|
-
|
310
|
+
rb_thrift_compact_proto_write_binary(self, str);
|
311
|
+
return Qnil;
|
312
|
+
}
|
313
|
+
|
314
|
+
VALUE rb_thrift_compact_proto_write_binary(VALUE self, VALUE buf) {
|
315
|
+
buf = force_binary_encoding(buf);
|
316
|
+
VALUE transport = GET_TRANSPORT(self);
|
317
|
+
write_varint32(transport, RSTRING_LEN(buf));
|
318
|
+
WRITE(transport, RSTRING_PTR(buf), RSTRING_LEN(buf));
|
312
319
|
return Qnil;
|
313
320
|
}
|
314
321
|
|
@@ -319,6 +326,7 @@ VALUE rb_thrift_compact_proto_write_string(VALUE self, VALUE str) {
|
|
319
326
|
#define is_bool_type(ctype) (((ctype) & 0x0F) == CTYPE_BOOLEAN_TRUE || ((ctype) & 0x0F) == CTYPE_BOOLEAN_FALSE)
|
320
327
|
|
321
328
|
VALUE rb_thrift_compact_proto_read_string(VALUE self);
|
329
|
+
VALUE rb_thrift_compact_proto_read_binary(VALUE self);
|
322
330
|
VALUE rb_thrift_compact_proto_read_byte(VALUE self);
|
323
331
|
VALUE rb_thrift_compact_proto_read_i32(VALUE self);
|
324
332
|
VALUE rb_thrift_compact_proto_read_i16(VALUE self);
|
@@ -547,20 +555,24 @@ VALUE rb_thrift_compact_proto_read_double(VALUE self) {
|
|
547
555
|
}
|
548
556
|
|
549
557
|
VALUE rb_thrift_compact_proto_read_string(VALUE self) {
|
550
|
-
|
551
|
-
VALUE buffer = READ(self, size);
|
558
|
+
VALUE buffer = rb_thrift_compact_proto_read_binary(self);
|
552
559
|
return convert_to_string(buffer);
|
553
560
|
}
|
554
561
|
|
562
|
+
VALUE rb_thrift_compact_proto_read_binary(VALUE self) {
|
563
|
+
int64_t size = read_varint64(self);
|
564
|
+
return READ(self, size);
|
565
|
+
}
|
566
|
+
|
555
567
|
static void Init_constants() {
|
556
568
|
thrift_compact_protocol_class = rb_const_get(thrift_module, rb_intern("CompactProtocol"));
|
557
|
-
|
569
|
+
|
558
570
|
VERSION = rb_num2ll(rb_const_get(thrift_compact_protocol_class, rb_intern("VERSION")));
|
559
571
|
VERSION_MASK = rb_num2ll(rb_const_get(thrift_compact_protocol_class, rb_intern("VERSION_MASK")));
|
560
572
|
TYPE_MASK = rb_num2ll(rb_const_get(thrift_compact_protocol_class, rb_intern("TYPE_MASK")));
|
561
573
|
TYPE_SHIFT_AMOUNT = FIX2INT(rb_const_get(thrift_compact_protocol_class, rb_intern("TYPE_SHIFT_AMOUNT")));
|
562
574
|
PROTOCOL_ID = FIX2INT(rb_const_get(thrift_compact_protocol_class, rb_intern("PROTOCOL_ID")));
|
563
|
-
|
575
|
+
|
564
576
|
last_field_id = rb_intern("@last_field");
|
565
577
|
boolean_field_id = rb_intern("@boolean_field");
|
566
578
|
bool_value_id = rb_intern("@bool_value");
|
@@ -583,6 +595,7 @@ static void Init_rb_methods() {
|
|
583
595
|
rb_define_method(thrift_compact_protocol_class, "write_i64", rb_thrift_compact_proto_write_i64, 1);
|
584
596
|
rb_define_method(thrift_compact_protocol_class, "write_double", rb_thrift_compact_proto_write_double, 1);
|
585
597
|
rb_define_method(thrift_compact_protocol_class, "write_string", rb_thrift_compact_proto_write_string, 1);
|
598
|
+
rb_define_method(thrift_compact_protocol_class, "write_binary", rb_thrift_compact_proto_write_binary, 1);
|
586
599
|
|
587
600
|
rb_define_method(thrift_compact_protocol_class, "write_message_end", rb_thrift_compact_proto_write_message_end, 0);
|
588
601
|
rb_define_method(thrift_compact_protocol_class, "write_struct_begin", rb_thrift_compact_proto_write_struct_begin, 1);
|
@@ -605,6 +618,7 @@ static void Init_rb_methods() {
|
|
605
618
|
rb_define_method(thrift_compact_protocol_class, "read_i64", rb_thrift_compact_proto_read_i64, 0);
|
606
619
|
rb_define_method(thrift_compact_protocol_class, "read_double", rb_thrift_compact_proto_read_double, 0);
|
607
620
|
rb_define_method(thrift_compact_protocol_class, "read_string", rb_thrift_compact_proto_read_string, 0);
|
621
|
+
rb_define_method(thrift_compact_protocol_class, "read_binary", rb_thrift_compact_proto_read_binary, 0);
|
608
622
|
|
609
623
|
rb_define_method(thrift_compact_protocol_class, "read_message_end", rb_thrift_compact_proto_read_message_end, 0);
|
610
624
|
rb_define_method(thrift_compact_protocol_class, "read_struct_begin", rb_thrift_compact_proto_read_struct_begin, 0);
|
data/ext/constants.h
CHANGED
@@ -48,7 +48,6 @@ extern ID write_list_begin_method_id;
|
|
48
48
|
extern ID write_list_end_method_id;
|
49
49
|
extern ID write_set_begin_method_id;
|
50
50
|
extern ID write_set_end_method_id;
|
51
|
-
extern ID size_method_id;
|
52
51
|
extern ID read_bool_method_id;
|
53
52
|
extern ID read_byte_method_id;
|
54
53
|
extern ID read_i16_method_id;
|
@@ -67,15 +66,12 @@ extern ID read_struct_end_method_id;
|
|
67
66
|
extern ID read_field_begin_method_id;
|
68
67
|
extern ID read_field_end_method_id;
|
69
68
|
extern ID keys_method_id;
|
70
|
-
extern ID entries_method_id;
|
71
|
-
extern ID name_method_id;
|
72
|
-
extern ID sort_method_id;
|
69
|
+
extern ID entries_method_id;
|
73
70
|
extern ID write_field_stop_method_id;
|
74
71
|
extern ID skip_method_id;
|
75
72
|
extern ID write_method_id;
|
76
73
|
extern ID read_all_method_id;
|
77
74
|
extern ID read_into_buffer_method_id;
|
78
|
-
extern ID native_qmark_method_id;
|
79
75
|
extern ID force_binary_encoding_id;
|
80
76
|
extern ID convert_to_utf8_byte_buffer_id;
|
81
77
|
extern ID convert_to_string_id;
|
data/ext/extconf.rb
CHANGED
@@ -24,7 +24,7 @@ else
|
|
24
24
|
|
25
25
|
$ARCH_FLAGS = Config::CONFIG['CFLAGS'].scan( /(-arch )(\S+)/ ).map{|x,y| x + y + ' ' }.join('')
|
26
26
|
|
27
|
-
$CFLAGS = "-g -O2 -Wall -Werror " + $ARCH_FLAGS
|
27
|
+
$CFLAGS = "-fsigned-char -g -O2 -Wall -Werror " + $ARCH_FLAGS
|
28
28
|
|
29
29
|
have_func("strlcpy", "string.h")
|
30
30
|
|
data/ext/protocol.c
CHANGED
@@ -1,185 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one
|
3
|
-
* or more contributor license agreements. See the NOTICE file
|
4
|
-
* distributed with this work for additional information
|
5
|
-
* regarding copyright ownership. The ASF licenses this file
|
6
|
-
* to you under the Apache License, Version 2.0 (the
|
7
|
-
* "License"); you may not use this file except in compliance
|
8
|
-
* with the License. You may obtain a copy of the License at
|
9
|
-
*
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
*
|
12
|
-
* Unless required by applicable law or agreed to in writing,
|
13
|
-
* software distributed under the License is distributed on an
|
14
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
15
|
-
* KIND, either express or implied. See the License for the
|
16
|
-
* specific language governing permissions and limitations
|
17
|
-
* under the License.
|
18
|
-
*/
|
19
|
-
|
20
|
-
#include <ruby.h>
|
21
|
-
#include <protocol.h>
|
22
|
-
#include <stdbool.h>
|
23
|
-
#include <constants.h>
|
24
|
-
#include <struct.h>
|
25
|
-
|
26
|
-
static VALUE skip(VALUE self, int ttype) {
|
27
|
-
if (ttype == TTYPE_STOP) {
|
28
|
-
return Qnil;
|
29
|
-
} else if (ttype == TTYPE_BOOL) {
|
30
|
-
rb_funcall(self, read_bool_method_id, 0);
|
31
|
-
} else if (ttype == TTYPE_BYTE) {
|
32
|
-
rb_funcall(self, read_byte_method_id, 0);
|
33
|
-
} else if (ttype == TTYPE_I16) {
|
34
|
-
rb_funcall(self, read_i16_method_id, 0);
|
35
|
-
} else if (ttype == TTYPE_I32) {
|
36
|
-
rb_funcall(self, read_i32_method_id, 0);
|
37
|
-
} else if (ttype == TTYPE_I64) {
|
38
|
-
rb_funcall(self, read_i64_method_id, 0);
|
39
|
-
} else if (ttype == TTYPE_DOUBLE) {
|
40
|
-
rb_funcall(self, read_double_method_id, 0);
|
41
|
-
} else if (ttype == TTYPE_STRING) {
|
42
|
-
rb_funcall(self, read_string_method_id, 0);
|
43
|
-
} else if (ttype == TTYPE_STRUCT) {
|
44
|
-
rb_funcall(self, read_struct_begin_method_id, 0);
|
45
|
-
while (true) {
|
46
|
-
VALUE field_header = rb_funcall(self, read_field_begin_method_id, 0);
|
47
|
-
if (NIL_P(field_header) || FIX2INT(rb_ary_entry(field_header, 1)) == TTYPE_STOP ) {
|
48
|
-
break;
|
49
|
-
}
|
50
|
-
skip(self, FIX2INT(rb_ary_entry(field_header, 1)));
|
51
|
-
rb_funcall(self, read_field_end_method_id, 0);
|
52
|
-
}
|
53
|
-
rb_funcall(self, read_struct_end_method_id, 0);
|
54
|
-
} else if (ttype == TTYPE_MAP) {
|
55
|
-
int i;
|
56
|
-
VALUE map_header = rb_funcall(self, read_map_begin_method_id, 0);
|
57
|
-
int ktype = FIX2INT(rb_ary_entry(map_header, 0));
|
58
|
-
int vtype = FIX2INT(rb_ary_entry(map_header, 1));
|
59
|
-
int size = FIX2INT(rb_ary_entry(map_header, 2));
|
60
|
-
|
61
|
-
for (i = 0; i < size; i++) {
|
62
|
-
skip(self, ktype);
|
63
|
-
skip(self, vtype);
|
64
|
-
}
|
65
|
-
rb_funcall(self, read_map_end_method_id, 0);
|
66
|
-
} else if (ttype == TTYPE_LIST || ttype == TTYPE_SET) {
|
67
|
-
int i;
|
68
|
-
VALUE collection_header = rb_funcall(self, ttype == TTYPE_LIST ? read_list_begin_method_id : read_set_begin_method_id, 0);
|
69
|
-
int etype = FIX2INT(rb_ary_entry(collection_header, 0));
|
70
|
-
int size = FIX2INT(rb_ary_entry(collection_header, 1));
|
71
|
-
for (i = 0; i < size; i++) {
|
72
|
-
skip(self, etype);
|
73
|
-
}
|
74
|
-
rb_funcall(self, ttype == TTYPE_LIST ? read_list_end_method_id : read_set_end_method_id, 0);
|
75
|
-
} else {
|
76
|
-
rb_raise(rb_eNotImpError, "don't know how to skip type %d", ttype);
|
77
|
-
}
|
78
|
-
|
79
|
-
return Qnil;
|
80
|
-
}
|
81
|
-
|
82
|
-
VALUE rb_thrift_protocol_native_qmark(VALUE self) {
|
83
|
-
return Qfalse;
|
84
|
-
}
|
85
|
-
|
86
|
-
VALUE rb_thrift_protocol_skip(VALUE protocol, VALUE ttype) {
|
87
|
-
return skip(protocol, FIX2INT(ttype));
|
88
|
-
}
|
89
|
-
|
90
|
-
VALUE rb_thrift_write_message_end(VALUE self) {
|
91
|
-
return Qnil;
|
92
|
-
}
|
93
|
-
|
94
|
-
VALUE rb_thrift_write_struct_begin(VALUE self, VALUE name) {
|
95
|
-
return Qnil;
|
96
|
-
}
|
97
|
-
|
98
|
-
VALUE rb_thrift_write_struct_end(VALUE self) {
|
99
|
-
return Qnil;
|
100
|
-
}
|
101
|
-
|
102
|
-
VALUE rb_thrift_write_field_end(VALUE self) {
|
103
|
-
return Qnil;
|
104
|
-
}
|
105
|
-
|
106
|
-
VALUE rb_thrift_write_map_end(VALUE self) {
|
107
|
-
return Qnil;
|
108
|
-
}
|
109
|
-
|
110
|
-
VALUE rb_thrift_write_list_end(VALUE self) {
|
111
|
-
return Qnil;
|
112
|
-
}
|
113
|
-
|
114
|
-
VALUE rb_thrift_write_set_end(VALUE self) {
|
115
|
-
return Qnil;
|
116
|
-
}
|
117
|
-
|
118
|
-
VALUE rb_thrift_read_message_end(VALUE self) {
|
119
|
-
return Qnil;
|
120
|
-
}
|
121
|
-
|
122
|
-
VALUE rb_thift_read_struct_begin(VALUE self) {
|
123
|
-
return Qnil;
|
124
|
-
}
|
125
|
-
|
126
|
-
VALUE rb_thift_read_struct_end(VALUE self) {
|
127
|
-
return Qnil;
|
128
|
-
}
|
129
|
-
|
130
|
-
VALUE rb_thift_read_field_end(VALUE self) {
|
131
|
-
return Qnil;
|
132
|
-
}
|
133
|
-
|
134
|
-
VALUE rb_thift_read_map_end(VALUE self) {
|
135
|
-
return Qnil;
|
136
|
-
}
|
137
|
-
|
138
|
-
VALUE rb_thift_read_list_end(VALUE self) {
|
139
|
-
return Qnil;
|
140
|
-
}
|
141
|
-
|
142
|
-
VALUE rb_thift_read_set_end(VALUE self) {
|
143
|
-
return Qnil;
|
144
|
-
}
|
145
|
-
|
146
|
-
void Init_protocol() {
|
147
|
-
VALUE c_protocol = rb_const_get(thrift_module, rb_intern("BaseProtocol"));
|
148
|
-
|
149
|
-
rb_define_method(c_protocol, "skip", rb_thrift_protocol_skip, 1);
|
150
|
-
rb_define_method(c_protocol, "write_message_end", rb_thrift_write_message_end, 0);
|
151
|
-
rb_define_method(c_protocol, "write_struct_begin", rb_thrift_write_struct_begin, 1);
|
152
|
-
rb_define_method(c_protocol, "write_struct_end", rb_thrift_write_struct_end, 0);
|
153
|
-
rb_define_method(c_protocol, "write_field_end", rb_thrift_write_field_end, 0);
|
154
|
-
rb_define_method(c_protocol, "write_map_end", rb_thrift_write_map_end, 0);
|
155
|
-
rb_define_method(c_protocol, "write_list_end", rb_thrift_write_list_end, 0);
|
156
|
-
rb_define_method(c_protocol, "write_set_end", rb_thrift_write_set_end, 0);
|
157
|
-
rb_define_method(c_protocol, "read_message_end", rb_thrift_read_message_end, 0);
|
158
|
-
rb_define_method(c_protocol, "read_struct_begin", rb_thift_read_struct_begin, 0);
|
159
|
-
rb_define_method(c_protocol, "read_struct_end", rb_thift_read_struct_end, 0);
|
160
|
-
rb_define_method(c_protocol, "read_field_end", rb_thift_read_field_end, 0);
|
161
|
-
rb_define_method(c_protocol, "read_map_end", rb_thift_read_map_end, 0);
|
162
|
-
rb_define_method(c_protocol, "read_list_end", rb_thift_read_list_end, 0);
|
163
|
-
rb_define_method(c_protocol, "read_set_end", rb_thift_read_set_end, 0);
|
164
|
-
rb_define_method(c_protocol, "native?", rb_thrift_protocol_native_qmark, 0);
|
165
|
-
|
166
|
-
// native_proto_method_table *npmt;
|
167
|
-
// npmt = ALLOC(native_proto_method_table);
|
168
|
-
// npmt->write_message_end = rb_thrift_write_message_end;
|
169
|
-
// npmt->write_struct_begin = rb_thrift_write_struct_begin;
|
170
|
-
// npmt->write_struct_end = rb_thrift_write_struct_end;
|
171
|
-
// npmt->write_field_end = rb_thrift_write_field_end;
|
172
|
-
// npmt->write_map_end = rb_thrift_write_map_end;
|
173
|
-
// npmt->write_list_end = rb_thrift_write_list_end;
|
174
|
-
// npmt->write_set_end = rb_thrift_write_set_end;
|
175
|
-
// npmt->read_message_end = rb_thrift_read_message_end;
|
176
|
-
// npmt->read_struct_begin = rb_thift_read_struct_begin;
|
177
|
-
// npmt->read_struct_end = rb_thift_read_struct_end;
|
178
|
-
// npmt->read_field_end = rb_thift_read_field_end;
|
179
|
-
// npmt->read_map_end = rb_thift_read_map_end;
|
180
|
-
// npmt->read_list_end = rb_thift_read_list_end;
|
181
|
-
// npmt->read_set_end = rb_thift_read_set_end;
|
182
|
-
//
|
183
|
-
// VALUE method_table_object = Data_Wrap_Struct(rb_cObject, 0, free, npmt);
|
184
|
-
// rb_const_set(c_protocol, rb_intern("@native_method_table"), method_table_object);
|
185
|
-
}
|
data/ext/protocol.h
CHANGED
@@ -1,20 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one
|
3
|
-
* or more contributor license agreements. See the NOTICE file
|
4
|
-
* distributed with this work for additional information
|
5
|
-
* regarding copyright ownership. The ASF licenses this file
|
6
|
-
* to you under the Apache License, Version 2.0 (the
|
7
|
-
* "License"); you may not use this file except in compliance
|
8
|
-
* with the License. You may obtain a copy of the License at
|
9
|
-
*
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
*
|
12
|
-
* Unless required by applicable law or agreed to in writing,
|
13
|
-
* software distributed under the License is distributed on an
|
14
|
-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
15
|
-
* KIND, either express or implied. See the License for the
|
16
|
-
* specific language governing permissions and limitations
|
17
|
-
* under the License.
|
18
|
-
*/
|
19
|
-
|
20
|
-
void Init_protocol();
|
data/ext/struct.c
CHANGED
@@ -627,9 +627,6 @@ static VALUE rb_thrift_union_read(VALUE self, VALUE protocol) {
|
|
627
627
|
rb_raise(rb_eRuntimeError, "too many fields in union!");
|
628
628
|
}
|
629
629
|
|
630
|
-
// read field end
|
631
|
-
default_read_field_end(protocol);
|
632
|
-
|
633
630
|
// read struct end
|
634
631
|
default_read_struct_end(protocol);
|
635
632
|
|
data/ext/thrift_native.c
CHANGED
@@ -22,7 +22,6 @@
|
|
22
22
|
#include <struct.h>
|
23
23
|
#include <binary_protocol_accelerated.h>
|
24
24
|
#include <compact_protocol.h>
|
25
|
-
#include <protocol.h>
|
26
25
|
#include <memory_buffer.h>
|
27
26
|
|
28
27
|
// cached classes/modules
|
@@ -64,7 +63,6 @@ ID write_list_begin_method_id;
|
|
64
63
|
ID write_list_end_method_id;
|
65
64
|
ID write_set_begin_method_id;
|
66
65
|
ID write_set_end_method_id;
|
67
|
-
ID size_method_id;
|
68
66
|
ID read_bool_method_id;
|
69
67
|
ID read_byte_method_id;
|
70
68
|
ID read_i16_method_id;
|
@@ -83,15 +81,12 @@ ID read_struct_end_method_id;
|
|
83
81
|
ID read_field_begin_method_id;
|
84
82
|
ID read_field_end_method_id;
|
85
83
|
ID keys_method_id;
|
86
|
-
ID entries_method_id;
|
87
|
-
ID name_method_id;
|
88
|
-
ID sort_method_id;
|
84
|
+
ID entries_method_id;
|
89
85
|
ID write_field_stop_method_id;
|
90
86
|
ID skip_method_id;
|
91
87
|
ID write_method_id;
|
92
88
|
ID read_all_method_id;
|
93
89
|
ID read_into_buffer_method_id;
|
94
|
-
ID native_qmark_method_id;
|
95
90
|
ID force_binary_encoding_id;
|
96
91
|
ID convert_to_utf8_byte_buffer_id;
|
97
92
|
ID convert_to_string_id;
|
@@ -151,7 +146,6 @@ void Init_thrift_native() {
|
|
151
146
|
write_list_end_method_id = rb_intern("write_list_end");
|
152
147
|
write_set_begin_method_id = rb_intern("write_set_begin");
|
153
148
|
write_set_end_method_id = rb_intern("write_set_end");
|
154
|
-
size_method_id = rb_intern("size");
|
155
149
|
read_bool_method_id = rb_intern("read_bool");
|
156
150
|
read_byte_method_id = rb_intern("read_byte");
|
157
151
|
read_i16_method_id = rb_intern("read_i16");
|
@@ -171,14 +165,11 @@ void Init_thrift_native() {
|
|
171
165
|
read_field_end_method_id = rb_intern("read_field_end");
|
172
166
|
keys_method_id = rb_intern("keys");
|
173
167
|
entries_method_id = rb_intern("entries");
|
174
|
-
name_method_id = rb_intern("name");
|
175
|
-
sort_method_id = rb_intern("sort");
|
176
168
|
write_field_stop_method_id = rb_intern("write_field_stop");
|
177
169
|
skip_method_id = rb_intern("skip");
|
178
170
|
write_method_id = rb_intern("write");
|
179
171
|
read_all_method_id = rb_intern("read_all");
|
180
172
|
read_into_buffer_method_id = rb_intern("read_into_buffer");
|
181
|
-
native_qmark_method_id = rb_intern("native?");
|
182
173
|
force_binary_encoding_id = rb_intern("force_binary_encoding");
|
183
174
|
convert_to_utf8_byte_buffer_id = rb_intern("convert_to_utf8_byte_buffer");
|
184
175
|
convert_to_string_id = rb_intern("convert_to_string");
|
@@ -197,7 +188,6 @@ void Init_thrift_native() {
|
|
197
188
|
element_sym = ID2SYM(rb_intern("element"));
|
198
189
|
class_sym = ID2SYM(rb_intern("class"));
|
199
190
|
|
200
|
-
Init_protocol();
|
201
191
|
Init_struct();
|
202
192
|
Init_binary_protocol_accelerated();
|
203
193
|
Init_compact_protocol();
|