r2corba 1.6.1-x64-mingw-ucrt

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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
@@ -0,0 +1,440 @@
1
+ #--------------------------------------------------------------------
2
+ # Typecode.rb - C++/TAO specific CORBA TypeCode definitions
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ module R2CORBA
14
+ module CORBA
15
+ class TypeCode
16
+
17
+ def kind
18
+ begin
19
+ self.tc_.kind
20
+ rescue ::NativeException
21
+ CORBA::Exception.native2r($!)
22
+ end
23
+ end
24
+
25
+ def member_label(index)
26
+ begin
27
+ self.tc_.member_label(index.to_i)
28
+ rescue ::NativeException
29
+ CORBA::Exception.native2r($!)
30
+ end
31
+ end
32
+
33
+ class Recursive < CORBA::TypeCode
34
+
35
+ def initialize(id)
36
+ begin
37
+ @tc_ = CORBA::Native::TypeCode.create_recursive_tc(id)
38
+ rescue ::NativeException
39
+ CORBA::Exception.native2r($!)
40
+ end
41
+ end
42
+
43
+ end # Recursive
44
+
45
+ class String < CORBA::TypeCode
46
+
47
+ def initialize(*args)
48
+ if CORBA::Native::TypeCode === args.first
49
+ @tc_ = args.first
50
+ else
51
+ begin
52
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_STRING, args.shift.to_i)
53
+ rescue ::NativeException
54
+ CORBA::Exception.native2r($!)
55
+ end
56
+ end
57
+ end
58
+
59
+ end # String
60
+
61
+ class WString < CORBA::TypeCode
62
+
63
+ def initialize(*args)
64
+ if CORBA::Native::TypeCode === args.first
65
+ @tc_ = args.first
66
+ else
67
+ begin
68
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_WSTRING, args.shift.to_i)
69
+ rescue ::NativeException
70
+ CORBA::Exception.native2r($!)
71
+ end
72
+ end
73
+ end
74
+
75
+ end # WString
76
+
77
+ class Fixed < CORBA::TypeCode
78
+
79
+ def initialize(*args)
80
+ if CORBA::Native::TypeCode === args.first
81
+ @tc_ = args.first
82
+ else
83
+ digits, scale = args
84
+ begin
85
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_FIXED, digits.to_i, scale.to_i)
86
+ rescue ::NativeException
87
+ CORBA::Exception.native2r($!)
88
+ end
89
+ end
90
+ end
91
+
92
+ end # Fixed
93
+
94
+ class Sequence < CORBA::TypeCode
95
+
96
+ def initialize(*args)
97
+ if CORBA::Native::TypeCode === args.first
98
+ @tc_ = args.first
99
+ else
100
+ element_tc, bound = args
101
+ raise ArgumentError, 'expected CORBA::TypeCode' unless element_tc.is_a?(CORBA::TypeCode)
102
+ begin
103
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_SEQUENCE, bound.to_i, element_tc.tc_)
104
+ rescue ::NativeException
105
+ CORBA::Exception.native2r($!)
106
+ end
107
+ end
108
+ end
109
+
110
+ end
111
+
112
+ class Array < CORBA::TypeCode
113
+
114
+ def initialize(*args)
115
+ if CORBA::Native::TypeCode === args.first
116
+ @tc_ = args.first
117
+ else
118
+ content_tc = args.shift
119
+ length = args
120
+ raise ArgumentError, 'expected CORBA::TypeCode' unless content_tc.is_a?(CORBA::TypeCode)
121
+ if length.size > 1
122
+ this_len = length.shift
123
+ content_tc = self.class.new(content_tc, *length)
124
+ else
125
+ this_len = length.first
126
+ end
127
+ begin
128
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ARRAY, this_len.to_i, content_tc.tc_)
129
+ rescue ::NativeException
130
+ CORBA::Exception.native2r($!)
131
+ end
132
+ end
133
+ end
134
+
135
+ end # Array
136
+
137
+ class IdentifiedTypeCode < CORBA::TypeCode
138
+
139
+ def initialize(id)
140
+ CORBA::TypeCode.register_id_type(id.to_s, self)
141
+ end
142
+
143
+ end # IdentifiedTypeCode
144
+
145
+ class Alias < IdentifiedTypeCode
146
+
147
+ def initialize(*args)
148
+ if CORBA::Native::TypeCode === args.first
149
+ @tc_ = args.first
150
+ @type = nil
151
+ super(@tc_.id)
152
+ else
153
+ id, name, orig_tc, type = args
154
+ raise ArgumentError, 'expected CORBA::TypeCode' unless orig_tc.is_a?(CORBA::TypeCode)
155
+ begin
156
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ALIAS, id.to_s, name.to_s, orig_tc.tc_)
157
+ rescue ::NativeException
158
+ CORBA::Exception.native2r($!)
159
+ end
160
+ @type = type
161
+ super(id)
162
+ end
163
+ end
164
+
165
+ end # Alias
166
+
167
+ class Valuetype < IdentifiedTypeCode
168
+
169
+ def initialize(*args)
170
+ if CORBA::Native::TypeCode === args.first
171
+ @tc_ = args.first
172
+ @type = nil
173
+ @members = []
174
+ @tc_.member_count.times do |i|
175
+ @members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
176
+ end
177
+ super(id)
178
+ else
179
+ id, name, modifier, base, members_, type_ = args
180
+ raise ArgumentError, 'expected CORBA::Typecode' unless base.nil? || base.is_a?(CORBA::TypeCode)
181
+ raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
182
+ if type_.nil? && !members_.is_a?(::Array)
183
+ type_ = members_
184
+ members_ = []
185
+ end
186
+ @type = type_
187
+ @members = []
188
+ members_.each { |n, tc, access| add_member(n, tc, access) }
189
+ n_members = @members.collect do |n, tc, access|
190
+ [n.to_s, tc.tc_, access == :public ? CORBA::PUBLIC_MEMBER : CORBA::PRIVATE_MEMBER]
191
+ end
192
+ @tc_ = _create_tc(id, name, modifier, base, n_members)
193
+ super(id)
194
+ end
195
+ end
196
+
197
+ protected
198
+
199
+ def _create_tc(id, name, modifier, base, members)
200
+ begin
201
+ CORBA::Native::TypeCode.create_tc(TK_VALUE, id.to_s, name.to_s,
202
+ CORBA::VT_MODIFIERS[modifier],
203
+ base.nil? ? nil : base.tc_,
204
+ members)
205
+ rescue ::NativeException
206
+ CORBA::Exception.native2r($!)
207
+ end
208
+ end
209
+
210
+ end # Valuetype
211
+
212
+ class Eventtype < Valuetype
213
+
214
+ protected
215
+
216
+ def _create_tc(id, name, modifier, base, members)
217
+ begin
218
+ CORBA::Native::TypeCode.create_tc(TK_EVENT, id.to_s, name.to_s,
219
+ CORBA::VT_MODIFIERS[modifier],
220
+ base.nil? ? nil : base.tc_,
221
+ members)
222
+ rescue ::NativeException
223
+ CORBA::Exception.native2r($!)
224
+ end
225
+ end
226
+
227
+ end # Eventtype
228
+
229
+ class Valuebox < IdentifiedTypeCode
230
+
231
+ def initialize(*args)
232
+ if CORBA::Native::TypeCode === args.first
233
+ @tc_ = args.first
234
+ @type = nil
235
+ super(@tc_.id)
236
+ else
237
+ id, name, boxed_tc, type = args
238
+ raise ArgumentError, 'expected CORBA::TypeCode' unless boxed_tc.is_a?(CORBA::TypeCode)
239
+ begin
240
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_VALUE_BOX, id.to_s, name.to_s, boxed_tc.tc_)
241
+ rescue ::NativeException
242
+ CORBA::Exception.native2r($!)
243
+ end
244
+ @type = type
245
+ super(id)
246
+ ## autoregister
247
+ CORBA::ORB._check_value_factory(@type::Factory) if @type < CORBA::Portable::BoxedValueBase
248
+ end
249
+ end
250
+
251
+ end # Valuebox
252
+
253
+ class ObjectRef < IdentifiedTypeCode
254
+
255
+ def initialize(*args)
256
+ if CORBA::Native::TypeCode === args.first
257
+ @tc_ = args.first
258
+ @type = CORBA::Object
259
+ super(@tc_.id)
260
+ else
261
+ id, name, type = args
262
+ begin
263
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_OBJREF, id.to_s, name.to_s)
264
+ rescue ::NativeException
265
+ CORBA::Exception.native2r($!)
266
+ end
267
+ @type = type
268
+ super(id)
269
+ end
270
+ end
271
+
272
+ end # ObjectRef
273
+
274
+ class AbstractInterface < IdentifiedTypeCode
275
+
276
+ def initialize(*args)
277
+ if CORBA::Native::TypeCode === args.first
278
+ @tc_ = args.first
279
+ @type = CORBA::AbstractBase
280
+ super(@tc_.id)
281
+ else
282
+ id, name, type = args
283
+ begin
284
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ABSTRACT_INTERFACE, id.to_s, name.to_s)
285
+ rescue ::NativeException
286
+ CORBA::Exception.native2r($!)
287
+ end
288
+ @type = type
289
+ super(id)
290
+ end
291
+ end
292
+
293
+ end # AbstractInterface
294
+
295
+ class Struct < IdentifiedTypeCode
296
+
297
+ def initialize(*args)
298
+ if CORBA::Native::TypeCode === args.first
299
+ @tc_ = args.first
300
+ @type = nil
301
+ @members = []
302
+ @tc_.member_count.times do |i|
303
+ @members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
304
+ end
305
+ super(id)
306
+ else
307
+ id, name, members_, type_ = args
308
+ raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
309
+ if type_.nil? && !members_.is_a?(::Array)
310
+ type_ = members_
311
+ members_ = []
312
+ end
313
+ @type = type_
314
+ @members = []
315
+ members_.each { |n, tc| add_member(n, tc) }
316
+ n_members = @members.collect {|n, tc| [n.to_s(), tc.tc_] }
317
+ @tc_ = _create_tc(id, name, n_members)
318
+ super(id)
319
+ end
320
+ end
321
+
322
+ protected
323
+
324
+ def _create_tc(id, name, members)
325
+ begin
326
+ CORBA::Native::TypeCode.create_tc(TK_STRUCT, id.to_s, name.to_s, members)
327
+ rescue ::NativeException
328
+ CORBA::Exception.native2r($!)
329
+ end
330
+ end
331
+
332
+ end # Struct
333
+
334
+ class Except < Struct
335
+
336
+ protected
337
+
338
+ def _create_tc(id, name, members)
339
+ begin
340
+ CORBA::Native::TypeCode.create_tc(TK_EXCEPT, id.to_s, name.to_s, members)
341
+ rescue ::NativeException
342
+ CORBA::Exception.native2r($!)
343
+ end
344
+ end
345
+
346
+ end # Except
347
+
348
+ class Union < IdentifiedTypeCode
349
+
350
+ def initialize(*args)
351
+ if CORBA::Native::TypeCode === args.first
352
+ @tc_ = args.first
353
+ @type = nil
354
+ @switchtype = TypeCode.from_native(@tc_.discriminator_type)
355
+ @labels = {}
356
+ @members = []
357
+ def_inx = @tc_.default_index
358
+ @tc_.member_count.times do |i|
359
+ if def_inx < 0 || def_inx != i
360
+ ml_ = @tc_.member_label(i)
361
+ else
362
+ ml_ = :default
363
+ end
364
+ @labels[ml] = i
365
+ @members << [ml, @tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
366
+ end
367
+ super(id)
368
+ else
369
+ id, name, switchtype_, members_, type_, implicit_default_ = args
370
+ raise ::CORBA::BAD_PARAM unless members_.is_a? ::Array
371
+ raise ::CORBA::BAD_PARAM unless switchtype_.is_a?(CORBA::TypeCode)
372
+ @type = type_
373
+ @implicit_default = implicit_default_
374
+ @switchtype = switchtype_.resolved_tc
375
+ @labels = {}
376
+ @members = []
377
+ members_.each { |mlabel, mname, mtc|
378
+ add_member(mlabel, mname, mtc)
379
+ }
380
+ @id = id
381
+ @name = name
382
+ n_members = @members.collect do |ml, mn, mtc|
383
+ [ml, mn.to_s, mtc.tc_]
384
+ end
385
+ @tc = _create_tc(@id, @name, @switchtype, n_members)
386
+ super(id)
387
+ end
388
+ end
389
+
390
+ def tc_
391
+ @tc
392
+ end
393
+
394
+ protected
395
+
396
+ def _create_tc(id, name, disctc, members)
397
+ begin
398
+ CORBA::Native::TypeCode.create_tc(TK_UNION, id.to_s, name.to_s, disctc.tc_, members)
399
+ rescue ::NativeException
400
+ CORBA::Exception.native2r($!)
401
+ end
402
+ end
403
+
404
+ end # Union
405
+
406
+ class Enum < IdentifiedTypeCode
407
+
408
+ def initialize(*args)
409
+ if CORBA::Native::TypeCode === args.first
410
+ @tc_ = args.first
411
+ @range = (0..@tc_.member_count).freeze
412
+ @members = @range.to_a.collect {|i| @tc_.member_name(i) }
413
+ super(@tc_.id)
414
+ else
415
+ id, name, members_ = args
416
+ raise CORBA::BAD_PARAM unless members_.is_a? ::Array
417
+ @members = members_.collect {|m| m.to_s}
418
+ @range = (0...@members.size).freeze
419
+ begin
420
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ENUM, id.to_s, name.to_s, @members)
421
+ rescue ::NativeException
422
+ CORBA::Exception.native2r($!)
423
+ end
424
+ super(id)
425
+ end
426
+ end
427
+
428
+ end # Enum
429
+
430
+ def TypeCode.get_primitive_tc(kind)
431
+ TypeCode._wrap_native(CORBA::Native::TypeCode.get_primitive_tc(kind.to_i))
432
+ end
433
+
434
+ # final initialization
435
+ self._init()
436
+
437
+ end # TypeCode
438
+
439
+ end ## module CORBA
440
+ end ## module R2CORBA
@@ -0,0 +1,130 @@
1
+ #--------------------------------------------------------------------
2
+ # Values.rb - C++/Value CORBA Value and ValueBox support
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ module R2CORBA
14
+ module CORBA
15
+ module AbstractValueBase
16
+ def self.included(mod)
17
+ mod.module_eval do
18
+ def self.===(obj)
19
+ obj.kind_of?(self)
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ module ValueBase
26
+ def self.included(mod)
27
+ mod.module_eval do
28
+ include CORBA::AbstractValueBase unless self.include?(CORBA::AbstractValueBase)
29
+
30
+ alias :org_kind_of? :kind_of?
31
+ def kind_of?(mod)
32
+ if mod < CORBA::AbstractValueBase && mod.const_defined?(:Intf)
33
+ org_kind_of?(mod::Intf)
34
+ # super(mod::Intf) ## problematic with Ruby 1.9.2 (known bug)
35
+ else
36
+ org_kind_of?(mod)
37
+ # super ## problematic with Ruby 1.9.2 (known bug)
38
+ end
39
+ end
40
+ alias :is_a? :kind_of?
41
+ end
42
+ end
43
+
44
+ def _marshal_with(os, &block)
45
+ self.pre_marshal(os)
46
+ self.instance_eval(&block)
47
+ self.post_marshal(os)
48
+ end
49
+
50
+ def _unmarshal_with(is, &block)
51
+ self.pre_unmarshal(is)
52
+ self.instance_eval(&block)
53
+ self.post_unmarshal(is)
54
+ end
55
+ end # ValueBase
56
+
57
+ module Portable
58
+ class ValueFactoryBase
59
+
60
+ def self.inherited(value_factory_base)
61
+ # value_factory_base is the <valuetype>Factory base class
62
+ # generated from IDL
63
+ value_factory_base.module_eval do
64
+ def self.value_id
65
+ self::VALUE_ID
66
+ end
67
+ end
68
+ end
69
+
70
+ def self._check_factory
71
+ f = self._lookup_value_factory(self.value_id)
72
+ self._register_value_factory(self.value_id(), self.new) if f.nil?
73
+ end
74
+
75
+ end # ValueFactoryBase
76
+
77
+ module CustomValueBase
78
+ def self.included(mod)
79
+ mod.module_eval do
80
+ include CORBA::ValueBase unless self.include?(CORBA::ValueBase)
81
+
82
+ def do_marshal(os)
83
+ self.pre_marshal(os)
84
+ self.marshal(os)
85
+ self.post_marshal(os)
86
+ end
87
+
88
+ def do_unmarshal(is)
89
+ self.pre_unmarshal(is)
90
+ self.unmarshal(is)
91
+ self.post_unmarshal(is)
92
+ end
93
+ end
94
+ end
95
+ end # CustomValueBase
96
+
97
+ module BoxedValueBase
98
+ class FactoryBase < CORBA::Portable::ValueFactoryBase
99
+ ## generic factory base
100
+ end
101
+
102
+ def self.included(mod)
103
+ mod.module_eval do
104
+ include CORBA::ValueBase unless self.include?(CORBA::ValueBase)
105
+
106
+ def marshal(os)
107
+ os.write_member(self.class._tc.content_type.resolved_tc, self.value)
108
+ end
109
+
110
+ def unmarshal(is)
111
+ self.value = is.read_member(self.class._tc.content_type.resolved_tc)
112
+ end
113
+
114
+ self.const_set(:Factory, Class.new(CORBA::Portable::BoxedValueBase::FactoryBase))
115
+ self::Factory.class_eval(%Q{
116
+ def self.value_id
117
+ #{self.name}::TRUNCATABLE_IDS.first
118
+ end
119
+
120
+ def _create_default
121
+ #{self.name}.new
122
+ end
123
+ })
124
+ end
125
+ end
126
+ end
127
+
128
+ end # Portable
129
+ end # CORBA
130
+ end # R2CORBA
@@ -0,0 +1,67 @@
1
+ #--------------------------------------------------------------------
2
+ # exception.rb - C++/TAO ORB specific CORBA Exception definitions
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ # import all java CORBA exceptions into the R2CORBA::CORBA namespace
14
+ module R2CORBA
15
+ module CORBA
16
+
17
+ class Exception
18
+ def self.native2r(nex)
19
+ raise nex
20
+ end
21
+ end
22
+
23
+ class InternalError
24
+ def initialize(ex_or_str)
25
+ if ex_or_str.is_a?(String)
26
+ super(ex_or_str)
27
+ else
28
+ @ex_ = ex_or_str
29
+ super(@ex_.message)
30
+ self.set_backtrace(@ex_.backtrace)
31
+ end
32
+ end
33
+ end
34
+
35
+ class SystemException
36
+ def SystemException._raise(id, reason, minor, completed)
37
+ name = id.to_s.split(':')[1]
38
+ exklass = name.split('/').last
39
+ exklass = CORBA.const_defined?(exklass) ? CORBA.const_get(exklass) : nil
40
+ if exklass.nil? || !(CORBA::SystemException > exklass)
41
+ Kernel.raise InternalError,
42
+ 'Unknown SystemException raised: ' +
43
+ id.to_s + ' [' + reason.to_s + ']'
44
+ else
45
+ Kernel.raise exklass.new(reason, minor, completed)
46
+ end
47
+ end
48
+
49
+ def initialize(reason = '', minor = 0, completed = nil)
50
+ super(reason)
51
+ @minor = minor
52
+ @completed = completed
53
+ @ids = [self.class::Id]
54
+ end
55
+ attr_accessor :ids
56
+ def _ids; @ids; end
57
+
58
+ def _interface_repository_id
59
+ self.class::Id
60
+ end
61
+ end
62
+
63
+ end # CORBA
64
+ end # R2CORBA
65
+
66
+ # NativeException mockup for JRuby compatibility
67
+ NativeException = Exception
@@ -0,0 +1,22 @@
1
+ #--------------------------------------------------------------------
2
+ # poa.rb - C++/TAO R2CORBA POA loader
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'corba/common/Servant.rb'
14
+ require 'corba/idl/POAC.rb'
15
+ require 'corba/idl/IORTableC'
16
+
17
+ begin
18
+ require 'librpoa'
19
+ rescue LoadError
20
+ $stderr.puts $!.to_s if $VERBOSE
21
+ raise
22
+ end