thrift 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/benchmark/gen-rb/benchmark_constants.rb +3 -2
  2. data/benchmark/gen-rb/benchmark_service.rb +52 -52
  3. data/benchmark/gen-rb/benchmark_types.rb +3 -2
  4. data/ext/binary_protocol_accelerated.c +5 -2
  5. data/ext/bytes.c +36 -0
  6. data/ext/bytes.h +31 -0
  7. data/ext/compact_protocol.c +7 -4
  8. data/ext/constants.h +4 -0
  9. data/ext/extconf.rb +3 -1
  10. data/ext/memory_buffer.c +11 -8
  11. data/ext/thrift_native.c +9 -0
  12. data/lib/thrift.rb +2 -0
  13. data/lib/thrift/bytes.rb +131 -0
  14. data/lib/thrift/protocol/base_protocol.rb +10 -0
  15. data/lib/thrift/protocol/binary_protocol.rb +5 -5
  16. data/lib/thrift/protocol/compact_protocol.rb +4 -3
  17. data/lib/thrift/protocol/json_protocol.rb +765 -0
  18. data/lib/thrift/transport/base_transport.rb +22 -20
  19. data/lib/thrift/transport/buffered_transport.rb +16 -10
  20. data/lib/thrift/transport/framed_transport.rb +11 -10
  21. data/lib/thrift/transport/http_client_transport.rb +7 -5
  22. data/lib/thrift/transport/io_stream_transport.rb +1 -1
  23. data/lib/thrift/transport/memory_buffer_transport.rb +6 -6
  24. data/lib/thrift/transport/socket.rb +4 -2
  25. data/spec/ThriftSpec.thrift +52 -1
  26. data/spec/base_protocol_spec.rb +44 -45
  27. data/spec/base_transport_spec.rb +49 -50
  28. data/spec/binary_protocol_accelerated_spec.rb +9 -13
  29. data/spec/binary_protocol_spec.rb +15 -10
  30. data/spec/binary_protocol_spec_shared.rb +62 -12
  31. data/spec/bytes_spec.rb +160 -0
  32. data/spec/client_spec.rb +13 -14
  33. data/spec/compact_protocol_spec.rb +3 -2
  34. data/spec/exception_spec.rb +39 -40
  35. data/spec/gen-rb/nonblocking_service.rb +193 -193
  36. data/spec/gen-rb/thrift_spec_constants.rb +3 -2
  37. data/spec/gen-rb/thrift_spec_types.rb +455 -262
  38. data/spec/http_client_spec.rb +16 -9
  39. data/spec/json_protocol_spec.rb +513 -0
  40. data/spec/mongrel_http_server_spec.rb +19 -22
  41. data/spec/nonblocking_server_spec.rb +18 -20
  42. data/spec/processor_spec.rb +13 -16
  43. data/spec/serializer_spec.rb +17 -19
  44. data/spec/server_socket_spec.rb +6 -7
  45. data/spec/server_spec.rb +46 -58
  46. data/spec/socket_spec.rb +11 -11
  47. data/spec/socket_spec_shared.rb +1 -1
  48. data/spec/spec_helper.rb +13 -10
  49. data/spec/struct_nested_containers_spec.rb +191 -0
  50. data/spec/struct_spec.rb +84 -86
  51. data/spec/types_spec.rb +65 -66
  52. data/spec/union_spec.rb +44 -46
  53. data/spec/unix_socket_spec.rb +8 -9
  54. data/test/debug_proto/gen-rb/debug_proto_test_constants.rb +8 -7
  55. data/test/debug_proto/gen-rb/debug_proto_test_types.rb +24 -23
  56. data/test/debug_proto/gen-rb/empty_service.rb +1 -1
  57. data/test/debug_proto/gen-rb/inherited.rb +3 -3
  58. data/test/debug_proto/gen-rb/reverse_order_service.rb +1 -1
  59. data/test/debug_proto/gen-rb/service_for_exception_with_a_map.rb +3 -3
  60. data/test/debug_proto/gen-rb/srv.rb +2 -2
  61. metadata +43 -49
@@ -0,0 +1,160 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one
4
+ # or more contributor license agreements. See the NOTICE file
5
+ # distributed with this work for additional information
6
+ # regarding copyright ownership. The ASF licenses this file
7
+ # to you under the Apache License, Version 2.0 (the
8
+ # "License"); you may not use this file except in compliance
9
+ # with the License. You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+ #
20
+
21
+ require 'spec_helper'
22
+
23
+ describe Thrift::Bytes do
24
+ if RUBY_VERSION >= '1.9'
25
+ describe '.empty_byte_buffer' do
26
+ it 'should create an empty buffer' do
27
+ b = Thrift::Bytes.empty_byte_buffer
28
+ b.length.should == 0
29
+ b.encoding.should == Encoding::BINARY
30
+ end
31
+
32
+ it 'should create an empty buffer of given size' do
33
+ b = Thrift::Bytes.empty_byte_buffer 2
34
+ b.length.should == 2
35
+ b.getbyte(0).should == 0
36
+ b.getbyte(1).should == 0
37
+ b.encoding.should == Encoding::BINARY
38
+ end
39
+ end
40
+
41
+ describe '.force_binary_encoding' do
42
+ it 'should change encoding' do
43
+ e = 'STRING'.encode('UTF-8')
44
+ e.encoding.should_not == Encoding::BINARY
45
+ a = Thrift::Bytes.force_binary_encoding e
46
+ a.encoding.should == Encoding::BINARY
47
+ end
48
+ end
49
+
50
+ describe '.get_string_byte' do
51
+ it 'should get the byte at index' do
52
+ s = "\x41\x42"
53
+ Thrift::Bytes.get_string_byte(s, 0).should == 0x41
54
+ Thrift::Bytes.get_string_byte(s, 1).should == 0x42
55
+ end
56
+ end
57
+
58
+ describe '.set_string_byte' do
59
+ it 'should set byte value at index' do
60
+ s = "\x41\x42"
61
+ Thrift::Bytes.set_string_byte(s, 0, 0x43)
62
+ s.getbyte(0).should == 0x43
63
+ s.should == 'CB'
64
+ end
65
+ end
66
+
67
+ describe '.convert_to_utf8_byte_buffer' do
68
+ it 'should convert UTF-8 String to byte buffer' do
69
+ e = "\u20AC".encode('UTF-8') # a string with euro sign character U+20AC
70
+ e.length.should == 1
71
+
72
+ a = Thrift::Bytes.convert_to_utf8_byte_buffer e
73
+ a.encoding.should == Encoding::BINARY
74
+ a.length.should == 3
75
+ a.unpack('C*').should == [0xE2, 0x82, 0xAC]
76
+ end
77
+
78
+ it 'should convert ISO-8859-15 String to UTF-8 byte buffer' do
79
+ # Assumptions
80
+ e = "\u20AC".encode('ISO-8859-15') # a string with euro sign character U+20AC, then converted to ISO-8859-15
81
+ e.length.should == 1
82
+ e.unpack('C*').should == [0xA4] # euro sign is a different code point in ISO-8859-15
83
+
84
+ a = Thrift::Bytes.convert_to_utf8_byte_buffer e
85
+ a.encoding.should == Encoding::BINARY
86
+ a.length.should == 3
87
+ a.unpack('C*').should == [0xE2, 0x82, 0xAC]
88
+ end
89
+ end
90
+
91
+ describe '.convert_to_string' do
92
+ it 'should convert UTF-8 byte buffer to a UTF-8 String' do
93
+ e = [0xE2, 0x82, 0xAC].pack("C*")
94
+ e.encoding.should == Encoding::BINARY
95
+ a = Thrift::Bytes.convert_to_string e
96
+ a.encoding.should == Encoding::UTF_8
97
+ a.should == "\u20AC"
98
+ end
99
+ end
100
+
101
+ else # RUBY_VERSION
102
+ describe '.empty_byte_buffer' do
103
+ it 'should create an empty buffer' do
104
+ b = Thrift::Bytes.empty_byte_buffer
105
+ b.length.should == 0
106
+ end
107
+
108
+ it 'should create an empty buffer of given size' do
109
+ b = Thrift::Bytes.empty_byte_buffer 2
110
+ b.length.should == 2
111
+ b[0].should == 0
112
+ b[1].should == 0
113
+ end
114
+ end
115
+
116
+ describe '.force_binary_encoding' do
117
+ it 'should be a no-op' do
118
+ e = 'STRING'
119
+ a = Thrift::Bytes.force_binary_encoding e
120
+ a.should == e
121
+ a.should be(e)
122
+ end
123
+ end
124
+
125
+ describe '.get_string_byte' do
126
+ it 'should get the byte at index' do
127
+ s = "\x41\x42"
128
+ Thrift::Bytes.get_string_byte(s, 0).should == 0x41
129
+ Thrift::Bytes.get_string_byte(s, 1).should == 0x42
130
+ end
131
+ end
132
+
133
+ describe '.set_string_byte' do
134
+ it 'should set byte value at index' do
135
+ s = "\x41\x42"
136
+ Thrift::Bytes.set_string_byte(s, 0, 0x43)
137
+ s[0].should == 0x43
138
+ s.should == 'CB'
139
+ end
140
+ end
141
+
142
+ describe '.convert_to_utf8_byte_buffer' do
143
+ it 'should be a no-op' do
144
+ e = 'STRING'
145
+ a = Thrift::Bytes.convert_to_utf8_byte_buffer e
146
+ a.should == e
147
+ a.should be(e)
148
+ end
149
+ end
150
+
151
+ describe '.convert_to_string' do
152
+ it 'should be a no-op' do
153
+ e = 'STRING'
154
+ a = Thrift::Bytes.convert_to_string e
155
+ a.should == e
156
+ a.should be(e)
157
+ end
158
+ end
159
+ end
160
+ end
@@ -17,10 +17,9 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
20
+ require 'spec_helper'
21
21
 
22
- class ThriftClientSpec < Spec::ExampleGroup
23
- include Thrift
22
+ describe 'Client' do
24
23
 
25
24
  class ClientSpec
26
25
  include Thrift::Client
@@ -31,21 +30,21 @@ class ThriftClientSpec < Spec::ExampleGroup
31
30
  @client = ClientSpec.new(@prot)
32
31
  end
33
32
 
34
- describe Client do
33
+ describe Thrift::Client do
35
34
  it "should re-use iprot for oprot if not otherwise specified" do
36
35
  @client.instance_variable_get(:'@iprot').should eql(@prot)
37
36
  @client.instance_variable_get(:'@oprot').should eql(@prot)
38
37
  end
39
38
 
40
39
  it "should send a test message" do
41
- @prot.should_receive(:write_message_begin).with('testMessage', MessageTypes::CALL, 0)
40
+ @prot.should_receive(:write_message_begin).with('testMessage', Thrift::MessageTypes::CALL, 0)
42
41
  mock_args = mock('#<TestMessage_args:mock>')
43
42
  mock_args.should_receive(:foo=).with('foo')
44
43
  mock_args.should_receive(:bar=).with(42)
45
44
  mock_args.should_receive(:write).with(@prot)
46
45
  @prot.should_receive(:write_message_end)
47
46
  @prot.should_receive(:trans) do
48
- mock('trans').tee do |trans|
47
+ mock('trans').tap do |trans|
49
48
  trans.should_receive(:flush)
50
49
  end
51
50
  end
@@ -55,19 +54,19 @@ class ThriftClientSpec < Spec::ExampleGroup
55
54
 
56
55
  it "should increment the sequence id when sending messages" do
57
56
  pending "it seems sequence ids are completely ignored right now" do
58
- @prot.should_receive(:write_message_begin).with('testMessage', MessageTypes::CALL, 0).ordered
59
- @prot.should_receive(:write_message_begin).with('testMessage2', MessageTypes::CALL, 1).ordered
60
- @prot.should_receive(:write_message_begin).with('testMessage3', MessageTypes::CALL, 2).ordered
57
+ @prot.should_receive(:write_message_begin).with('testMessage', Thrift::MessageTypes::CALL, 0).ordered
58
+ @prot.should_receive(:write_message_begin).with('testMessage2', Thrift::MessageTypes::CALL, 1).ordered
59
+ @prot.should_receive(:write_message_begin).with('testMessage3', Thrift::MessageTypes::CALL, 2).ordered
61
60
  @prot.stub!(:write_message_end)
62
61
  @prot.stub!(:trans).and_return mock("trans").as_null_object
63
62
  @client.send_message('testMessage', mock("args class").as_null_object)
64
63
  @client.send_message('testMessage2', mock("args class").as_null_object)
65
- @client.send_message('testMessage3', mock("args class").as_null_object)
64
+ @client.send_message('testMessage3', mock("args class").as_null_object)
66
65
  end
67
66
  end
68
67
 
69
68
  it "should receive a test message" do
70
- @prot.should_receive(:read_message_begin).and_return [nil, MessageTypes::CALL, 0]
69
+ @prot.should_receive(:read_message_begin).and_return [nil, Thrift::MessageTypes::CALL, 0]
71
70
  @prot.should_receive(:read_message_end)
72
71
  mock_klass = mock("#<MockClass:mock>")
73
72
  mock_klass.should_receive(:read).with(@prot)
@@ -75,10 +74,10 @@ class ThriftClientSpec < Spec::ExampleGroup
75
74
  end
76
75
 
77
76
  it "should handle received exceptions" do
78
- @prot.should_receive(:read_message_begin).and_return [nil, MessageTypes::EXCEPTION, 0]
77
+ @prot.should_receive(:read_message_begin).and_return [nil, Thrift::MessageTypes::EXCEPTION, 0]
79
78
  @prot.should_receive(:read_message_end)
80
- ApplicationException.should_receive(:new).and_return do
81
- StandardError.new.tee do |mock_exc|
79
+ Thrift::ApplicationException.should_receive(:new).and_return do
80
+ StandardError.new.tap do |mock_exc|
82
81
  mock_exc.should_receive(:read).with(@prot)
83
82
  end
84
83
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Licensed to the Apache Software Foundation (ASF) under one
3
4
  # or more contributor license agreements. See the NOTICE file
@@ -17,7 +18,7 @@
17
18
  # under the License.
18
19
  #
19
20
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require 'spec_helper'
21
22
 
22
23
  describe Thrift::CompactProtocol do
23
24
  TESTS = {
@@ -25,7 +26,7 @@ describe Thrift::CompactProtocol do
25
26
  :i16 => (0..14).map {|shift| [1 << shift, -(1 << shift)]}.flatten.sort,
26
27
  :i32 => (0..30).map {|shift| [1 << shift, -(1 << shift)]}.flatten.sort,
27
28
  :i64 => (0..62).map {|shift| [1 << shift, -(1 << shift)]}.flatten.sort,
28
- :string => ["", "1", "short", "fourteen123456", "fifteen12345678", "1" * 127, "1" * 3000],
29
+ :string => ["", "1", "short", "fourteen123456", "fifteen12345678", "unicode characters: \u20AC \u20AD", "1" * 127, "1" * 3000],
29
30
  :binary => ["", "\001", "\001" * 5, "\001" * 14, "\001" * 15, "\001" * 127, "\001" * 3000],
30
31
  :double => [0.0, 1.0, -1.0, 1.1, -1.1, 10000000.1, 1.0/0.0, -1.0/0.0],
31
32
  :bool => [true, false]
@@ -17,29 +17,28 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
20
+ require 'spec_helper'
21
21
 
22
- class ThriftExceptionSpec < Spec::ExampleGroup
23
- include Thrift
22
+ describe 'Exception' do
24
23
 
25
- describe Exception do
24
+ describe Thrift::Exception do
26
25
  it "should have an accessible message" do
27
- e = Exception.new("test message")
26
+ e = Thrift::Exception.new("test message")
28
27
  e.message.should == "test message"
29
28
  end
30
29
  end
31
30
 
32
- describe ApplicationException do
31
+ describe Thrift::ApplicationException do
33
32
  it "should inherit from Thrift::Exception" do
34
- ApplicationException.superclass.should == Exception
33
+ Thrift::ApplicationException.superclass.should == Thrift::Exception
35
34
  end
36
35
 
37
36
  it "should have an accessible type and message" do
38
- e = ApplicationException.new
39
- e.type.should == ApplicationException::UNKNOWN
37
+ e = Thrift::ApplicationException.new
38
+ e.type.should == Thrift::ApplicationException::UNKNOWN
40
39
  e.message.should be_nil
41
- e = ApplicationException.new(ApplicationException::UNKNOWN_METHOD, "test message")
42
- e.type.should == ApplicationException::UNKNOWN_METHOD
40
+ e = Thrift::ApplicationException.new(Thrift::ApplicationException::UNKNOWN_METHOD, "test message")
41
+ e.type.should == Thrift::ApplicationException::UNKNOWN_METHOD
43
42
  e.message.should == "test message"
44
43
  end
45
44
 
@@ -47,79 +46,79 @@ class ThriftExceptionSpec < Spec::ExampleGroup
47
46
  prot = mock("MockProtocol")
48
47
  prot.should_receive(:read_struct_begin).ordered
49
48
  prot.should_receive(:read_field_begin).exactly(3).times.and_return(
50
- ["message", Types::STRING, 1],
51
- ["type", Types::I32, 2],
52
- [nil, Types::STOP, 0]
49
+ ["message", Thrift::Types::STRING, 1],
50
+ ["type", Thrift::Types::I32, 2],
51
+ [nil, Thrift::Types::STOP, 0]
53
52
  )
54
53
  prot.should_receive(:read_string).ordered.and_return "test message"
55
- prot.should_receive(:read_i32).ordered.and_return ApplicationException::BAD_SEQUENCE_ID
54
+ prot.should_receive(:read_i32).ordered.and_return Thrift::ApplicationException::BAD_SEQUENCE_ID
56
55
  prot.should_receive(:read_field_end).exactly(2).times
57
56
  prot.should_receive(:read_struct_end).ordered
58
57
 
59
- e = ApplicationException.new
58
+ e = Thrift::ApplicationException.new
60
59
  e.read(prot)
61
60
  e.message.should == "test message"
62
- e.type.should == ApplicationException::BAD_SEQUENCE_ID
61
+ e.type.should == Thrift::ApplicationException::BAD_SEQUENCE_ID
63
62
  end
64
63
 
65
64
  it "should skip bad fields when reading a struct" do
66
65
  prot = mock("MockProtocol")
67
66
  prot.should_receive(:read_struct_begin).ordered
68
67
  prot.should_receive(:read_field_begin).exactly(5).times.and_return(
69
- ["type", Types::I32, 2],
70
- ["type", Types::STRING, 2],
71
- ["message", Types::MAP, 1],
72
- ["message", Types::STRING, 3],
73
- [nil, Types::STOP, 0]
68
+ ["type", Thrift::Types::I32, 2],
69
+ ["type", Thrift::Types::STRING, 2],
70
+ ["message", Thrift::Types::MAP, 1],
71
+ ["message", Thrift::Types::STRING, 3],
72
+ [nil, Thrift::Types::STOP, 0]
74
73
  )
75
- prot.should_receive(:read_i32).and_return ApplicationException::INVALID_MESSAGE_TYPE
76
- prot.should_receive(:skip).with(Types::STRING).twice
77
- prot.should_receive(:skip).with(Types::MAP)
74
+ prot.should_receive(:read_i32).and_return Thrift::ApplicationException::INVALID_MESSAGE_TYPE
75
+ prot.should_receive(:skip).with(Thrift::Types::STRING).twice
76
+ prot.should_receive(:skip).with(Thrift::Types::MAP)
78
77
  prot.should_receive(:read_field_end).exactly(4).times
79
78
  prot.should_receive(:read_struct_end).ordered
80
79
 
81
- e = ApplicationException.new
80
+ e = Thrift::ApplicationException.new
82
81
  e.read(prot)
83
82
  e.message.should be_nil
84
- e.type.should == ApplicationException::INVALID_MESSAGE_TYPE
83
+ e.type.should == Thrift::ApplicationException::INVALID_MESSAGE_TYPE
85
84
  end
86
85
 
87
86
  it "should write a Thrift::ApplicationException struct to the oprot" do
88
87
  prot = mock("MockProtocol")
89
88
  prot.should_receive(:write_struct_begin).with("Thrift::ApplicationException").ordered
90
- prot.should_receive(:write_field_begin).with("message", Types::STRING, 1).ordered
89
+ prot.should_receive(:write_field_begin).with("message", Thrift::Types::STRING, 1).ordered
91
90
  prot.should_receive(:write_string).with("test message").ordered
92
- prot.should_receive(:write_field_begin).with("type", Types::I32, 2).ordered
93
- prot.should_receive(:write_i32).with(ApplicationException::UNKNOWN_METHOD).ordered
91
+ prot.should_receive(:write_field_begin).with("type", Thrift::Types::I32, 2).ordered
92
+ prot.should_receive(:write_i32).with(Thrift::ApplicationException::UNKNOWN_METHOD).ordered
94
93
  prot.should_receive(:write_field_end).twice
95
94
  prot.should_receive(:write_field_stop).ordered
96
95
  prot.should_receive(:write_struct_end).ordered
97
96
 
98
- e = ApplicationException.new(ApplicationException::UNKNOWN_METHOD, "test message")
97
+ e = Thrift::ApplicationException.new(Thrift::ApplicationException::UNKNOWN_METHOD, "test message")
99
98
  e.write(prot)
100
99
  end
101
100
 
102
101
  it "should skip nil fields when writing to the oprot" do
103
102
  prot = mock("MockProtocol")
104
103
  prot.should_receive(:write_struct_begin).with("Thrift::ApplicationException").ordered
105
- prot.should_receive(:write_field_begin).with("message", Types::STRING, 1).ordered
104
+ prot.should_receive(:write_field_begin).with("message", Thrift::Types::STRING, 1).ordered
106
105
  prot.should_receive(:write_string).with("test message").ordered
107
106
  prot.should_receive(:write_field_end).ordered
108
107
  prot.should_receive(:write_field_stop).ordered
109
108
  prot.should_receive(:write_struct_end).ordered
110
109
 
111
- e = ApplicationException.new(nil, "test message")
110
+ e = Thrift::ApplicationException.new(nil, "test message")
112
111
  e.write(prot)
113
112
 
114
113
  prot = mock("MockProtocol")
115
114
  prot.should_receive(:write_struct_begin).with("Thrift::ApplicationException").ordered
116
- prot.should_receive(:write_field_begin).with("type", Types::I32, 2).ordered
117
- prot.should_receive(:write_i32).with(ApplicationException::BAD_SEQUENCE_ID).ordered
115
+ prot.should_receive(:write_field_begin).with("type", Thrift::Types::I32, 2).ordered
116
+ prot.should_receive(:write_i32).with(Thrift::ApplicationException::BAD_SEQUENCE_ID).ordered
118
117
  prot.should_receive(:write_field_end).ordered
119
118
  prot.should_receive(:write_field_stop).ordered
120
119
  prot.should_receive(:write_struct_end).ordered
121
120
 
122
- e = ApplicationException.new(ApplicationException::BAD_SEQUENCE_ID)
121
+ e = Thrift::ApplicationException.new(Thrift::ApplicationException::BAD_SEQUENCE_ID)
123
122
  e.write(prot)
124
123
 
125
124
  prot = mock("MockProtocol")
@@ -127,15 +126,15 @@ class ThriftExceptionSpec < Spec::ExampleGroup
127
126
  prot.should_receive(:write_field_stop).ordered
128
127
  prot.should_receive(:write_struct_end).ordered
129
128
 
130
- e = ApplicationException.new(nil)
129
+ e = Thrift::ApplicationException.new(nil)
131
130
  e.write(prot)
132
131
  end
133
132
  end
134
133
 
135
- describe ProtocolException do
134
+ describe Thrift::ProtocolException do
136
135
  it "should have an accessible type" do
137
- prot = ProtocolException.new(ProtocolException::SIZE_LIMIT, "message")
138
- prot.type.should == ProtocolException::SIZE_LIMIT
136
+ prot = Thrift::ProtocolException.new(Thrift::ProtocolException::SIZE_LIMIT, "message")
137
+ prot.type.should == Thrift::ProtocolException::SIZE_LIMIT
139
138
  prot.message.should == "message"
140
139
  end
141
140
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.8.0)
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -7,266 +7,266 @@
7
7
  require 'thrift'
8
8
  require 'thrift_spec_types'
9
9
 
10
- module SpecNamespace
11
- module NonblockingService
12
- class Client
13
- include ::Thrift::Client
14
-
15
- def greeting(english)
16
- send_greeting(english)
17
- return recv_greeting()
18
- end
19
-
20
- def send_greeting(english)
21
- send_message('greeting', Greeting_args, :english => english)
22
- end
23
-
24
- def recv_greeting()
25
- result = receive_message(Greeting_result)
26
- return result.success unless result.success.nil?
27
- raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'greeting failed: unknown result')
28
- end
29
-
30
- def block()
31
- send_block()
32
- return recv_block()
33
- end
34
-
35
- def send_block()
36
- send_message('block', Block_args)
37
- end
38
-
39
- def recv_block()
40
- result = receive_message(Block_result)
41
- return result.success unless result.success.nil?
42
- raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'block failed: unknown result')
43
- end
44
-
45
- def unblock(n)
46
- send_unblock(n)
47
- end
48
-
49
- def send_unblock(n)
50
- send_message('unblock', Unblock_args, :n => n)
51
- end
52
- def shutdown()
53
- send_shutdown()
54
- end
10
+ module SpecNamespace
11
+ module NonblockingService
12
+ class Client
13
+ include ::Thrift::Client
55
14
 
56
- def send_shutdown()
57
- send_message('shutdown', Shutdown_args)
58
- end
59
- def sleep(seconds)
60
- send_sleep(seconds)
61
- recv_sleep()
62
- end
15
+ def greeting(english)
16
+ send_greeting(english)
17
+ return recv_greeting()
18
+ end
63
19
 
64
- def send_sleep(seconds)
65
- send_message('sleep', Sleep_args, :seconds => seconds)
66
- end
20
+ def send_greeting(english)
21
+ send_message('greeting', Greeting_args, :english => english)
22
+ end
67
23
 
68
- def recv_sleep()
69
- result = receive_message(Sleep_result)
70
- return
71
- end
24
+ def recv_greeting()
25
+ result = receive_message(Greeting_result)
26
+ return result.success unless result.success.nil?
27
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'greeting failed: unknown result')
28
+ end
72
29
 
73
- end
30
+ def block()
31
+ send_block()
32
+ return recv_block()
33
+ end
74
34
 
75
- class Processor
76
- include ::Thrift::Processor
35
+ def send_block()
36
+ send_message('block', Block_args)
37
+ end
77
38
 
78
- def process_greeting(seqid, iprot, oprot)
79
- args = read_args(iprot, Greeting_args)
80
- result = Greeting_result.new()
81
- result.success = @handler.greeting(args.english)
82
- write_result(result, oprot, 'greeting', seqid)
83
- end
39
+ def recv_block()
40
+ result = receive_message(Block_result)
41
+ return result.success unless result.success.nil?
42
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'block failed: unknown result')
43
+ end
84
44
 
85
- def process_block(seqid, iprot, oprot)
86
- args = read_args(iprot, Block_args)
87
- result = Block_result.new()
88
- result.success = @handler.block()
89
- write_result(result, oprot, 'block', seqid)
90
- end
45
+ def unblock(n)
46
+ send_unblock(n)
47
+ end
91
48
 
92
- def process_unblock(seqid, iprot, oprot)
93
- args = read_args(iprot, Unblock_args)
94
- @handler.unblock(args.n)
95
- return
96
- end
49
+ def send_unblock(n)
50
+ send_message('unblock', Unblock_args, :n => n)
51
+ end
52
+ def shutdown()
53
+ send_shutdown()
54
+ end
97
55
 
98
- def process_shutdown(seqid, iprot, oprot)
99
- args = read_args(iprot, Shutdown_args)
100
- @handler.shutdown()
101
- return
102
- end
56
+ def send_shutdown()
57
+ send_message('shutdown', Shutdown_args)
58
+ end
59
+ def sleep(seconds)
60
+ send_sleep(seconds)
61
+ recv_sleep()
62
+ end
103
63
 
104
- def process_sleep(seqid, iprot, oprot)
105
- args = read_args(iprot, Sleep_args)
106
- result = Sleep_result.new()
107
- @handler.sleep(args.seconds)
108
- write_result(result, oprot, 'sleep', seqid)
109
- end
64
+ def send_sleep(seconds)
65
+ send_message('sleep', Sleep_args, :seconds => seconds)
66
+ end
67
+
68
+ def recv_sleep()
69
+ result = receive_message(Sleep_result)
70
+ return
71
+ end
72
+
73
+ end
74
+
75
+ class Processor
76
+ include ::Thrift::Processor
77
+
78
+ def process_greeting(seqid, iprot, oprot)
79
+ args = read_args(iprot, Greeting_args)
80
+ result = Greeting_result.new()
81
+ result.success = @handler.greeting(args.english)
82
+ write_result(result, oprot, 'greeting', seqid)
83
+ end
84
+
85
+ def process_block(seqid, iprot, oprot)
86
+ args = read_args(iprot, Block_args)
87
+ result = Block_result.new()
88
+ result.success = @handler.block()
89
+ write_result(result, oprot, 'block', seqid)
90
+ end
91
+
92
+ def process_unblock(seqid, iprot, oprot)
93
+ args = read_args(iprot, Unblock_args)
94
+ @handler.unblock(args.n)
95
+ return
96
+ end
110
97
 
111
- end
98
+ def process_shutdown(seqid, iprot, oprot)
99
+ args = read_args(iprot, Shutdown_args)
100
+ @handler.shutdown()
101
+ return
102
+ end
112
103
 
113
- # HELPER FUNCTIONS AND STRUCTURES
104
+ def process_sleep(seqid, iprot, oprot)
105
+ args = read_args(iprot, Sleep_args)
106
+ result = Sleep_result.new()
107
+ @handler.sleep(args.seconds)
108
+ write_result(result, oprot, 'sleep', seqid)
109
+ end
114
110
 
115
- class Greeting_args
116
- include ::Thrift::Struct, ::Thrift::Struct_Union
117
- ENGLISH = 1
111
+ end
118
112
 
119
- FIELDS = {
120
- ENGLISH => {:type => ::Thrift::Types::BOOL, :name => 'english'}
121
- }
113
+ # HELPER FUNCTIONS AND STRUCTURES
122
114
 
123
- def struct_fields; FIELDS; end
115
+ class Greeting_args
116
+ include ::Thrift::Struct, ::Thrift::Struct_Union
117
+ ENGLISH = 1
124
118
 
125
- def validate
126
- end
119
+ FIELDS = {
120
+ ENGLISH => {:type => ::Thrift::Types::BOOL, :name => 'english'}
121
+ }
127
122
 
128
- ::Thrift::Struct.generate_accessors self
129
- end
123
+ def struct_fields; FIELDS; end
130
124
 
131
- class Greeting_result
132
- include ::Thrift::Struct, ::Thrift::Struct_Union
133
- SUCCESS = 0
125
+ def validate
126
+ end
134
127
 
135
- FIELDS = {
136
- SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => SpecNamespace::Hello}
137
- }
128
+ ::Thrift::Struct.generate_accessors self
129
+ end
138
130
 
139
- def struct_fields; FIELDS; end
131
+ class Greeting_result
132
+ include ::Thrift::Struct, ::Thrift::Struct_Union
133
+ SUCCESS = 0
140
134
 
141
- def validate
142
- end
135
+ FIELDS = {
136
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SpecNamespace::Hello}
137
+ }
143
138
 
144
- ::Thrift::Struct.generate_accessors self
145
- end
139
+ def struct_fields; FIELDS; end
146
140
 
147
- class Block_args
148
- include ::Thrift::Struct, ::Thrift::Struct_Union
141
+ def validate
142
+ end
149
143
 
150
- FIELDS = {
144
+ ::Thrift::Struct.generate_accessors self
145
+ end
151
146
 
152
- }
147
+ class Block_args
148
+ include ::Thrift::Struct, ::Thrift::Struct_Union
153
149
 
154
- def struct_fields; FIELDS; end
150
+ FIELDS = {
155
151
 
156
- def validate
157
- end
152
+ }
158
153
 
159
- ::Thrift::Struct.generate_accessors self
160
- end
154
+ def struct_fields; FIELDS; end
161
155
 
162
- class Block_result
163
- include ::Thrift::Struct, ::Thrift::Struct_Union
164
- SUCCESS = 0
156
+ def validate
157
+ end
165
158
 
166
- FIELDS = {
167
- SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
168
- }
159
+ ::Thrift::Struct.generate_accessors self
160
+ end
169
161
 
170
- def struct_fields; FIELDS; end
162
+ class Block_result
163
+ include ::Thrift::Struct, ::Thrift::Struct_Union
164
+ SUCCESS = 0
171
165
 
172
- def validate
173
- end
166
+ FIELDS = {
167
+ SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
168
+ }
174
169
 
175
- ::Thrift::Struct.generate_accessors self
176
- end
170
+ def struct_fields; FIELDS; end
177
171
 
178
- class Unblock_args
179
- include ::Thrift::Struct, ::Thrift::Struct_Union
180
- N = 1
172
+ def validate
173
+ end
181
174
 
182
- FIELDS = {
183
- N => {:type => ::Thrift::Types::I32, :name => 'n'}
184
- }
175
+ ::Thrift::Struct.generate_accessors self
176
+ end
185
177
 
186
- def struct_fields; FIELDS; end
178
+ class Unblock_args
179
+ include ::Thrift::Struct, ::Thrift::Struct_Union
180
+ N = 1
187
181
 
188
- def validate
189
- end
182
+ FIELDS = {
183
+ N => {:type => ::Thrift::Types::I32, :name => 'n'}
184
+ }
190
185
 
191
- ::Thrift::Struct.generate_accessors self
192
- end
186
+ def struct_fields; FIELDS; end
193
187
 
194
- class Unblock_result
195
- include ::Thrift::Struct, ::Thrift::Struct_Union
188
+ def validate
189
+ end
196
190
 
197
- FIELDS = {
191
+ ::Thrift::Struct.generate_accessors self
192
+ end
198
193
 
199
- }
194
+ class Unblock_result
195
+ include ::Thrift::Struct, ::Thrift::Struct_Union
200
196
 
201
- def struct_fields; FIELDS; end
197
+ FIELDS = {
202
198
 
203
- def validate
204
- end
199
+ }
205
200
 
206
- ::Thrift::Struct.generate_accessors self
207
- end
201
+ def struct_fields; FIELDS; end
208
202
 
209
- class Shutdown_args
210
- include ::Thrift::Struct, ::Thrift::Struct_Union
203
+ def validate
204
+ end
211
205
 
212
- FIELDS = {
206
+ ::Thrift::Struct.generate_accessors self
207
+ end
213
208
 
214
- }
209
+ class Shutdown_args
210
+ include ::Thrift::Struct, ::Thrift::Struct_Union
215
211
 
216
- def struct_fields; FIELDS; end
212
+ FIELDS = {
217
213
 
218
- def validate
219
- end
214
+ }
220
215
 
221
- ::Thrift::Struct.generate_accessors self
222
- end
216
+ def struct_fields; FIELDS; end
223
217
 
224
- class Shutdown_result
225
- include ::Thrift::Struct, ::Thrift::Struct_Union
218
+ def validate
219
+ end
226
220
 
227
- FIELDS = {
221
+ ::Thrift::Struct.generate_accessors self
222
+ end
228
223
 
229
- }
224
+ class Shutdown_result
225
+ include ::Thrift::Struct, ::Thrift::Struct_Union
230
226
 
231
- def struct_fields; FIELDS; end
227
+ FIELDS = {
232
228
 
233
- def validate
234
- end
229
+ }
235
230
 
236
- ::Thrift::Struct.generate_accessors self
237
- end
231
+ def struct_fields; FIELDS; end
238
232
 
239
- class Sleep_args
240
- include ::Thrift::Struct, ::Thrift::Struct_Union
241
- SECONDS = 1
233
+ def validate
234
+ end
242
235
 
243
- FIELDS = {
244
- SECONDS => {:type => ::Thrift::Types::DOUBLE, :name => 'seconds'}
245
- }
236
+ ::Thrift::Struct.generate_accessors self
237
+ end
246
238
 
247
- def struct_fields; FIELDS; end
239
+ class Sleep_args
240
+ include ::Thrift::Struct, ::Thrift::Struct_Union
241
+ SECONDS = 1
248
242
 
249
- def validate
250
- end
243
+ FIELDS = {
244
+ SECONDS => {:type => ::Thrift::Types::DOUBLE, :name => 'seconds'}
245
+ }
251
246
 
252
- ::Thrift::Struct.generate_accessors self
253
- end
247
+ def struct_fields; FIELDS; end
254
248
 
255
- class Sleep_result
256
- include ::Thrift::Struct, ::Thrift::Struct_Union
249
+ def validate
250
+ end
257
251
 
258
- FIELDS = {
252
+ ::Thrift::Struct.generate_accessors self
253
+ end
259
254
 
260
- }
255
+ class Sleep_result
256
+ include ::Thrift::Struct, ::Thrift::Struct_Union
261
257
 
262
- def struct_fields; FIELDS; end
258
+ FIELDS = {
263
259
 
264
- def validate
265
- end
260
+ }
266
261
 
267
- ::Thrift::Struct.generate_accessors self
268
- end
262
+ def struct_fields; FIELDS; end
269
263
 
264
+ def validate
270
265
  end
271
266
 
267
+ ::Thrift::Struct.generate_accessors self
272
268
  end
269
+
270
+ end
271
+
272
+ end