upfluence-thrift 2.6.1 → 2.7.4

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.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/benchmark/benchmark_constants.rb +11 -0
  3. data/benchmark/benchmark_service.rb +152 -0
  4. data/benchmark/benchmark_types.rb +10 -0
  5. data/ext/struct.c +5 -1
  6. data/lib/thrift/base_stream.rb +85 -0
  7. data/lib/thrift/bidi_stream.rb +183 -0
  8. data/lib/thrift/client.rb +84 -17
  9. data/lib/thrift/definition.rb +4 -0
  10. data/lib/thrift/inbound_stream.rb +72 -0
  11. data/lib/thrift/middleware.rb +42 -0
  12. data/lib/thrift/outbound_stream.rb +52 -0
  13. data/lib/thrift/processor.rb +287 -47
  14. data/lib/thrift/protocol/base_protocol.rb +35 -33
  15. data/lib/thrift/protocol/binary_protocol.rb +8 -1
  16. data/lib/thrift/protocol/binary_protocol_accelerated.rb +8 -0
  17. data/lib/thrift/protocol/compact_protocol.rb +8 -0
  18. data/lib/thrift/protocol/json_protocol.rb +21 -4
  19. data/lib/thrift/protocol/multiplexed_protocol.rb +5 -1
  20. data/lib/thrift/server/base_server.rb +8 -2
  21. data/lib/thrift/server/nonblocking_server.rb +5 -4
  22. data/lib/thrift/server/simple_server.rb +5 -1
  23. data/lib/thrift/server/thread_pool_server.rb +5 -1
  24. data/lib/thrift/server/threaded_server.rb +5 -1
  25. data/lib/thrift/transport/base_server_transport.rb +1 -1
  26. data/lib/thrift/transport/base_transport.rb +8 -0
  27. data/lib/thrift/transport/buffered_transport.rb +9 -1
  28. data/lib/thrift/transport/framed_transport.rb +9 -1
  29. data/lib/thrift/transport/http_client_transport.rb +4 -0
  30. data/lib/thrift/transport/io_stream_transport.rb +4 -1
  31. data/lib/thrift/transport/memory_buffer_transport.rb +4 -0
  32. data/lib/thrift/transport/server_socket.rb +5 -0
  33. data/lib/thrift/transport/socket.rb +21 -17
  34. data/lib/thrift/transport/ssl_server_socket.rb +41 -0
  35. data/lib/thrift/transport/ssl_socket.rb +51 -0
  36. data/lib/thrift/transport/unix_server_socket.rb +5 -1
  37. data/lib/thrift/transport/unix_socket.rb +5 -1
  38. data/lib/thrift/types/annotation/deprecation/deprecation_constants.rb +1 -1
  39. data/lib/thrift/types/annotation/deprecation/deprecation_types.rb +2 -2
  40. data/lib/thrift/types/annotation/exception/exception_constants.rb +17 -0
  41. data/lib/thrift/types/annotation/exception/exception_types.rb +44 -0
  42. data/lib/thrift/types/annotation/naming/naming_constants.rb +1 -1
  43. data/lib/thrift/types/annotation/naming/naming_types.rb +2 -2
  44. data/lib/thrift/types/annotation/rpc/rpc_constants.rb +17 -0
  45. data/lib/thrift/types/annotation/rpc/rpc_types.rb +74 -0
  46. data/lib/thrift/types/annotation_definition/annotation_definition_constants.rb +15 -0
  47. data/lib/thrift/types/annotation_definition/annotation_definition_types.rb +116 -0
  48. data/lib/thrift/types/constant_definition/constant_definition_constants.rb +15 -0
  49. data/lib/thrift/types/constant_definition/constant_definition_types.rb +292 -0
  50. data/lib/thrift/types/core/core_constants.rb +15 -0
  51. data/lib/thrift/types/core/core_types.rb +58 -0
  52. data/lib/thrift/types/enum_definition/enum_definition_constants.rb +15 -0
  53. data/lib/thrift/types/enum_definition/enum_definition_types.rb +106 -0
  54. data/lib/thrift/types/known/any/any_constants.rb +1 -1
  55. data/lib/thrift/types/known/any/any_types.rb +2 -2
  56. data/lib/thrift/types/known/duration/duration_constants.rb +1 -1
  57. data/lib/thrift/types/known/duration/duration_types.rb +2 -2
  58. data/lib/thrift/types/known/timestamp/timestamp_constants.rb +1 -1
  59. data/lib/thrift/types/known/timestamp/timestamp_types.rb +2 -2
  60. data/lib/thrift/types/plugin/plugin.rb +139 -0
  61. data/lib/thrift/types/plugin/plugin_constants.rb +15 -0
  62. data/lib/thrift/types/plugin/plugin_types.rb +106 -0
  63. data/lib/thrift/types/program_definition/program_definition_constants.rb +15 -0
  64. data/lib/thrift/types/program_definition/program_definition_types.rb +137 -0
  65. data/lib/thrift/types/service_definition/service_definition_constants.rb +15 -0
  66. data/lib/thrift/types/service_definition/service_definition_types.rb +160 -0
  67. data/lib/thrift/types/struct_definition/struct_definition_constants.rb +15 -0
  68. data/lib/thrift/types/struct_definition/struct_definition_types.rb +157 -0
  69. data/lib/thrift/types/type_definition/type_definition_constants.rb +15 -0
  70. data/lib/thrift/types/type_definition/type_definition_types.rb +242 -0
  71. data/lib/thrift/types/value/value_constants.rb +1 -1
  72. data/lib/thrift/types/value/value_types.rb +50 -51
  73. data/lib/thrift/types.rb +11 -3
  74. data/lib/thrift/union.rb +3 -6
  75. data/lib/thrift.rb +6 -0
  76. data/lib/types/annotation/deprecation/deprecation_constants.rb +16 -0
  77. data/lib/types/annotation/deprecation/deprecation_types.rb +42 -0
  78. data/lib/types/annotation/naming/naming_constants.rb +16 -0
  79. data/lib/types/annotation/naming/naming_types.rb +57 -0
  80. data/lib/types/annotation_definition/annotation_definition_constants.rb +14 -0
  81. data/lib/types/annotation_definition/annotation_definition_types.rb +114 -0
  82. data/lib/types/constant_definition/constant_definition_constants.rb +14 -0
  83. data/lib/types/constant_definition/constant_definition_types.rb +290 -0
  84. data/lib/types/core/core_constants.rb +14 -0
  85. data/lib/types/core/core_types.rb +56 -0
  86. data/lib/types/enum_definition/enum_definition_constants.rb +14 -0
  87. data/lib/types/enum_definition/enum_definition_types.rb +104 -0
  88. data/lib/types/known/any/any_constants.rb +16 -0
  89. data/lib/types/known/any/any_types.rb +59 -0
  90. data/lib/types/known/duration/duration_constants.rb +16 -0
  91. data/lib/types/known/duration/duration_types.rb +59 -0
  92. data/lib/types/known/timestamp/timestamp_constants.rb +16 -0
  93. data/lib/types/known/timestamp/timestamp_types.rb +59 -0
  94. data/lib/types/plugin/plugin.rb +137 -0
  95. data/lib/types/plugin/plugin_constants.rb +14 -0
  96. data/lib/types/plugin/plugin_types.rb +104 -0
  97. data/lib/types/program_definition/program_definition_constants.rb +14 -0
  98. data/lib/types/program_definition/program_definition_types.rb +135 -0
  99. data/lib/types/service_definition/service_definition_constants.rb +14 -0
  100. data/lib/types/service_definition/service_definition_types.rb +158 -0
  101. data/lib/types/struct_definition/struct_definition_constants.rb +14 -0
  102. data/lib/types/struct_definition/struct_definition_types.rb +155 -0
  103. data/lib/types/type_definition/type_definition_constants.rb +14 -0
  104. data/lib/types/type_definition/type_definition_types.rb +240 -0
  105. data/lib/types/value/value_constants.rb +14 -0
  106. data/lib/types/value/value_types.rb +330 -0
  107. data/spec/base/base_service.rb +152 -0
  108. data/spec/base/base_service_constants.rb +11 -0
  109. data/spec/base/base_service_types.rb +45 -0
  110. data/spec/base_protocol_spec.rb +79 -71
  111. data/spec/base_transport_spec.rb +155 -117
  112. data/spec/binary_protocol_accelerated_spec.rb +6 -2
  113. data/spec/binary_protocol_spec.rb +16 -8
  114. data/spec/binary_protocol_spec_shared.rb +77 -77
  115. data/spec/bytes_spec.rb +38 -38
  116. data/spec/client_spec.rb +48 -50
  117. data/spec/compact_protocol_spec.rb +59 -46
  118. data/spec/exception_spec.rb +54 -54
  119. data/spec/extended/extended_service.rb +137 -0
  120. data/spec/extended/extended_service_constants.rb +11 -0
  121. data/spec/extended/extended_service_types.rb +12 -0
  122. data/spec/flat_spec.rb +5 -5
  123. data/spec/gen-rb/flat/namespaced_nonblocking_service.rb +507 -0
  124. data/spec/gen-rb/flat/referenced_constants.rb +11 -0
  125. data/spec/gen-rb/flat/referenced_types.rb +17 -0
  126. data/spec/gen-rb/flat/thrift_namespaced_spec_constants.rb +11 -0
  127. data/spec/gen-rb/flat/thrift_namespaced_spec_types.rb +47 -0
  128. data/spec/http_client_spec.rb +96 -43
  129. data/spec/json_protocol_spec.rb +170 -131
  130. data/spec/namespaced_spec.rb +24 -27
  131. data/spec/namespaced_spec_namespace/namespaced_nonblocking_service.rb +507 -0
  132. data/spec/namespaced_spec_namespace/thrift_namespaced_spec_constants.rb +11 -0
  133. data/spec/namespaced_spec_namespace/thrift_namespaced_spec_types.rb +47 -0
  134. data/spec/nonblocking_server_spec.rb +16 -16
  135. data/spec/nonblocking_service.rb +507 -0
  136. data/spec/other_namespace/referenced_constants.rb +11 -0
  137. data/spec/other_namespace/referenced_types.rb +17 -0
  138. data/spec/processor_spec.rb +42 -31
  139. data/spec/rack_application_spec.rb +22 -26
  140. data/spec/serializer_spec.rb +20 -20
  141. data/spec/server_socket_spec.rb +27 -22
  142. data/spec/server_spec.rb +91 -51
  143. data/spec/socket_spec.rb +23 -16
  144. data/spec/socket_spec_shared.rb +31 -31
  145. data/spec/spec_helper.rb +17 -17
  146. data/spec/ssl_server_socket_spec.rb +34 -0
  147. data/spec/ssl_socket_spec.rb +78 -0
  148. data/spec/streaming_spec.rb +442 -0
  149. data/spec/struct_nested_containers_spec.rb +24 -24
  150. data/spec/struct_spec.rb +120 -120
  151. data/spec/thin_http_server_spec.rb +71 -28
  152. data/spec/thrift_spec_constants.rb +11 -0
  153. data/spec/thrift_spec_types.rb +1173 -0
  154. data/spec/types/known/any_spec.rb +2 -2
  155. data/spec/types/known/duration_spec.rb +1 -1
  156. data/spec/types/known/timestamp_spec.rb +1 -1
  157. data/spec/types/value_spec.rb +2 -1
  158. data/spec/types_spec.rb +56 -53
  159. data/spec/union_spec.rb +51 -40
  160. data/spec/unix_socket_spec.rb +43 -34
  161. data/test/debug_proto/gen-rb/debug_proto_test_constants.rb +281 -0
  162. data/test/debug_proto/gen-rb/debug_proto_test_types.rb +2033 -0
  163. data/test/debug_proto/gen-rb/empty_service.rb +52 -0
  164. data/test/debug_proto/gen-rb/inherited.rb +155 -0
  165. data/test/debug_proto/gen-rb/reverse_order_service.rb +169 -0
  166. data/test/debug_proto/gen-rb/service_for_exception_with_a_map.rb +150 -0
  167. data/test/debug_proto/gen-rb/srv.rb +718 -0
  168. metadata +202 -7
@@ -0,0 +1,52 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (v0.0.1-upfluence)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'debug_proto_test_types'
9
+
10
+ module Thrift
11
+ module Test
12
+ module EmptyService
13
+ SERVICE = 'EmptyService'.freeze
14
+ NAMESPACE = ''.freeze
15
+
16
+ LEGACY_ANNOTATIONS = {
17
+ }.freeze
18
+
19
+ STRUCTURED_ANNOTATIONS = [
20
+ ].freeze
21
+
22
+ # HELPER FUNCTIONS AND STRUCTURES
23
+
24
+ class Client
25
+ def initialize(client)
26
+ @client = ::Thrift.build_client(client)
27
+ end
28
+
29
+ def self.from_provider(provider)
30
+ Client.new(provider.build(NAMESPACE, SERVICE))
31
+ end
32
+
33
+ end
34
+
35
+ class Processor
36
+ include ::Thrift::Processor
37
+
38
+ def self.from_provider(handler, provider)
39
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
40
+ end
41
+
42
+ METHODS = {
43
+ }.freeze
44
+
45
+ end
46
+
47
+ ::Thrift.register_service_type(self)
48
+
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,155 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (v0.0.1-upfluence)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'srv'
9
+ require 'debug_proto_test_types'
10
+
11
+ module Thrift
12
+ module Test
13
+ module Inherited
14
+ SERVICE = 'Inherited'.freeze
15
+ NAMESPACE = ''.freeze
16
+
17
+ LEGACY_ANNOTATIONS = {
18
+ }.freeze
19
+
20
+ STRUCTURED_ANNOTATIONS = [
21
+ ].freeze
22
+
23
+ # HELPER FUNCTIONS AND STRUCTURES
24
+
25
+ class Identity_args
26
+ include ::Thrift::Struct, ::Thrift::Struct_Union
27
+
28
+ NAME = 'identity_args'.freeze
29
+ NAMESPACE = ''.freeze
30
+
31
+ LEGACY_ANNOTATIONS = {
32
+ }.freeze
33
+
34
+ STRUCTURED_ANNOTATIONS = [
35
+ ].freeze
36
+
37
+ THRIFT_FIELD_INDEX_ARG = 1
38
+
39
+ THRIFT_FIELD_ARG_LEGACY_ANNOTATIONS = {
40
+ }.freeze
41
+
42
+ THRIFT_FIELD_ARG_STRUCTURED_ANNOTATIONS = [
43
+ ].freeze
44
+
45
+ FIELDS = {
46
+ THRIFT_FIELD_INDEX_ARG => {type: ::Thrift::Types::I32, name: 'arg', legacy_annotations: THRIFT_FIELD_ARG_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_ARG_STRUCTURED_ANNOTATIONS}
47
+ }
48
+
49
+ def struct_fields; FIELDS; end
50
+
51
+ def validate
52
+ end
53
+
54
+ ::Thrift::Struct.generate_accessors self
55
+ ::Thrift.register_struct_type self
56
+ end
57
+
58
+ class Identity_result
59
+ include ::Thrift::Struct, ::Thrift::Struct_Union
60
+
61
+ NAME = 'identity_result'.freeze
62
+ NAMESPACE = ''.freeze
63
+
64
+ LEGACY_ANNOTATIONS = {
65
+ }.freeze
66
+
67
+ STRUCTURED_ANNOTATIONS = [
68
+ ].freeze
69
+
70
+ THRIFT_FIELD_INDEX_SUCCESS = 0
71
+
72
+ THRIFT_FIELD_SUCCESS_LEGACY_ANNOTATIONS = {
73
+ }.freeze
74
+
75
+ THRIFT_FIELD_SUCCESS_STRUCTURED_ANNOTATIONS = [
76
+ ].freeze
77
+
78
+ FIELDS = {
79
+ THRIFT_FIELD_INDEX_SUCCESS => {type: ::Thrift::Types::I32, name: 'success', legacy_annotations: THRIFT_FIELD_SUCCESS_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_SUCCESS_STRUCTURED_ANNOTATIONS}
80
+ }
81
+
82
+ def struct_fields; FIELDS; end
83
+
84
+ def validate
85
+ end
86
+
87
+ ::Thrift::Struct.generate_accessors self
88
+ ::Thrift.register_struct_type self
89
+ end
90
+
91
+ class Client < ::Thrift::Test::Srv::Client
92
+ def initialize(client)
93
+ @client = ::Thrift.build_client(client)
94
+ end
95
+
96
+ def self.from_provider(provider)
97
+ Client.new(provider.build(NAMESPACE, SERVICE))
98
+ end
99
+
100
+ def identity(arg)
101
+ result = @client.call_binary(
102
+ 'identity',
103
+ Identity_args.new(arg: arg),
104
+ Identity_result
105
+ )
106
+
107
+ return result.success unless result.success.nil?
108
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'identity failed: unknown result')
109
+ result
110
+ end
111
+
112
+ end
113
+
114
+ class Processor < ::Thrift::Test::Srv::Processor
115
+ include ::Thrift::Processor
116
+
117
+ def self.from_provider(handler, provider)
118
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
119
+ end
120
+
121
+ THRIFT_METHOD_IDENTITY_LEGACY_ANNOTATIONS = {
122
+ }.freeze
123
+
124
+ THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS = [
125
+ ].freeze
126
+
127
+ METHODS = {
128
+ 'identity' => { args_klass: Identity_args, result_klass: Identity_result, oneway: false, legacy_annotations: THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS},
129
+ }.freeze
130
+
131
+ def execute_identity(args)
132
+ result = Identity_result.new()
133
+
134
+ result.success = @handler.identity(args.arg)
135
+
136
+ result
137
+ end
138
+
139
+ def process_identity(seqid, iprot, oprot)
140
+ args = read_args(iprot, Identity_args)
141
+ result = @middleware.handle_binary('identity', args) do |args|
142
+ execute_identity(args)
143
+ end
144
+
145
+ write_result(result, oprot, 'identity', seqid)
146
+ end
147
+
148
+ end
149
+
150
+ ::Thrift.register_service_type(self)
151
+
152
+ end
153
+
154
+ end
155
+ end
@@ -0,0 +1,169 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (v0.0.1-upfluence)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'debug_proto_test_types'
9
+
10
+ module Thrift
11
+ module Test
12
+ module ReverseOrderService
13
+ SERVICE = 'ReverseOrderService'.freeze
14
+ NAMESPACE = ''.freeze
15
+
16
+ LEGACY_ANNOTATIONS = {
17
+ }.freeze
18
+
19
+ STRUCTURED_ANNOTATIONS = [
20
+ ].freeze
21
+
22
+ # HELPER FUNCTIONS AND STRUCTURES
23
+
24
+ class MyMethod_args
25
+ include ::Thrift::Struct, ::Thrift::Struct_Union
26
+
27
+ NAME = 'myMethod_args'.freeze
28
+ NAMESPACE = ''.freeze
29
+
30
+ LEGACY_ANNOTATIONS = {
31
+ }.freeze
32
+
33
+ STRUCTURED_ANNOTATIONS = [
34
+ ].freeze
35
+
36
+ THRIFT_FIELD_INDEX_FIRST = 4
37
+ THRIFT_FIELD_INDEX_SECOND = 3
38
+ THRIFT_FIELD_INDEX_THIRD = 2
39
+ THRIFT_FIELD_INDEX_FOURTH = 1
40
+
41
+ THRIFT_FIELD_FIRST_LEGACY_ANNOTATIONS = {
42
+ }.freeze
43
+
44
+ THRIFT_FIELD_FIRST_STRUCTURED_ANNOTATIONS = [
45
+ ].freeze
46
+
47
+ THRIFT_FIELD_SECOND_LEGACY_ANNOTATIONS = {
48
+ }.freeze
49
+
50
+ THRIFT_FIELD_SECOND_STRUCTURED_ANNOTATIONS = [
51
+ ].freeze
52
+
53
+ THRIFT_FIELD_THIRD_LEGACY_ANNOTATIONS = {
54
+ }.freeze
55
+
56
+ THRIFT_FIELD_THIRD_STRUCTURED_ANNOTATIONS = [
57
+ ].freeze
58
+
59
+ THRIFT_FIELD_FOURTH_LEGACY_ANNOTATIONS = {
60
+ }.freeze
61
+
62
+ THRIFT_FIELD_FOURTH_STRUCTURED_ANNOTATIONS = [
63
+ ].freeze
64
+
65
+ FIELDS = {
66
+ THRIFT_FIELD_INDEX_FIRST => {type: ::Thrift::Types::STRING, name: 'first', legacy_annotations: THRIFT_FIELD_FIRST_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_FIRST_STRUCTURED_ANNOTATIONS},
67
+ THRIFT_FIELD_INDEX_SECOND => {type: ::Thrift::Types::I16, name: 'second', legacy_annotations: THRIFT_FIELD_SECOND_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_SECOND_STRUCTURED_ANNOTATIONS},
68
+ THRIFT_FIELD_INDEX_THIRD => {type: ::Thrift::Types::I32, name: 'third', legacy_annotations: THRIFT_FIELD_THIRD_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_THIRD_STRUCTURED_ANNOTATIONS},
69
+ THRIFT_FIELD_INDEX_FOURTH => {type: ::Thrift::Types::I64, name: 'fourth', legacy_annotations: THRIFT_FIELD_FOURTH_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_FOURTH_STRUCTURED_ANNOTATIONS}
70
+ }
71
+
72
+ def struct_fields; FIELDS; end
73
+
74
+ def validate
75
+ end
76
+
77
+ ::Thrift::Struct.generate_accessors self
78
+ ::Thrift.register_struct_type self
79
+ end
80
+
81
+ class MyMethod_result
82
+ include ::Thrift::Struct, ::Thrift::Struct_Union
83
+
84
+ NAME = 'myMethod_result'.freeze
85
+ NAMESPACE = ''.freeze
86
+
87
+ LEGACY_ANNOTATIONS = {
88
+ }.freeze
89
+
90
+ STRUCTURED_ANNOTATIONS = [
91
+ ].freeze
92
+
93
+
94
+ FIELDS = {
95
+
96
+ }
97
+
98
+ def struct_fields; FIELDS; end
99
+
100
+ def validate
101
+ end
102
+
103
+ ::Thrift::Struct.generate_accessors self
104
+ ::Thrift.register_struct_type self
105
+ end
106
+
107
+ class Client
108
+ def initialize(client)
109
+ @client = ::Thrift.build_client(client)
110
+ end
111
+
112
+ def self.from_provider(provider)
113
+ Client.new(provider.build(NAMESPACE, SERVICE))
114
+ end
115
+
116
+ def myMethod(first, second, third, fourth)
117
+ result = @client.call_binary(
118
+ 'myMethod',
119
+ MyMethod_args.new(first: first, second: second, third: third, fourth: fourth),
120
+ MyMethod_result
121
+ )
122
+
123
+ nil
124
+ end
125
+
126
+ end
127
+
128
+ class Processor
129
+ include ::Thrift::Processor
130
+
131
+ def self.from_provider(handler, provider)
132
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
133
+ end
134
+
135
+ THRIFT_METHOD_MYMETHOD_LEGACY_ANNOTATIONS = {
136
+ }.freeze
137
+
138
+ THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS = [
139
+ ].freeze
140
+
141
+ METHODS = {
142
+ 'myMethod' => { args_klass: MyMethod_args, result_klass: MyMethod_result, oneway: false, legacy_annotations: THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS},
143
+ }.freeze
144
+
145
+ def execute_myMethod(args)
146
+ result = MyMethod_result.new()
147
+
148
+ @handler.myMethod(args.first, args.second, args.third, args.fourth)
149
+
150
+ result
151
+ end
152
+
153
+ def process_myMethod(seqid, iprot, oprot)
154
+ args = read_args(iprot, MyMethod_args)
155
+ result = @middleware.handle_binary('myMethod', args) do |args|
156
+ execute_myMethod(args)
157
+ end
158
+
159
+ write_result(result, oprot, 'myMethod', seqid)
160
+ end
161
+
162
+ end
163
+
164
+ ::Thrift.register_service_type(self)
165
+
166
+ end
167
+
168
+ end
169
+ end
@@ -0,0 +1,150 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (v0.0.1-upfluence)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'debug_proto_test_types'
9
+
10
+ module Thrift
11
+ module Test
12
+ module ServiceForExceptionWithAMap
13
+ SERVICE = 'ServiceForExceptionWithAMap'.freeze
14
+ NAMESPACE = ''.freeze
15
+
16
+ LEGACY_ANNOTATIONS = {
17
+ }.freeze
18
+
19
+ STRUCTURED_ANNOTATIONS = [
20
+ ].freeze
21
+
22
+ # HELPER FUNCTIONS AND STRUCTURES
23
+
24
+ class MethodThatThrowsAnException_args
25
+ include ::Thrift::Struct, ::Thrift::Struct_Union
26
+
27
+ NAME = 'methodThatThrowsAnException_args'.freeze
28
+ NAMESPACE = ''.freeze
29
+
30
+ LEGACY_ANNOTATIONS = {
31
+ }.freeze
32
+
33
+ STRUCTURED_ANNOTATIONS = [
34
+ ].freeze
35
+
36
+
37
+ FIELDS = {
38
+
39
+ }
40
+
41
+ def struct_fields; FIELDS; end
42
+
43
+ def validate
44
+ end
45
+
46
+ ::Thrift::Struct.generate_accessors self
47
+ ::Thrift.register_struct_type self
48
+ end
49
+
50
+ class MethodThatThrowsAnException_result
51
+ include ::Thrift::Struct, ::Thrift::Struct_Union
52
+
53
+ NAME = 'methodThatThrowsAnException_result'.freeze
54
+ NAMESPACE = ''.freeze
55
+
56
+ LEGACY_ANNOTATIONS = {
57
+ }.freeze
58
+
59
+ STRUCTURED_ANNOTATIONS = [
60
+ ].freeze
61
+
62
+ THRIFT_FIELD_INDEX_XWAMAP = 1
63
+
64
+ THRIFT_FIELD_XWAMAP_LEGACY_ANNOTATIONS = {
65
+ }.freeze
66
+
67
+ THRIFT_FIELD_XWAMAP_STRUCTURED_ANNOTATIONS = [
68
+ ].freeze
69
+
70
+ FIELDS = {
71
+ THRIFT_FIELD_INDEX_XWAMAP => {type: ::Thrift::Types::STRUCT, name: 'xwamap', class: ::Thrift::Test::ExceptionWithAMap, legacy_annotations: THRIFT_FIELD_XWAMAP_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_XWAMAP_STRUCTURED_ANNOTATIONS}
72
+ }
73
+
74
+ def struct_fields; FIELDS; end
75
+
76
+ def validate
77
+ end
78
+
79
+ ::Thrift::Struct.generate_accessors self
80
+ ::Thrift.register_struct_type self
81
+ end
82
+
83
+ class Client
84
+ def initialize(client)
85
+ @client = ::Thrift.build_client(client)
86
+ end
87
+
88
+ def self.from_provider(provider)
89
+ Client.new(provider.build(NAMESPACE, SERVICE))
90
+ end
91
+
92
+ def methodThatThrowsAnException()
93
+ result = @client.call_binary(
94
+ 'methodThatThrowsAnException',
95
+ MethodThatThrowsAnException_args.new(),
96
+ MethodThatThrowsAnException_result
97
+ )
98
+
99
+ raise result.xwamap unless result.xwamap.nil?
100
+ nil
101
+ end
102
+
103
+ end
104
+
105
+ class Processor
106
+ include ::Thrift::Processor
107
+
108
+ def self.from_provider(handler, provider)
109
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
110
+ end
111
+
112
+ THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_LEGACY_ANNOTATIONS = {
113
+ }.freeze
114
+
115
+ THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS = [
116
+ ].freeze
117
+
118
+ METHODS = {
119
+ 'methodThatThrowsAnException' => { args_klass: MethodThatThrowsAnException_args, result_klass: MethodThatThrowsAnException_result, oneway: false, legacy_annotations: THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS},
120
+ }.freeze
121
+
122
+ def execute_methodThatThrowsAnException(args)
123
+ result = MethodThatThrowsAnException_result.new()
124
+
125
+ begin
126
+ @handler.methodThatThrowsAnException()
127
+ rescue ::Thrift::Test::ExceptionWithAMap => xwamap
128
+ result.xwamap = xwamap
129
+ end
130
+
131
+ result
132
+ end
133
+
134
+ def process_methodThatThrowsAnException(seqid, iprot, oprot)
135
+ args = read_args(iprot, MethodThatThrowsAnException_args)
136
+ result = @middleware.handle_binary('methodThatThrowsAnException', args) do |args|
137
+ execute_methodThatThrowsAnException(args)
138
+ end
139
+
140
+ write_result(result, oprot, 'methodThatThrowsAnException', seqid)
141
+ end
142
+
143
+ end
144
+
145
+ ::Thrift.register_service_type(self)
146
+
147
+ end
148
+
149
+ end
150
+ end