upfluence-thrift 2.4.4 → 2.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/benchmark/gen-rb/benchmark_constants.rb +1 -1
  3. data/benchmark/gen-rb/benchmark_service.rb +90 -44
  4. data/benchmark/gen-rb/benchmark_types.rb +1 -1
  5. data/lib/thrift/definition.rb +33 -8
  6. data/lib/thrift/processor.rb +96 -0
  7. data/lib/thrift/types/annotation/deprecation/deprecation_constants.rb +17 -0
  8. data/lib/thrift/types/annotation/deprecation/deprecation_types.rb +44 -0
  9. data/lib/thrift/types/annotation/naming/naming.rb +23 -0
  10. data/lib/thrift/types/annotation/naming/naming_constants.rb +17 -0
  11. data/lib/thrift/types/annotation/naming/naming_types.rb +59 -0
  12. data/lib/thrift/types/known/{any.rb → any/any.rb} +1 -1
  13. data/lib/thrift/types/known/{any_constants.rb → any/any_constants.rb} +2 -2
  14. data/lib/thrift/types/known/{any_types.rb → any/any_types.rb} +21 -3
  15. data/lib/thrift/types/known/{duration.rb → duration/duration.rb} +1 -1
  16. data/lib/thrift/types/known/{duration_constants.rb → duration/duration_constants.rb} +2 -2
  17. data/lib/thrift/types/known/{duration_types.rb → duration/duration_types.rb} +21 -3
  18. data/lib/thrift/types/known/{timestamp.rb → timestamp/timestamp.rb} +1 -1
  19. data/lib/thrift/types/known/{timestamp_constants.rb → timestamp/timestamp_constants.rb} +2 -2
  20. data/lib/thrift/types/known/{timestamp_types.rb → timestamp/timestamp_types.rb} +21 -3
  21. data/lib/thrift/types/{value.rb → value/value.rb} +1 -1
  22. data/lib/thrift/types/{value_constants.rb → value/value_constants.rb} +2 -2
  23. data/lib/thrift/types/{value_types.rb → value/value_types.rb} +135 -15
  24. data/lib/thrift.rb +5 -0
  25. data/spec/gen-rb/base/base_service.rb +90 -44
  26. data/spec/gen-rb/base/base_service_constants.rb +1 -1
  27. data/spec/gen-rb/base/base_service_types.rb +14 -2
  28. data/spec/gen-rb/extended/extended_service.rb +74 -40
  29. data/spec/gen-rb/extended/extended_service_constants.rb +1 -1
  30. data/spec/gen-rb/extended/extended_service_types.rb +1 -1
  31. data/spec/gen-rb/flat/namespaced_nonblocking_service.rb +285 -121
  32. data/spec/gen-rb/flat/referenced_constants.rb +1 -1
  33. data/spec/gen-rb/flat/referenced_types.rb +1 -1
  34. data/spec/gen-rb/flat/thrift_namespaced_spec_constants.rb +1 -1
  35. data/spec/gen-rb/flat/thrift_namespaced_spec_types.rb +14 -2
  36. data/spec/gen-rb/namespaced_spec_namespace/namespaced_nonblocking_service.rb +285 -121
  37. data/spec/gen-rb/namespaced_spec_namespace/thrift_namespaced_spec_constants.rb +1 -1
  38. data/spec/gen-rb/namespaced_spec_namespace/thrift_namespaced_spec_types.rb +14 -2
  39. data/spec/gen-rb/nonblocking_service.rb +285 -121
  40. data/spec/gen-rb/other_namespace/referenced_constants.rb +1 -1
  41. data/spec/gen-rb/other_namespace/referenced_types.rb +1 -1
  42. data/spec/gen-rb/thrift_spec_constants.rb +1 -1
  43. data/spec/gen-rb/thrift_spec_types.rb +531 -57
  44. data/test/debug_proto/gen-rb/debug_proto_test_constants.rb +71 -71
  45. data/test/debug_proto/gen-rb/debug_proto_test_types.rb +1180 -148
  46. data/test/debug_proto/gen-rb/empty_service.rb +12 -3
  47. data/test/debug_proto/gen-rb/inherited.rb +90 -44
  48. data/test/debug_proto/gen-rb/reverse_order_service.rb +102 -44
  49. data/test/debug_proto/gen-rb/service_for_exception_with_a_map.rb +86 -46
  50. data/test/debug_proto/gen-rb/srv.rb +339 -150
  51. metadata +45 -35
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (2.4.0-upfluence)
2
+ # Autogenerated by Thrift Compiler ()
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -11,6 +11,14 @@ module EmptyService
11
11
  SERVICE = 'EmptyService'.freeze
12
12
  NAMESPACE = ''.freeze
13
13
 
14
+ LEGACY_ANNOTATIONS = {
15
+ }.freeze
16
+
17
+ STRUCTURED_ANNOTATIONS = [
18
+ ].freeze
19
+
20
+ # HELPER FUNCTIONS AND STRUCTURES
21
+
14
22
  class Client
15
23
  def initialize(client)
16
24
  @client = ::Thrift.build_client(client)
@@ -29,9 +37,10 @@ module EmptyService
29
37
  provider.build(NAMESPACE, SERVICE, Processor, handler)
30
38
  end
31
39
 
32
- end
40
+ METHODS = {
41
+ }.freeze
33
42
 
34
- # HELPER FUNCTIONS AND STRUCTURES
43
+ end
35
44
 
36
45
  ::Thrift.register_service_type(self)
37
46
 
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (2.4.0-upfluence)
2
+ # Autogenerated by Thrift Compiler ()
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -12,48 +12,11 @@ module Inherited
12
12
  SERVICE = 'Inherited'.freeze
13
13
  NAMESPACE = ''.freeze
14
14
 
15
- class Client < ::Srv::Client
16
- def initialize(client)
17
- @client = ::Thrift.build_client(client)
18
- end
19
-
20
- def self.from_provider(provider)
21
- Client.new(provider.build(NAMESPACE, SERVICE))
22
- end
23
-
24
- def identity(arg)
25
- result = @client.call_binary(
26
- 'identity',
27
- Identity_args.new(arg: arg),
28
- Identity_result
29
- )
30
-
31
- return result.success unless result.success.nil?
32
- raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'identity failed: unknown result')
33
- result
34
- end
35
-
36
- end
15
+ LEGACY_ANNOTATIONS = {
16
+ }.freeze
37
17
 
38
- class Processor < ::Srv::Processor
39
- include ::Thrift::Processor
40
-
41
- def self.from_provider(handler, provider)
42
- provider.build(NAMESPACE, SERVICE, Processor, handler)
43
- end
44
-
45
- def process_identity(seqid, iprot, oprot)
46
- args = read_args(iprot, Identity_args)
47
- result = @middleware.handle_binary('identity', args) do |args|
48
- result = Identity_result.new()
49
- result.success = @handler.identity(args.arg)
50
- result
51
- end
52
-
53
- write_result(result, oprot, 'identity', seqid)
54
- end
55
-
56
- end
18
+ STRUCTURED_ANNOTATIONS = [
19
+ ].freeze
57
20
 
58
21
  # HELPER FUNCTIONS AND STRUCTURES
59
22
 
@@ -63,10 +26,22 @@ module Inherited
63
26
  NAME = 'identity_args'.freeze
64
27
  NAMESPACE = ''.freeze
65
28
 
29
+ LEGACY_ANNOTATIONS = {
30
+ }.freeze
31
+
32
+ STRUCTURED_ANNOTATIONS = [
33
+ ].freeze
34
+
66
35
  THRIFT_FIELD_INDEX_ARG = 1
67
36
 
37
+ THRIFT_FIELD_ARG_LEGACY_ANNOTATIONS = {
38
+ }.freeze
39
+
40
+ THRIFT_FIELD_ARG_STRUCTURED_ANNOTATIONS = [
41
+ ].freeze
42
+
68
43
  FIELDS = {
69
- THRIFT_FIELD_INDEX_ARG => {type: ::Thrift::Types::I32, name: 'arg'}
44
+ THRIFT_FIELD_INDEX_ARG => {type: ::Thrift::Types::I32, name: 'arg', legacy_annotations: THRIFT_FIELD_ARG_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_ARG_STRUCTURED_ANNOTATIONS}
70
45
  }
71
46
 
72
47
  def struct_fields; FIELDS; end
@@ -84,10 +59,22 @@ module Inherited
84
59
  NAME = 'identity_result'.freeze
85
60
  NAMESPACE = ''.freeze
86
61
 
62
+ LEGACY_ANNOTATIONS = {
63
+ }.freeze
64
+
65
+ STRUCTURED_ANNOTATIONS = [
66
+ ].freeze
67
+
87
68
  THRIFT_FIELD_INDEX_SUCCESS = 0
88
69
 
70
+ THRIFT_FIELD_SUCCESS_LEGACY_ANNOTATIONS = {
71
+ }.freeze
72
+
73
+ THRIFT_FIELD_SUCCESS_STRUCTURED_ANNOTATIONS = [
74
+ ].freeze
75
+
89
76
  FIELDS = {
90
- THRIFT_FIELD_INDEX_SUCCESS => {type: ::Thrift::Types::I32, name: 'success'}
77
+ THRIFT_FIELD_INDEX_SUCCESS => {type: ::Thrift::Types::I32, name: 'success', legacy_annotations: THRIFT_FIELD_SUCCESS_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_SUCCESS_STRUCTURED_ANNOTATIONS}
91
78
  }
92
79
 
93
80
  def struct_fields; FIELDS; end
@@ -99,6 +86,65 @@ module Inherited
99
86
  ::Thrift.register_struct_type self
100
87
  end
101
88
 
89
+ class Client < ::Srv::Client
90
+ def initialize(client)
91
+ @client = ::Thrift.build_client(client)
92
+ end
93
+
94
+ def self.from_provider(provider)
95
+ Client.new(provider.build(NAMESPACE, SERVICE))
96
+ end
97
+
98
+ def identity(arg)
99
+ result = @client.call_binary(
100
+ 'identity',
101
+ Identity_args.new(arg: arg),
102
+ Identity_result
103
+ )
104
+
105
+ return result.success unless result.success.nil?
106
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'identity failed: unknown result')
107
+ result
108
+ end
109
+
110
+ end
111
+
112
+ class Processor < ::Srv::Processor
113
+ include ::Thrift::Processor
114
+
115
+ def self.from_provider(handler, provider)
116
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
117
+ end
118
+
119
+ THRIFT_METHOD_IDENTITY_LEGACY_ANNOTATIONS = {
120
+ }.freeze
121
+
122
+ THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS = [
123
+ ].freeze
124
+
125
+ METHODS = {
126
+ 'identity' => { args_klass: Identity_args, oneway: false, legacy_annotations: THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_IDENTITY_STRUCTURED_ANNOTATIONS},
127
+ }.freeze
128
+
129
+ def execute_identity(args)
130
+ result = Identity_result.new()
131
+
132
+ result.success = @handler.identity(args.arg)
133
+
134
+ result
135
+ end
136
+
137
+ def process_identity(seqid, iprot, oprot)
138
+ args = read_args(iprot, Identity_args)
139
+ result = @middleware.handle_binary('identity', args) do |args|
140
+ execute_identity(args)
141
+ end
142
+
143
+ write_result(result, oprot, 'identity', seqid)
144
+ end
145
+
146
+ end
147
+
102
148
  ::Thrift.register_service_type(self)
103
149
 
104
150
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (2.4.0-upfluence)
2
+ # Autogenerated by Thrift Compiler ()
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -11,46 +11,11 @@ module ReverseOrderService
11
11
  SERVICE = 'ReverseOrderService'.freeze
12
12
  NAMESPACE = ''.freeze
13
13
 
14
- class Client
15
- def initialize(client)
16
- @client = ::Thrift.build_client(client)
17
- end
18
-
19
- def self.from_provider(provider)
20
- Client.new(provider.build(NAMESPACE, SERVICE))
21
- end
22
-
23
- def myMethod(first, second, third, fourth)
24
- result = @client.call_binary(
25
- 'myMethod',
26
- MyMethod_args.new(first: first, second: second, third: third, fourth: fourth),
27
- MyMethod_result
28
- )
29
-
30
- nil
31
- end
32
-
33
- end
34
-
35
- class Processor
36
- include ::Thrift::Processor
14
+ LEGACY_ANNOTATIONS = {
15
+ }.freeze
37
16
 
38
- def self.from_provider(handler, provider)
39
- provider.build(NAMESPACE, SERVICE, Processor, handler)
40
- end
41
-
42
- def process_myMethod(seqid, iprot, oprot)
43
- args = read_args(iprot, MyMethod_args)
44
- result = @middleware.handle_binary('myMethod', args) do |args|
45
- result = MyMethod_result.new()
46
- @handler.myMethod(args.first, args.second, args.third, args.fourth)
47
- result
48
- end
49
-
50
- write_result(result, oprot, 'myMethod', seqid)
51
- end
52
-
53
- end
17
+ STRUCTURED_ANNOTATIONS = [
18
+ ].freeze
54
19
 
55
20
  # HELPER FUNCTIONS AND STRUCTURES
56
21
 
@@ -60,16 +25,46 @@ module ReverseOrderService
60
25
  NAME = 'myMethod_args'.freeze
61
26
  NAMESPACE = ''.freeze
62
27
 
28
+ LEGACY_ANNOTATIONS = {
29
+ }.freeze
30
+
31
+ STRUCTURED_ANNOTATIONS = [
32
+ ].freeze
33
+
63
34
  THRIFT_FIELD_INDEX_FIRST = 4
64
35
  THRIFT_FIELD_INDEX_SECOND = 3
65
36
  THRIFT_FIELD_INDEX_THIRD = 2
66
37
  THRIFT_FIELD_INDEX_FOURTH = 1
67
38
 
39
+ THRIFT_FIELD_FIRST_LEGACY_ANNOTATIONS = {
40
+ }.freeze
41
+
42
+ THRIFT_FIELD_FIRST_STRUCTURED_ANNOTATIONS = [
43
+ ].freeze
44
+
45
+ THRIFT_FIELD_SECOND_LEGACY_ANNOTATIONS = {
46
+ }.freeze
47
+
48
+ THRIFT_FIELD_SECOND_STRUCTURED_ANNOTATIONS = [
49
+ ].freeze
50
+
51
+ THRIFT_FIELD_THIRD_LEGACY_ANNOTATIONS = {
52
+ }.freeze
53
+
54
+ THRIFT_FIELD_THIRD_STRUCTURED_ANNOTATIONS = [
55
+ ].freeze
56
+
57
+ THRIFT_FIELD_FOURTH_LEGACY_ANNOTATIONS = {
58
+ }.freeze
59
+
60
+ THRIFT_FIELD_FOURTH_STRUCTURED_ANNOTATIONS = [
61
+ ].freeze
62
+
68
63
  FIELDS = {
69
- THRIFT_FIELD_INDEX_FIRST => {type: ::Thrift::Types::STRING, name: 'first'},
70
- THRIFT_FIELD_INDEX_SECOND => {type: ::Thrift::Types::I16, name: 'second'},
71
- THRIFT_FIELD_INDEX_THIRD => {type: ::Thrift::Types::I32, name: 'third'},
72
- THRIFT_FIELD_INDEX_FOURTH => {type: ::Thrift::Types::I64, name: 'fourth'}
64
+ THRIFT_FIELD_INDEX_FIRST => {type: ::Thrift::Types::STRING, name: 'first', legacy_annotations: THRIFT_FIELD_FIRST_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_FIRST_STRUCTURED_ANNOTATIONS},
65
+ THRIFT_FIELD_INDEX_SECOND => {type: ::Thrift::Types::I16, name: 'second', legacy_annotations: THRIFT_FIELD_SECOND_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_SECOND_STRUCTURED_ANNOTATIONS},
66
+ THRIFT_FIELD_INDEX_THIRD => {type: ::Thrift::Types::I32, name: 'third', legacy_annotations: THRIFT_FIELD_THIRD_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_THIRD_STRUCTURED_ANNOTATIONS},
67
+ THRIFT_FIELD_INDEX_FOURTH => {type: ::Thrift::Types::I64, name: 'fourth', legacy_annotations: THRIFT_FIELD_FOURTH_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_FOURTH_STRUCTURED_ANNOTATIONS}
73
68
  }
74
69
 
75
70
  def struct_fields; FIELDS; end
@@ -87,6 +82,12 @@ module ReverseOrderService
87
82
  NAME = 'myMethod_result'.freeze
88
83
  NAMESPACE = ''.freeze
89
84
 
85
+ LEGACY_ANNOTATIONS = {
86
+ }.freeze
87
+
88
+ STRUCTURED_ANNOTATIONS = [
89
+ ].freeze
90
+
90
91
 
91
92
  FIELDS = {
92
93
 
@@ -101,6 +102,63 @@ module ReverseOrderService
101
102
  ::Thrift.register_struct_type self
102
103
  end
103
104
 
105
+ class Client
106
+ def initialize(client)
107
+ @client = ::Thrift.build_client(client)
108
+ end
109
+
110
+ def self.from_provider(provider)
111
+ Client.new(provider.build(NAMESPACE, SERVICE))
112
+ end
113
+
114
+ def myMethod(first, second, third, fourth)
115
+ result = @client.call_binary(
116
+ 'myMethod',
117
+ MyMethod_args.new(first: first, second: second, third: third, fourth: fourth),
118
+ MyMethod_result
119
+ )
120
+
121
+ nil
122
+ end
123
+
124
+ end
125
+
126
+ class Processor
127
+ include ::Thrift::Processor
128
+
129
+ def self.from_provider(handler, provider)
130
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
131
+ end
132
+
133
+ THRIFT_METHOD_MYMETHOD_LEGACY_ANNOTATIONS = {
134
+ }.freeze
135
+
136
+ THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS = [
137
+ ].freeze
138
+
139
+ METHODS = {
140
+ 'myMethod' => { args_klass: MyMethod_args, oneway: false, legacy_annotations: THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_MYMETHOD_STRUCTURED_ANNOTATIONS},
141
+ }.freeze
142
+
143
+ def execute_myMethod(args)
144
+ result = MyMethod_result.new()
145
+
146
+ @handler.myMethod(args.first, args.second, args.third, args.fourth)
147
+
148
+ result
149
+ end
150
+
151
+ def process_myMethod(seqid, iprot, oprot)
152
+ args = read_args(iprot, MyMethod_args)
153
+ result = @middleware.handle_binary('myMethod', args) do |args|
154
+ execute_myMethod(args)
155
+ end
156
+
157
+ write_result(result, oprot, 'myMethod', seqid)
158
+ end
159
+
160
+ end
161
+
104
162
  ::Thrift.register_service_type(self)
105
163
 
106
164
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (2.4.0-upfluence)
2
+ # Autogenerated by Thrift Compiler ()
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -11,51 +11,11 @@ module ServiceForExceptionWithAMap
11
11
  SERVICE = 'ServiceForExceptionWithAMap'.freeze
12
12
  NAMESPACE = ''.freeze
13
13
 
14
- class Client
15
- def initialize(client)
16
- @client = ::Thrift.build_client(client)
17
- end
18
-
19
- def self.from_provider(provider)
20
- Client.new(provider.build(NAMESPACE, SERVICE))
21
- end
14
+ LEGACY_ANNOTATIONS = {
15
+ }.freeze
22
16
 
23
- def methodThatThrowsAnException()
24
- result = @client.call_binary(
25
- 'methodThatThrowsAnException',
26
- MethodThatThrowsAnException_args.new(),
27
- MethodThatThrowsAnException_result
28
- )
29
-
30
- raise result.xwamap unless result.xwamap.nil?
31
- nil
32
- end
33
-
34
- end
35
-
36
- class Processor
37
- include ::Thrift::Processor
38
-
39
- def self.from_provider(handler, provider)
40
- provider.build(NAMESPACE, SERVICE, Processor, handler)
41
- end
42
-
43
- def process_methodThatThrowsAnException(seqid, iprot, oprot)
44
- args = read_args(iprot, MethodThatThrowsAnException_args)
45
- result = @middleware.handle_binary('methodThatThrowsAnException', args) do |args|
46
- result = MethodThatThrowsAnException_result.new()
47
- begin
48
- @handler.methodThatThrowsAnException()
49
- rescue ::ExceptionWithAMap => xwamap
50
- result.xwamap = xwamap
51
- end
52
- result
53
- end
54
-
55
- write_result(result, oprot, 'methodThatThrowsAnException', seqid)
56
- end
57
-
58
- end
17
+ STRUCTURED_ANNOTATIONS = [
18
+ ].freeze
59
19
 
60
20
  # HELPER FUNCTIONS AND STRUCTURES
61
21
 
@@ -65,6 +25,12 @@ module ServiceForExceptionWithAMap
65
25
  NAME = 'methodThatThrowsAnException_args'.freeze
66
26
  NAMESPACE = ''.freeze
67
27
 
28
+ LEGACY_ANNOTATIONS = {
29
+ }.freeze
30
+
31
+ STRUCTURED_ANNOTATIONS = [
32
+ ].freeze
33
+
68
34
 
69
35
  FIELDS = {
70
36
 
@@ -85,10 +51,22 @@ module ServiceForExceptionWithAMap
85
51
  NAME = 'methodThatThrowsAnException_result'.freeze
86
52
  NAMESPACE = ''.freeze
87
53
 
54
+ LEGACY_ANNOTATIONS = {
55
+ }.freeze
56
+
57
+ STRUCTURED_ANNOTATIONS = [
58
+ ].freeze
59
+
88
60
  THRIFT_FIELD_INDEX_XWAMAP = 1
89
61
 
62
+ THRIFT_FIELD_XWAMAP_LEGACY_ANNOTATIONS = {
63
+ }.freeze
64
+
65
+ THRIFT_FIELD_XWAMAP_STRUCTURED_ANNOTATIONS = [
66
+ ].freeze
67
+
90
68
  FIELDS = {
91
- THRIFT_FIELD_INDEX_XWAMAP => {type: ::Thrift::Types::STRUCT, name: 'xwamap', class: ::ExceptionWithAMap}
69
+ THRIFT_FIELD_INDEX_XWAMAP => {type: ::Thrift::Types::STRUCT, name: 'xwamap', class: ::ExceptionWithAMap, legacy_annotations: THRIFT_FIELD_XWAMAP_LEGACY_ANNOTATIONS, structured_annotations: THRIFT_FIELD_XWAMAP_STRUCTURED_ANNOTATIONS}
92
70
  }
93
71
 
94
72
  def struct_fields; FIELDS; end
@@ -100,6 +78,68 @@ module ServiceForExceptionWithAMap
100
78
  ::Thrift.register_struct_type self
101
79
  end
102
80
 
81
+ class Client
82
+ def initialize(client)
83
+ @client = ::Thrift.build_client(client)
84
+ end
85
+
86
+ def self.from_provider(provider)
87
+ Client.new(provider.build(NAMESPACE, SERVICE))
88
+ end
89
+
90
+ def methodThatThrowsAnException()
91
+ result = @client.call_binary(
92
+ 'methodThatThrowsAnException',
93
+ MethodThatThrowsAnException_args.new(),
94
+ MethodThatThrowsAnException_result
95
+ )
96
+
97
+ raise result.xwamap unless result.xwamap.nil?
98
+ nil
99
+ end
100
+
101
+ end
102
+
103
+ class Processor
104
+ include ::Thrift::Processor
105
+
106
+ def self.from_provider(handler, provider)
107
+ provider.build(NAMESPACE, SERVICE, Processor, handler)
108
+ end
109
+
110
+ THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_LEGACY_ANNOTATIONS = {
111
+ }.freeze
112
+
113
+ THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS = [
114
+ ].freeze
115
+
116
+ METHODS = {
117
+ 'methodThatThrowsAnException' => { args_klass: MethodThatThrowsAnException_args, oneway: false, legacy_annotations: THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS, structured_annotations: THRIFT_METHOD_METHODTHATTHROWSANEXCEPTION_STRUCTURED_ANNOTATIONS},
118
+ }.freeze
119
+
120
+ def execute_methodThatThrowsAnException(args)
121
+ result = MethodThatThrowsAnException_result.new()
122
+
123
+ begin
124
+ @handler.methodThatThrowsAnException()
125
+ rescue ::ExceptionWithAMap => xwamap
126
+ result.xwamap = xwamap
127
+ end
128
+
129
+ result
130
+ end
131
+
132
+ def process_methodThatThrowsAnException(seqid, iprot, oprot)
133
+ args = read_args(iprot, MethodThatThrowsAnException_args)
134
+ result = @middleware.handle_binary('methodThatThrowsAnException', args) do |args|
135
+ execute_methodThatThrowsAnException(args)
136
+ end
137
+
138
+ write_result(result, oprot, 'methodThatThrowsAnException', seqid)
139
+ end
140
+
141
+ end
142
+
103
143
  ::Thrift.register_service_type(self)
104
144
 
105
145
  end