r2corba 1.4.1-x86-mingw32 → 1.5.1-x86-mingw32

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 (254) hide show
  1. checksums.yaml +7 -7
  2. data/CHANGES +173 -159
  3. data/LICENSE +59 -59
  4. data/README +62 -62
  5. data/THANKS +54 -52
  6. data/bin/r2corba +1 -1
  7. data/bin/ridlc +1 -1
  8. data/bin/rins +1 -1
  9. data/lib/corba.rb +16 -16
  10. data/lib/corba/cbase/IORMap.rb +33 -33
  11. data/lib/corba/cbase/ORB.rb +237 -231
  12. data/lib/corba/cbase/Request.rb +133 -133
  13. data/lib/corba/cbase/Streams.rb +129 -129
  14. data/lib/corba/cbase/Stub.rb +19 -19
  15. data/lib/corba/cbase/Typecode.rb +441 -441
  16. data/lib/corba/cbase/Values.rb +129 -129
  17. data/lib/corba/cbase/exception.rb +66 -66
  18. data/lib/corba/cbase/poa.rb +23 -23
  19. data/lib/corba/cbase/policies.rb +77 -77
  20. data/lib/corba/cbase/post_require.rb +13 -13
  21. data/lib/corba/cbase/require.rb +28 -28
  22. data/lib/corba/cmds/base.rb +85 -85
  23. data/lib/corba/cmds/test.rb +30 -30
  24. data/lib/corba/common/Any.rb +91 -91
  25. data/lib/corba/common/IDL.rb +104 -104
  26. data/lib/corba/common/ORB.rb +368 -368
  27. data/lib/corba/common/Object.rb +208 -208
  28. data/lib/corba/common/Request.rb +19 -19
  29. data/lib/corba/common/Servant.rb +108 -108
  30. data/lib/corba/common/Struct.rb +21 -21
  31. data/lib/corba/common/Stub.rb +79 -79
  32. data/lib/corba/common/Typecode.rb +1121 -1121
  33. data/lib/corba/common/Union.rb +55 -55
  34. data/lib/corba/common/Values.rb +91 -91
  35. data/lib/corba/common/const.rb +22 -22
  36. data/lib/corba/common/exception.rb +68 -68
  37. data/lib/corba/common/require.rb +27 -27
  38. data/lib/corba/common/version.rb +22 -22
  39. data/lib/corba/idl/IDL.rb +21 -21
  40. data/lib/corba/idl/IORTable.pidl +62 -62
  41. data/lib/corba/idl/TAO_Ext.pidl +46 -46
  42. data/lib/corba/idl/require.rb +20 -20
  43. data/lib/corba/jbase/Any.rb +273 -273
  44. data/lib/corba/jbase/IORMap.rb +35 -35
  45. data/lib/corba/jbase/ORB.rb +112 -99
  46. data/lib/corba/jbase/Object.rb +99 -98
  47. data/lib/corba/jbase/Request.rb +225 -225
  48. data/lib/corba/jbase/Servant.rb +247 -246
  49. data/lib/corba/jbase/ServerRequest.rb +127 -127
  50. data/lib/corba/jbase/Streams.rb +670 -670
  51. data/lib/corba/jbase/Stub.rb +38 -38
  52. data/lib/corba/jbase/Typecode.rb +520 -520
  53. data/lib/corba/jbase/Values.rb +173 -173
  54. data/lib/corba/jbase/exception.rb +106 -106
  55. data/lib/corba/jbase/poa.rb +228 -228
  56. data/lib/corba/jbase/policies.rb +299 -299
  57. data/lib/corba/jbase/post_require.rb +14 -14
  58. data/lib/corba/jbase/require.rb +89 -86
  59. data/lib/corba/naming.rb +14 -14
  60. data/lib/corba/naming_service.rb +15 -15
  61. data/lib/corba/poa.rb +15 -15
  62. data/lib/corba/policies.rb +18 -18
  63. data/lib/corba/require.rb +17 -17
  64. data/lib/corba/svcs/ins/cos_naming.rb +426 -426
  65. data/lib/corba/svcs/ins/ins.rb +526 -526
  66. data/lib/corba/svcs/ins/naming_service.rb +119 -119
  67. data/lib/ridlbe/ruby/config.rb +336 -336
  68. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  69. data/lib/ridlbe/ruby/require.rb +16 -16
  70. data/lib/ridlbe/ruby/walker.rb +1582 -1582
  71. data/mkrf_conf_bingem.rb +151 -101
  72. data/rakelib/bin.rake +80 -80
  73. data/rakelib/bin.rb +145 -145
  74. data/rakelib/build.rake +87 -87
  75. data/rakelib/config.rake +51 -51
  76. data/rakelib/config.rb +543 -449
  77. data/rakelib/ext.rake +242 -242
  78. data/rakelib/ext.rb +316 -308
  79. data/rakelib/ext_r2tao.rb +235 -232
  80. data/rakelib/gem.rake +235 -211
  81. data/rakelib/gem.rb +145 -145
  82. data/rakelib/package.rake +26 -26
  83. data/rakelib/test.rake +23 -23
  84. data/test/BiDirectional/Test.idl +34 -34
  85. data/test/BiDirectional/client.rb +131 -131
  86. data/test/BiDirectional/run_test.rb +68 -68
  87. data/test/BiDirectional/server.ior +1 -1
  88. data/test/BiDirectional/server.rb +169 -169
  89. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -27
  90. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -121
  91. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -1
  92. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -82
  93. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -109
  94. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -27
  95. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -85
  96. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -1
  97. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -88
  98. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -135
  99. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -27
  100. data/test/CORBA_Services/Naming/Simple/client.rb +84 -84
  101. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -1
  102. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -82
  103. data/test/CORBA_Services/Naming/Simple/server.rb +109 -109
  104. data/test/Collocation/Diamond.idl +39 -39
  105. data/test/Collocation/run_test.rb +52 -52
  106. data/test/Collocation/test.rb +195 -195
  107. data/test/Connect_Timeout/Test.idl +27 -27
  108. data/test/Connect_Timeout/client.rb +111 -111
  109. data/test/Connect_Timeout/run_test.rb +52 -52
  110. data/test/DII/Test.idl +27 -27
  111. data/test/DII/client.rb +115 -115
  112. data/test/DII/run_test.rb +69 -69
  113. data/test/DII/server.ior +1 -1
  114. data/test/DII/server.rb +95 -95
  115. data/test/DSI/Test.idl +27 -27
  116. data/test/DSI/client.rb +66 -66
  117. data/test/DSI/run_test.rb +69 -69
  118. data/test/DSI/server.ior +1 -1
  119. data/test/DSI/server.rb +106 -106
  120. data/test/Exceptions/Test.idl +48 -48
  121. data/test/Exceptions/client.rb +117 -117
  122. data/test/Exceptions/run_test.rb +69 -69
  123. data/test/Exceptions/server.ior +1 -1
  124. data/test/Exceptions/server.rb +131 -131
  125. data/test/Hello/Test.idl +27 -27
  126. data/test/Hello/client.rb +78 -78
  127. data/test/Hello/run_test.rb +71 -71
  128. data/test/Hello/server.rb +95 -95
  129. data/test/IDL_Test/Test.idl +113 -113
  130. data/test/IDL_Test/Test_inc.idl +17 -17
  131. data/test/IDL_Test/client.rb +102 -102
  132. data/test/IDL_Test/run_test.rb +69 -69
  133. data/test/IDL_Test/server.ior +1 -1
  134. data/test/IDL_Test/server.rb +99 -99
  135. data/test/IORMap/Test.idl +27 -27
  136. data/test/IORMap/client.rb +73 -73
  137. data/test/IORMap/run_test.rb +69 -69
  138. data/test/IORMap/server.ior +1 -1
  139. data/test/IORMap/server.rb +114 -114
  140. data/test/IORTable/Test.idl +27 -27
  141. data/test/IORTable/client.rb +75 -75
  142. data/test/IORTable/run_test.rb +69 -69
  143. data/test/IORTable/server.ior +1 -1
  144. data/test/IORTable/server.rb +130 -130
  145. data/test/Implicit_Conversion/Test.idl +31 -31
  146. data/test/Implicit_Conversion/client.rb +110 -110
  147. data/test/Implicit_Conversion/run_test.rb +69 -69
  148. data/test/Implicit_Conversion/server.ior +1 -1
  149. data/test/Implicit_Conversion/server.rb +99 -99
  150. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -27
  151. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -82
  152. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -71
  153. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -108
  154. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -1
  155. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -1
  156. data/test/Multi_Threading/Simple/Test.idl +27 -27
  157. data/test/Multi_Threading/Simple/client.rb +93 -88
  158. data/test/Multi_Threading/Simple/run_test.rb +69 -69
  159. data/test/Multi_Threading/Simple/server.ior +1 -1
  160. data/test/Multi_Threading/Simple/server.rb +117 -117
  161. data/test/Multi_Threading/Threads/Test.idl +31 -31
  162. data/test/Multi_Threading/Threads/client.rb +80 -80
  163. data/test/Multi_Threading/Threads/run_test.rb +76 -76
  164. data/test/Multi_Threading/Threads/server.ior +1 -1
  165. data/test/Multi_Threading/Threads/server.rb +119 -119
  166. data/test/Multi_Threading/Threads/watchdog.ior +1 -1
  167. data/test/Multi_Threading/Threads/watchdog.rb +87 -87
  168. data/test/Multiple_Servant_Interfaces/Test.idl +34 -34
  169. data/test/Multiple_Servant_Interfaces/client.rb +70 -70
  170. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -69
  171. data/test/Multiple_Servant_Interfaces/server.ior +1 -1
  172. data/test/Multiple_Servant_Interfaces/server.rb +102 -102
  173. data/test/Nil/Test.idl +27 -27
  174. data/test/Nil/run_test.rb +52 -52
  175. data/test/Nil/test.rb +78 -78
  176. data/test/OBV/AbstractInterface/client.rb +179 -179
  177. data/test/OBV/AbstractInterface/run_test.rb +69 -69
  178. data/test/OBV/AbstractInterface/server.ior +1 -1
  179. data/test/OBV/AbstractInterface/server.rb +149 -149
  180. data/test/OBV/AbstractInterface/test.idl +53 -53
  181. data/test/OBV/Custom/OBV.idl +18 -18
  182. data/test/OBV/Custom/OBV_impl.rb +40 -40
  183. data/test/OBV/Custom/client.rb +86 -86
  184. data/test/OBV/Custom/run_test.rb +69 -69
  185. data/test/OBV/Custom/server.ior +1 -1
  186. data/test/OBV/Custom/server.rb +100 -100
  187. data/test/OBV/Simple/OBV.idl +15 -15
  188. data/test/OBV/Simple/OBV_impl.rb +26 -26
  189. data/test/OBV/Simple/client.rb +86 -86
  190. data/test/OBV/Simple/run_test.rb +69 -69
  191. data/test/OBV/Simple/server.ior +1 -1
  192. data/test/OBV/Simple/server.rb +100 -100
  193. data/test/OBV/Simple_Event/Event.idl +15 -15
  194. data/test/OBV/Simple_Event/Event_impl.rb +26 -26
  195. data/test/OBV/Simple_Event/client.rb +86 -86
  196. data/test/OBV/Simple_Event/run_test.rb +69 -69
  197. data/test/OBV/Simple_Event/server.ior +1 -1
  198. data/test/OBV/Simple_Event/server.rb +100 -100
  199. data/test/OBV/Supports/client.rb +116 -116
  200. data/test/OBV/Supports/run_test.rb +69 -69
  201. data/test/OBV/Supports/server.ior +1 -1
  202. data/test/OBV/Supports/server.rb +103 -103
  203. data/test/OBV/Supports/supports.idl +33 -33
  204. data/test/OBV/Supports/supports_impl.rb +57 -57
  205. data/test/OBV/Tree/client.rb +116 -116
  206. data/test/OBV/Tree/run_test.rb +69 -69
  207. data/test/OBV/Tree/server.ior +1 -1
  208. data/test/OBV/Tree/server.rb +117 -117
  209. data/test/OBV/Tree/test.idl +32 -32
  210. data/test/OBV/Truncatable/Extra.idl +27 -27
  211. data/test/OBV/Truncatable/Truncatable.idl +105 -105
  212. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -86
  213. data/test/OBV/Truncatable/client.rb +279 -279
  214. data/test/OBV/Truncatable/run_test.rb +69 -69
  215. data/test/OBV/Truncatable/server.ior +1 -1
  216. data/test/OBV/Truncatable/server.rb +89 -89
  217. data/test/OBV/ValueBox/client.rb +497 -497
  218. data/test/OBV/ValueBox/run_test.rb +69 -69
  219. data/test/OBV/ValueBox/server.ior +1 -1
  220. data/test/OBV/ValueBox/server.rb +271 -271
  221. data/test/OBV/ValueBox/valuebox.idl +101 -101
  222. data/test/OBV/ValueBox/vb_basic.idl +75 -75
  223. data/test/OBV/ValueBox/vb_struct.idl +68 -68
  224. data/test/OBV/ValueBox/vb_union.idl +21 -21
  225. data/test/Object/Test.idl +27 -27
  226. data/test/Object/client.rb +112 -103
  227. data/test/Object/run_test.rb +69 -69
  228. data/test/Object/server.ior +1 -1
  229. data/test/Object/server.rb +126 -126
  230. data/test/POA/Test.idl +27 -27
  231. data/test/POA/run_test.rb +52 -52
  232. data/test/POA/test.rb +111 -111
  233. data/test/Param_Test/Test.idl +182 -182
  234. data/test/Param_Test/client.rb +277 -277
  235. data/test/Param_Test/run_test.rb +69 -69
  236. data/test/Param_Test/server.ior +1 -1
  237. data/test/Param_Test/server.rb +296 -296
  238. data/test/Performance/Simple/Test.idl +27 -27
  239. data/test/Performance/Simple/client.rb +90 -90
  240. data/test/Performance/Simple/run_test.rb +69 -69
  241. data/test/Performance/Simple/server.ior +1 -1
  242. data/test/Performance/Simple/server.rb +95 -95
  243. data/test/Policies/Test.idl +27 -27
  244. data/test/Policies/run_test.rb +52 -52
  245. data/test/Policies/test.rb +144 -144
  246. data/test/Timeout/client.rb +207 -207
  247. data/test/Timeout/run_test.rb +69 -69
  248. data/test/Timeout/server.ior +1 -1
  249. data/test/Timeout/server.rb +109 -109
  250. data/test/Timeout/test.idl +19 -19
  251. data/test/lib/assert.rb +43 -43
  252. data/test/lib/test.rb +542 -542
  253. data/test/test_runner.rb +193 -193
  254. metadata +141 -137
@@ -1,27 +1,27 @@
1
- #--------------------------------------------------------------------
2
- # require.rb - R2CORBA 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
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
-
14
- [ 'version',
15
- 'const',
16
- 'IDL',
17
- 'exception',
18
- 'Stub',
19
- 'Struct',
20
- 'Union',
21
- 'Typecode',
22
- 'Values',
23
- 'Any',
24
- 'Object',
25
- 'ORB',
26
- 'Request'
27
- ].each { |f| require "corba/common/#{f}.rb" }
1
+ #--------------------------------------------------------------------
2
+ # require.rb - R2CORBA 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ [ 'version',
15
+ 'const',
16
+ 'IDL',
17
+ 'exception',
18
+ 'Stub',
19
+ 'Struct',
20
+ 'Union',
21
+ 'Typecode',
22
+ 'Values',
23
+ 'Any',
24
+ 'Object',
25
+ 'ORB',
26
+ 'Request'
27
+ ].each { |f| require "corba/common/#{f}.rb" }
@@ -1,22 +1,22 @@
1
- #--------------------------------------------------------------------
2
- # version.rb - R2CORBA version constants
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
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
-
14
- module R2CORBA
15
-
16
- R2CORBA_MAJOR = 1.freeze
17
- R2CORBA_MINOR = 4.freeze
18
- R2CORBA_RELEASE = '1'.freeze
19
-
20
- R2CORBA_VERSION = "#{R2CORBA_MAJOR}.#{R2CORBA_MINOR}.#{R2CORBA_RELEASE}".freeze
21
-
22
- end
1
+ #--------------------------------------------------------------------
2
+ # version.rb - R2CORBA version constants
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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ module R2CORBA
15
+
16
+ R2CORBA_MAJOR = 1.freeze
17
+ R2CORBA_MINOR = 5.freeze
18
+ R2CORBA_RELEASE = '1'.freeze
19
+
20
+ R2CORBA_VERSION = "#{R2CORBA_MAJOR}.#{R2CORBA_MINOR}.#{R2CORBA_RELEASE}".freeze
21
+
22
+ end
data/lib/corba/idl/IDL.rb CHANGED
@@ -1,21 +1,21 @@
1
- #--------------------------------------------------------------------
2
- # IDL.rb - R2CORBA inline IDL 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
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
- module R2CORBA
14
-
15
- module CORBA
16
- def CORBA.implement(idlfile, params={}, genbits = IDL::CLIENT_STUB, &block)
17
- IDL.implement(idlfile, params, genbits, &block)
18
- end
19
- end
20
-
21
- end
1
+ #--------------------------------------------------------------------
2
+ # IDL.rb - R2CORBA inline IDL 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+ module R2CORBA
14
+
15
+ module CORBA
16
+ def CORBA.implement(idlfile, params={}, genbits = IDL::CLIENT_STUB, &block)
17
+ IDL.implement(idlfile, params, genbits, &block)
18
+ end
19
+ end
20
+
21
+ end
@@ -1,62 +1,62 @@
1
- // -*- IDL -*-
2
- // $Id$
3
-
4
- #ifndef R2TAO_IORTABLE_IORTABLE_PIDL
5
- #define R2TAO_IORTABLE_IORTABLE_PIDL
6
-
7
- /// Define a module to avoid namespace pollution
8
- module IORTable
9
- {
10
- local interface Locator;
11
-
12
- /// The object key is already in the IORTable
13
- exception AlreadyBound {};
14
-
15
- /// Cannot find the object key in the IORTable
16
- exception NotFound {};
17
-
18
- /// Define the IORTable interface
19
- /**
20
- *
21
- * Any TAO server can be configured as an corbaloc agent.
22
- * Such agents forward requests generated using a simple
23
- * ObjectKey in a corbaloc specifcation to the real location
24
- * of the object.
25
- * In TAO we implement this feature by dynamically (or
26
- * statically) adding a new Object Adapter to the ORB, that
27
- * handles any sort of request.
28
- */
29
- local interface Table
30
- {
31
- /// Bind @a object_key to the @a IOR
32
- void bind (in string object_key,
33
- in string IOR)
34
- raises (AlreadyBound);
35
-
36
- /// Bind @a object_key to the @a IOR
37
- void rebind (in string object_key,
38
- in string IOR);
39
-
40
- /// Remove the binding for @a object_key
41
- void unbind (in string object_key)
42
- raises (NotFound);
43
-
44
- /// Set the locator, if no binding is set for an object_key we try
45
- /// to use the locator to resolve it
46
- void set_locator (in Locator the_locator);
47
- };
48
-
49
- /// Callback interface to locate object keys dynamically
50
- /**
51
- * The application can provide a callback interface to locate object
52
- * keys dynamically.
53
- */
54
- local interface Locator
55
- {
56
- /// Returns an IOR to use for @a object_key
57
- string locate (in string object_key)
58
- raises (NotFound);
59
- };
60
- };
61
-
62
- #endif /* R2TAO_IORTABLE_IORTABLE_PIDL */
1
+ // -*- IDL -*-
2
+ // $Id$
3
+
4
+ #ifndef R2TAO_IORTABLE_IORTABLE_PIDL
5
+ #define R2TAO_IORTABLE_IORTABLE_PIDL
6
+
7
+ /// Define a module to avoid namespace pollution
8
+ module IORTable
9
+ {
10
+ local interface Locator;
11
+
12
+ /// The object key is already in the IORTable
13
+ exception AlreadyBound {};
14
+
15
+ /// Cannot find the object key in the IORTable
16
+ exception NotFound {};
17
+
18
+ /// Define the IORTable interface
19
+ /**
20
+ *
21
+ * Any TAO server can be configured as an corbaloc agent.
22
+ * Such agents forward requests generated using a simple
23
+ * ObjectKey in a corbaloc specifcation to the real location
24
+ * of the object.
25
+ * In TAO we implement this feature by dynamically (or
26
+ * statically) adding a new Object Adapter to the ORB, that
27
+ * handles any sort of request.
28
+ */
29
+ local interface Table
30
+ {
31
+ /// Bind @a object_key to the @a IOR
32
+ void bind (in string object_key,
33
+ in string IOR)
34
+ raises (AlreadyBound);
35
+
36
+ /// Bind @a object_key to the @a IOR
37
+ void rebind (in string object_key,
38
+ in string IOR);
39
+
40
+ /// Remove the binding for @a object_key
41
+ void unbind (in string object_key)
42
+ raises (NotFound);
43
+
44
+ /// Set the locator, if no binding is set for an object_key we try
45
+ /// to use the locator to resolve it
46
+ void set_locator (in Locator the_locator);
47
+ };
48
+
49
+ /// Callback interface to locate object keys dynamically
50
+ /**
51
+ * The application can provide a callback interface to locate object
52
+ * keys dynamically.
53
+ */
54
+ local interface Locator
55
+ {
56
+ /// Returns an IOR to use for @a object_key
57
+ string locate (in string object_key)
58
+ raises (NotFound);
59
+ };
60
+ };
61
+
62
+ #endif /* R2TAO_IORTABLE_IORTABLE_PIDL */
@@ -1,46 +1,46 @@
1
- // -*- IDL -*-
2
- // $Id$
3
-
4
- #ifndef R2TAO_TAO_EXT_IDL
5
- #define R2TAO_TAO_EXT_IDL
6
-
7
- #include "TimeBase.pidl"
8
-
9
- #pragma prefix "tao"
10
-
11
- module TAO
12
- {
13
- const CORBA::PolicyType CONNECTION_TIMEOUT_POLICY_TYPE = 0x54410008;
14
-
15
- local interface ConnectionTimeoutPolicy : CORBA::Policy {
16
- readonly attribute TimeBase::TimeT relative_expiry;
17
- };
18
-
19
- //
20
- // Buffering constraint.
21
- //
22
- typedef unsigned short BufferingConstraintMode;
23
- const BufferingConstraintMode BUFFER_FLUSH = 0x00;
24
-
25
- // Note that timeout, message_count, and message_bytes can be or'd.
26
- const BufferingConstraintMode BUFFER_TIMEOUT = 0x01;
27
- const BufferingConstraintMode BUFFER_MESSAGE_COUNT = 0x02;
28
- const BufferingConstraintMode BUFFER_MESSAGE_BYTES = 0x04;
29
-
30
- struct BufferingConstraint
31
- {
32
- BufferingConstraintMode mode;
33
- TimeBase::TimeT timeout;
34
- unsigned long message_count;
35
- unsigned long message_bytes;
36
- };
37
-
38
- const CORBA::PolicyType BUFFERING_CONSTRAINT_POLICY_TYPE = 0x54410001;
39
-
40
- local interface BufferingConstraintPolicy : CORBA::Policy
41
- {
42
- readonly attribute BufferingConstraint buffering_constraint;
43
- };
44
- };
45
-
46
- #endif /* TAO_TAO_EXT_IDL */
1
+ // -*- IDL -*-
2
+ // $Id$
3
+
4
+ #ifndef R2TAO_TAO_EXT_IDL
5
+ #define R2TAO_TAO_EXT_IDL
6
+
7
+ #include "TimeBase.pidl"
8
+
9
+ #pragma prefix "tao"
10
+
11
+ module TAO
12
+ {
13
+ const CORBA::PolicyType CONNECTION_TIMEOUT_POLICY_TYPE = 0x54410008;
14
+
15
+ local interface ConnectionTimeoutPolicy : CORBA::Policy {
16
+ readonly attribute TimeBase::TimeT relative_expiry;
17
+ };
18
+
19
+ //
20
+ // Buffering constraint.
21
+ //
22
+ typedef unsigned short BufferingConstraintMode;
23
+ const BufferingConstraintMode BUFFER_FLUSH = 0x00;
24
+
25
+ // Note that timeout, message_count, and message_bytes can be or'd.
26
+ const BufferingConstraintMode BUFFER_TIMEOUT = 0x01;
27
+ const BufferingConstraintMode BUFFER_MESSAGE_COUNT = 0x02;
28
+ const BufferingConstraintMode BUFFER_MESSAGE_BYTES = 0x04;
29
+
30
+ struct BufferingConstraint
31
+ {
32
+ BufferingConstraintMode mode;
33
+ TimeBase::TimeT timeout;
34
+ unsigned long message_count;
35
+ unsigned long message_bytes;
36
+ };
37
+
38
+ const CORBA::PolicyType BUFFERING_CONSTRAINT_POLICY_TYPE = 0x54410001;
39
+
40
+ local interface BufferingConstraintPolicy : CORBA::Policy
41
+ {
42
+ readonly attribute BufferingConstraint buffering_constraint;
43
+ };
44
+ };
45
+
46
+ #endif /* TAO_TAO_EXT_IDL */
@@ -1,20 +1,20 @@
1
- #--------------------------------------------------------------------
2
- # require.rb - R2CORBA 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
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
-
14
- require 'corba/idl/IDL.rb'
15
- require 'corba/idl/r2c_orb.rb'
16
-
17
- ## fake Ruby into believing 'orb.rb' has already been loaded
18
- ## which is what the IDL compiler will generate for
19
- ## '#include "orb.idl"'
20
- $" << 'orb.rb'
1
+ #--------------------------------------------------------------------
2
+ # require.rb - R2CORBA 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ require 'corba/idl/IDL.rb'
15
+ require 'corba/idl/r2c_orb.rb'
16
+
17
+ ## fake Ruby into believing 'orb.rb' has already been loaded
18
+ ## which is what the IDL compiler will generate for
19
+ ## '#include "orb.idl"'
20
+ $" << 'orb.rb'
@@ -1,273 +1,273 @@
1
- #--------------------------------------------------------------------
2
- # Any.rb - CORBA Any 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
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
- module R2CORBA
14
- module CORBA
15
- module Native
16
- module Dynamic
17
- include_package 'org.omg.DynamicAny'
18
- end
19
- module Reflect
20
- java_import java.lang.reflect.Array
21
- end
22
- end
23
- class Any
24
- def to_java(jorb=nil,jany=nil)
25
- rtc = self._tc
26
- rval = self._value.nil? ? self._value : rtc.validate(self._value)
27
- restc = rtc.resolved_tc
28
- begin
29
- if [TK_VALUE, TK_VALUE_BOX, TK_ABSTRACT_INTERFACE].include?(restc.kind) ||
30
- (!rval.nil? && [TK_NULL,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
31
- TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
32
- TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
33
- TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,TK_PRINCIPAL].include?(restc.kind))
34
- jorb ||= CORBA::ORB._orb
35
- jany ||= jorb.create_any()
36
- case restc.kind
37
- when TK_NULL
38
- # leave any as is
39
- when TK_ANY
40
- jany.insert_any(rval.to_java(jorb))
41
- when TK_BOOLEAN
42
- jany.insert_boolean(rval)
43
- when TK_SHORT
44
- jany.insert_short(rval)
45
- when TK_LONG
46
- jany.insert_long(rval)
47
- when TK_USHORT
48
- jany.insert_ushort([rval].pack('S').unpack('s').first)
49
- when TK_WCHAR
50
- jany.insert_wchar(rval)
51
- when TK_ULONG
52
- jany.insert_ulong([rval].pack('L').unpack('l').first)
53
- when TK_LONGLONG
54
- jany.insert_longlong(rval)
55
- when TK_ULONGLONG
56
- jany.insert_ulonglong([rval].pack('Q').unpack('q').first)
57
- when TK_OCTET
58
- jany.insert_octet([rval].pack('C').unpack('c').first)
59
- when TK_FLOAT
60
- jany.insert_float(rval)
61
- when TK_DOUBLE
62
- jany.insert_double(rval)
63
- when TK_LONGDOUBLE
64
- raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
65
- when TK_FIXED
66
- jany.insert_fixed(java.math.BigDecimal.new(rval.to_s))
67
- when TK_CHAR
68
- jany.insert_char(rval[0])
69
- when TK_STRING
70
- jany.insert_string(rval)
71
- when TK_WSTRING
72
- jany.insert_wstring(rval.inject('') {|s,b| s << b.chr})
73
- when TK_VALUE
74
- jany.insert_Value(rval, rtc.tc_)
75
- when TK_VALUE_BOX
76
- rtc.get_type::Factory._check_factory(jorb) # make sure valuebox factory has been registered
77
- rval = rtc.get_type.new(rval) unless rval.nil? || rval.is_a?(CORBA::Portable::BoxedValueBase)
78
- jany.insert_Value(rval, rtc.tc_)
79
- when TK_TYPECODE
80
- jany.insert_TypeCode(rtc.tc_)
81
- when TK_OBJREF
82
- jany.insert_Object(rval.objref_)
83
- when TK_ABSTRACT_INTERFACE
84
- if rval.is_a?(CORBA::Object)
85
- # since we know what we're doing use this convenience method provided
86
- # by JacORB so we only make a shallow copy of the object ref
87
- # insert_Object() will throw an exception because the typecode is not
88
- # an objref tc but rather an abstract interface tc
89
- if CORBA::Native::Jacorb::MAJOR_VERSION < 3
90
- jany.insert_object(rtc.tc_, rval.objref_)
91
- else
92
- jany.insert(rtc.tc_, rval.objref_)
93
- end
94
- else
95
- jany.insert_Value(rval, rtc.tc_)
96
- end
97
- when TK_PRINCIPAL
98
- raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
99
- ## TODO: TK_NATIVE
100
- else
101
- raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
102
- end
103
- return jany
104
- else
105
- dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
106
- (jorb || CORBA::ORB._orb).resolve_initial_references("DynAnyFactory"))
107
- jdynany = dynFactory.create_dyn_any_from_type_code(rtc.tc_)
108
- begin
109
- unless rval.nil?
110
- restc = rtc.resolved_tc
111
- case restc.kind
112
- when TK_ENUM
113
- jdynany.set_as_ulong(rval)
114
- when TK_ARRAY
115
- jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
116
- rval.each_with_index {|e,i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
117
- jdynany.set_elements(jelems)
118
- when TK_SEQUENCE
119
- jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
120
- rval.each_with_index {|e,i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
121
- jdynany.set_elements(jelems)
122
- when TK_STRUCT, TK_EXCEPT
123
- jmembers = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Dynamic::NameValuePair.java_class, restc.members.size)
124
- rtc.members.each_with_index {|(mn, mt),i| jmembers[i] = CORBA::Native::Dynamic::NameValuePair.new(mn, Any.to_any(rval.__send__(mn.intern), mt).to_java(jorb)) }
125
- jdynany.set_members(jmembers)
126
- when TK_UNION
127
- if rval._is_at_default?
128
- jdynany.set_to_default_member
129
- elsif rval._disc.nil?
130
- jdynany.set_to_no_active_member
131
- else
132
- jdynany.set_discriminator(dynFactory.create_dyn_any(Any.to_any(rval._disc, restc.discriminator_type).to_java(jorb)))
133
- end
134
- unless rval._disc.nil? || rval._value.nil?
135
- jdynany.member.from_any(Any.to_any(rval._value, rval._value_tc).to_java(jorb))
136
- end
137
- else
138
- raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
139
- end
140
- end
141
- if jany.nil?
142
- jany = jdynany.to_any
143
- else
144
- jany.read_value(jdynany.to_any.create_input_stream(), rtc.tc_)
145
- end
146
- ensure
147
- jdynany.destroy
148
- end
149
- return jany
150
- end
151
- rescue ::NativeException
152
- CORBA::Exception.native2r($!)
153
- end
154
- end # to_java
155
-
156
- def Any.from_java(jany, jorb=nil, rtc=nil)
157
- rtc ||= CORBA::TypeCode.from_native(jany.type)
158
- rval = nil
159
- begin
160
- if [TK_NULL,TK_VOID,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
161
- TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
162
- TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
163
- TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,
164
- TK_ABSTRACT_INTERFACE,TK_PRINCIPAL].include?(rtc.resolved_tc.kind)
165
- case rtc.resolved_tc.kind
166
- when TK_NULL, TK_VOID
167
- # leave as is
168
- when TK_ANY
169
- rval = Any.from_java(jany.extract_any(), jorb)
170
- when TK_BOOLEAN
171
- rval = jany.extract_boolean()
172
- when TK_SHORT
173
- rval = jany.extract_short()
174
- when TK_LONG
175
- rval = jany.extract_long()
176
- when TK_USHORT
177
- rval = [jany.extract_ushort()].pack('s').unpack('S').first
178
- when TK_WCHAR
179
- rval = jany.extract_wchar()
180
- when TK_ULONG
181
- rval = [jany.extract_ulong()].pack('l').unpack('L').first
182
- when TK_LONGLONG
183
- rval = jany.extract_longlong()
184
- when TK_ULONGLONG
185
- rval = [jany.extract_ulonglong()].pack('q').unpack('Q').first
186
- when TK_OCTET
187
- rval = [jany.extract_octet()].pack('c').unpack('C').first
188
- when TK_FLOAT
189
- rval = jany.extract_float()
190
- when TK_DOUBLE
191
- rval = jany.extract_double()
192
- when TK_LONGDOUBLE
193
- raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
194
- when TK_FIXED
195
- rval = BigDecimal.new(jany.extract_fixed().toString())
196
- when TK_CHAR
197
- rval = jany.extract_char().chr
198
- when TK_STRING
199
- rval = jany.extract_string()
200
- when TK_WSTRING
201
- rval = jany.extract_wstring()
202
- when TK_VALUE
203
- rval = jany.extract_Value()
204
- when TK_VALUE_BOX
205
- rtc.get_type::Factory._check_factory(jorb || CORBA::ORB._orb) # make sure valuebox factory has been registered
206
- rval = jany.extract_Value()
207
- rval = rval.value unless rval.nil?
208
- when TK_TYPECODE
209
- rval = CORBA::TypeCode.from_native(jany.extract_TypeCode())
210
- when TK_OBJREF
211
- rval = CORBA::Object._wrap_native(jany.extract_Object())
212
- rval = rtc.get_type._narrow(rval) if rval
213
- when TK_ABSTRACT_INTERFACE
214
- jobj = jany.create_input_stream().read_abstract_interface()
215
- rval = if jobj.is_a?(CORBA::Native::Object)
216
- rtc.get_type._narrow(CORBA::Object._wrap_native(jobj))
217
- else
218
- jobj
219
- end
220
- when TK_PRINCIPAL
221
- raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
222
- ## TODO: TK_NATIVE
223
- else
224
- raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
225
- end
226
- else
227
- dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
228
- (jorb || CORBA::ORB._orb).resolve_initial_references("DynAnyFactory"))
229
- jdynany = dynFactory.create_dyn_any(jany)
230
- begin
231
- restc = rtc.resolved_tc
232
- case restc.kind
233
- when TK_ENUM
234
- rval = jdynany.get_as_ulong()
235
- when TK_ARRAY
236
- rval = rtc.get_type.new
237
- jdynany.get_elements().each {|e| rval << Any.from_java(e, jorb, restc.content_type) }
238
- when TK_SEQUENCE
239
- rval = rtc.get_type.new
240
- jdynany.get_elements().each {|e| rval << Any.from_java(e, jorb, restc.content_type) }
241
- when TK_STRUCT, TK_EXCEPT
242
- rval = rtc.get_type.new
243
- jdynany.get_members().each_with_index {|nvp,i| rval.__send__("#{nvp.id}=".intern, Any.from_java(nvp.value, jorb, restc.member_type(i))) }
244
- when TK_UNION
245
- rval = rtc.get_type.new
246
- if jdynany.get_discriminator().type().kind().value() == CORBA::TK_OCTET
247
- rdisc = jdynany.get_discriminator().get_octet()
248
- # Octet 0 designates default member
249
- rdisc = rdisc == 0 ? :default : rdisc
250
- else
251
- rdisc = Any.from_java(jdynany.get_discriminator().to_any(), jorb, restc.discriminator_type)
252
- end
253
- rval.instance_variable_set('@discriminator', rdisc)
254
- unless jdynany.has_no_active_member
255
- minx = rtc.label_index(rdisc)
256
- rval.instance_variable_set('@value', Any.from_java(jdynany.member.to_any, jorb, restc.member_type(minx)))
257
- end
258
- else
259
- raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
260
- end
261
- ensure
262
- jdynany.destroy
263
- end
264
- end
265
- rescue ::NativeException
266
- CORBA::Exception.native2r($!)
267
- end
268
- return rval
269
- end # from_java
270
-
271
- end # Any
272
- end # CORBA
273
- end # R2CORBA
1
+ #--------------------------------------------------------------------
2
+ # Any.rb - CORBA Any 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+ module R2CORBA
14
+ module CORBA
15
+ module Native
16
+ module Dynamic
17
+ include_package 'org.omg.DynamicAny'
18
+ end
19
+ module Reflect
20
+ java_import java.lang.reflect.Array
21
+ end
22
+ end
23
+ class Any
24
+ def to_java(jorb=nil,jany=nil)
25
+ rtc = self._tc
26
+ rval = self._value.nil? ? self._value : rtc.validate(self._value)
27
+ restc = rtc.resolved_tc
28
+ begin
29
+ if [TK_VALUE, TK_VALUE_BOX, TK_ABSTRACT_INTERFACE].include?(restc.kind) ||
30
+ (!rval.nil? && [TK_NULL,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
31
+ TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
32
+ TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
33
+ TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,TK_PRINCIPAL].include?(restc.kind))
34
+ jorb ||= CORBA::ORB._orb
35
+ jany ||= jorb.create_any()
36
+ case restc.kind
37
+ when TK_NULL
38
+ # leave any as is
39
+ when TK_ANY
40
+ jany.insert_any(rval.to_java(jorb))
41
+ when TK_BOOLEAN
42
+ jany.insert_boolean(rval)
43
+ when TK_SHORT
44
+ jany.insert_short(rval)
45
+ when TK_LONG
46
+ jany.insert_long(rval)
47
+ when TK_USHORT
48
+ jany.insert_ushort([rval].pack('S').unpack('s').first)
49
+ when TK_WCHAR
50
+ jany.insert_wchar(rval)
51
+ when TK_ULONG
52
+ jany.insert_ulong([rval].pack('L').unpack('l').first)
53
+ when TK_LONGLONG
54
+ jany.insert_longlong(rval)
55
+ when TK_ULONGLONG
56
+ jany.insert_ulonglong([rval].pack('Q').unpack('q').first)
57
+ when TK_OCTET
58
+ jany.insert_octet([rval].pack('C').unpack('c').first)
59
+ when TK_FLOAT
60
+ jany.insert_float(rval)
61
+ when TK_DOUBLE
62
+ jany.insert_double(rval)
63
+ when TK_LONGDOUBLE
64
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
65
+ when TK_FIXED
66
+ jany.insert_fixed(java.math.BigDecimal.new(rval.to_s))
67
+ when TK_CHAR
68
+ jany.insert_char(rval[0])
69
+ when TK_STRING
70
+ jany.insert_string(rval)
71
+ when TK_WSTRING
72
+ jany.insert_wstring(rval.inject('') {|s,b| s << b.chr})
73
+ when TK_VALUE
74
+ jany.insert_Value(rval, rtc.tc_)
75
+ when TK_VALUE_BOX
76
+ rtc.get_type::Factory._check_factory(jorb) # make sure valuebox factory has been registered
77
+ rval = rtc.get_type.new(rval) unless rval.nil? || rval.is_a?(CORBA::Portable::BoxedValueBase)
78
+ jany.insert_Value(rval, rtc.tc_)
79
+ when TK_TYPECODE
80
+ jany.insert_TypeCode(rtc.tc_)
81
+ when TK_OBJREF
82
+ jany.insert_Object(rval.objref_)
83
+ when TK_ABSTRACT_INTERFACE
84
+ if rval.is_a?(CORBA::Object)
85
+ # since we know what we're doing use this convenience method provided
86
+ # by JacORB so we only make a shallow copy of the object ref
87
+ # insert_Object() will throw an exception because the typecode is not
88
+ # an objref tc but rather an abstract interface tc
89
+ if CORBA::Native::Jacorb::MAJOR_VERSION < 3
90
+ jany.insert_object(rtc.tc_, rval.objref_)
91
+ else
92
+ jany.insert(rtc.tc_, rval.objref_)
93
+ end
94
+ else
95
+ jany.insert_Value(rval, rtc.tc_)
96
+ end
97
+ when TK_PRINCIPAL
98
+ raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
99
+ ## TODO: TK_NATIVE
100
+ else
101
+ raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
102
+ end
103
+ return jany
104
+ else
105
+ dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
106
+ (jorb || CORBA::ORB._orb).resolve_initial_references("DynAnyFactory"))
107
+ jdynany = dynFactory.create_dyn_any_from_type_code(rtc.tc_)
108
+ begin
109
+ unless rval.nil?
110
+ restc = rtc.resolved_tc
111
+ case restc.kind
112
+ when TK_ENUM
113
+ jdynany.set_as_ulong(rval)
114
+ when TK_ARRAY
115
+ jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
116
+ rval.each_with_index {|e,i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
117
+ jdynany.set_elements(jelems)
118
+ when TK_SEQUENCE
119
+ jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
120
+ rval.each_with_index {|e,i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
121
+ jdynany.set_elements(jelems)
122
+ when TK_STRUCT, TK_EXCEPT
123
+ jmembers = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Dynamic::NameValuePair.java_class, restc.members.size)
124
+ rtc.members.each_with_index {|(mn, mt),i| jmembers[i] = CORBA::Native::Dynamic::NameValuePair.new(mn, Any.to_any(rval.__send__(mn.intern), mt).to_java(jorb)) }
125
+ jdynany.set_members(jmembers)
126
+ when TK_UNION
127
+ if rval._is_at_default?
128
+ jdynany.set_to_default_member
129
+ elsif rval._disc.nil?
130
+ jdynany.set_to_no_active_member
131
+ else
132
+ jdynany.set_discriminator(dynFactory.create_dyn_any(Any.to_any(rval._disc, restc.discriminator_type).to_java(jorb)))
133
+ end
134
+ unless rval._disc.nil? || rval._value.nil?
135
+ jdynany.member.from_any(Any.to_any(rval._value, rval._value_tc).to_java(jorb))
136
+ end
137
+ else
138
+ raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
139
+ end
140
+ end
141
+ if jany.nil?
142
+ jany = jdynany.to_any
143
+ else
144
+ jany.read_value(jdynany.to_any.create_input_stream(), rtc.tc_)
145
+ end
146
+ ensure
147
+ jdynany.destroy
148
+ end
149
+ return jany
150
+ end
151
+ rescue ::NativeException
152
+ CORBA::Exception.native2r($!)
153
+ end
154
+ end # to_java
155
+
156
+ def Any.from_java(jany, jorb=nil, rtc=nil)
157
+ rtc ||= CORBA::TypeCode.from_native(jany.type)
158
+ rval = nil
159
+ begin
160
+ if [TK_NULL,TK_VOID,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
161
+ TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
162
+ TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
163
+ TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,
164
+ TK_ABSTRACT_INTERFACE,TK_PRINCIPAL].include?(rtc.resolved_tc.kind)
165
+ case rtc.resolved_tc.kind
166
+ when TK_NULL, TK_VOID
167
+ # leave as is
168
+ when TK_ANY
169
+ rval = Any.from_java(jany.extract_any(), jorb)
170
+ when TK_BOOLEAN
171
+ rval = jany.extract_boolean()
172
+ when TK_SHORT
173
+ rval = jany.extract_short()
174
+ when TK_LONG
175
+ rval = jany.extract_long()
176
+ when TK_USHORT
177
+ rval = [jany.extract_ushort()].pack('s').unpack('S').first
178
+ when TK_WCHAR
179
+ rval = jany.extract_wchar()
180
+ when TK_ULONG
181
+ rval = [jany.extract_ulong()].pack('l').unpack('L').first
182
+ when TK_LONGLONG
183
+ rval = jany.extract_longlong()
184
+ when TK_ULONGLONG
185
+ rval = [jany.extract_ulonglong()].pack('q').unpack('Q').first
186
+ when TK_OCTET
187
+ rval = [jany.extract_octet()].pack('c').unpack('C').first
188
+ when TK_FLOAT
189
+ rval = jany.extract_float()
190
+ when TK_DOUBLE
191
+ rval = jany.extract_double()
192
+ when TK_LONGDOUBLE
193
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
194
+ when TK_FIXED
195
+ rval = BigDecimal.new(jany.extract_fixed().toString())
196
+ when TK_CHAR
197
+ rval = jany.extract_char().chr
198
+ when TK_STRING
199
+ rval = jany.extract_string()
200
+ when TK_WSTRING
201
+ rval = jany.extract_wstring()
202
+ when TK_VALUE
203
+ rval = jany.extract_Value()
204
+ when TK_VALUE_BOX
205
+ rtc.get_type::Factory._check_factory(jorb || CORBA::ORB._orb) # make sure valuebox factory has been registered
206
+ rval = jany.extract_Value()
207
+ rval = rval.value unless rval.nil?
208
+ when TK_TYPECODE
209
+ rval = CORBA::TypeCode.from_native(jany.extract_TypeCode())
210
+ when TK_OBJREF
211
+ rval = CORBA::Object._wrap_native(jany.extract_Object())
212
+ rval = rtc.get_type._narrow(rval) if rval
213
+ when TK_ABSTRACT_INTERFACE
214
+ jobj = jany.create_input_stream().read_abstract_interface()
215
+ rval = if jobj.is_a?(CORBA::Native::Object)
216
+ rtc.get_type._narrow(CORBA::Object._wrap_native(jobj))
217
+ else
218
+ jobj
219
+ end
220
+ when TK_PRINCIPAL
221
+ raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
222
+ ## TODO: TK_NATIVE
223
+ else
224
+ raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
225
+ end
226
+ else
227
+ dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
228
+ (jorb || CORBA::ORB._orb).resolve_initial_references("DynAnyFactory"))
229
+ jdynany = dynFactory.create_dyn_any(jany)
230
+ begin
231
+ restc = rtc.resolved_tc
232
+ case restc.kind
233
+ when TK_ENUM
234
+ rval = jdynany.get_as_ulong()
235
+ when TK_ARRAY
236
+ rval = rtc.get_type.new
237
+ jdynany.get_elements().each {|e| rval << Any.from_java(e, jorb, restc.content_type) }
238
+ when TK_SEQUENCE
239
+ rval = rtc.get_type.new
240
+ jdynany.get_elements().each {|e| rval << Any.from_java(e, jorb, restc.content_type) }
241
+ when TK_STRUCT, TK_EXCEPT
242
+ rval = rtc.get_type.new
243
+ jdynany.get_members().each_with_index {|nvp,i| rval.__send__("#{nvp.id}=".intern, Any.from_java(nvp.value, jorb, restc.member_type(i))) }
244
+ when TK_UNION
245
+ rval = rtc.get_type.new
246
+ if jdynany.get_discriminator().type().kind().value() == CORBA::TK_OCTET
247
+ rdisc = jdynany.get_discriminator().get_octet()
248
+ # Octet 0 designates default member
249
+ rdisc = rdisc == 0 ? :default : rdisc
250
+ else
251
+ rdisc = Any.from_java(jdynany.get_discriminator().to_any(), jorb, restc.discriminator_type)
252
+ end
253
+ rval.instance_variable_set('@discriminator', rdisc)
254
+ unless jdynany.has_no_active_member
255
+ minx = rtc.label_index(rdisc)
256
+ rval.instance_variable_set('@value', Any.from_java(jdynany.member.to_any, jorb, restc.member_type(minx)))
257
+ end
258
+ else
259
+ raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
260
+ end
261
+ ensure
262
+ jdynany.destroy
263
+ end
264
+ end
265
+ rescue ::NativeException
266
+ CORBA::Exception.native2r($!)
267
+ end
268
+ return rval
269
+ end # from_java
270
+
271
+ end # Any
272
+ end # CORBA
273
+ end # R2CORBA