r2corba 1.5.1-universal-java

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 (271) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/LICENSE.jacorb +660 -0
  5. data/README +62 -0
  6. data/THANKS +54 -0
  7. data/bin/r2corba +8 -0
  8. data/bin/r2corba.bat +20 -0
  9. data/bin/ridlc +11 -0
  10. data/bin/ridlc.bat +23 -0
  11. data/bin/rins +7 -0
  12. data/bin/rins.bat +19 -0
  13. data/jacorb/lib/antlr-2.7.2.jar +0 -0
  14. data/jacorb/lib/jacorb-3.5.jar +0 -0
  15. data/jacorb/lib/jacorb-omgapi-3.5.jar +0 -0
  16. data/jacorb/lib/jacorb-services-3.5.jar +0 -0
  17. data/jacorb/lib/slf4j-api-1.7.6.jar +0 -0
  18. data/jacorb/lib/slf4j-jdk14-1.7.6.jar +0 -0
  19. data/lib/corba.rb +16 -0
  20. data/lib/corba/cbase/IORMap.rb +33 -0
  21. data/lib/corba/cbase/ORB.rb +237 -0
  22. data/lib/corba/cbase/Request.rb +134 -0
  23. data/lib/corba/cbase/Streams.rb +129 -0
  24. data/lib/corba/cbase/Stub.rb +19 -0
  25. data/lib/corba/cbase/Typecode.rb +441 -0
  26. data/lib/corba/cbase/Values.rb +129 -0
  27. data/lib/corba/cbase/exception.rb +66 -0
  28. data/lib/corba/cbase/poa.rb +23 -0
  29. data/lib/corba/cbase/policies.rb +78 -0
  30. data/lib/corba/cbase/post_require.rb +14 -0
  31. data/lib/corba/cbase/require.rb +28 -0
  32. data/lib/corba/cmds/base.rb +85 -0
  33. data/lib/corba/cmds/test.rb +30 -0
  34. data/lib/corba/common/Any.rb +91 -0
  35. data/lib/corba/common/IDL.rb +104 -0
  36. data/lib/corba/common/ORB.rb +368 -0
  37. data/lib/corba/common/Object.rb +208 -0
  38. data/lib/corba/common/Request.rb +20 -0
  39. data/lib/corba/common/Servant.rb +108 -0
  40. data/lib/corba/common/Struct.rb +22 -0
  41. data/lib/corba/common/Stub.rb +79 -0
  42. data/lib/corba/common/Typecode.rb +1121 -0
  43. data/lib/corba/common/Union.rb +56 -0
  44. data/lib/corba/common/Values.rb +92 -0
  45. data/lib/corba/common/const.rb +22 -0
  46. data/lib/corba/common/exception.rb +68 -0
  47. data/lib/corba/common/require.rb +27 -0
  48. data/lib/corba/common/version.rb +22 -0
  49. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  50. data/lib/corba/idl/CosNamingC.rb +461 -0
  51. data/lib/corba/idl/CosNamingS.rb +309 -0
  52. data/lib/corba/idl/IDL.rb +21 -0
  53. data/lib/corba/idl/IORTable.pidl +62 -0
  54. data/lib/corba/idl/MessagingC.rb +904 -0
  55. data/lib/corba/idl/POAC.rb +930 -0
  56. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  57. data/lib/corba/idl/r2c_orb.rb +572 -0
  58. data/lib/corba/idl/require.rb +20 -0
  59. data/lib/corba/jbase/Any.rb +273 -0
  60. data/lib/corba/jbase/IORMap.rb +36 -0
  61. data/lib/corba/jbase/ORB.rb +112 -0
  62. data/lib/corba/jbase/Object.rb +99 -0
  63. data/lib/corba/jbase/Request.rb +226 -0
  64. data/lib/corba/jbase/Servant.rb +248 -0
  65. data/lib/corba/jbase/ServerRequest.rb +128 -0
  66. data/lib/corba/jbase/Streams.rb +671 -0
  67. data/lib/corba/jbase/Stub.rb +38 -0
  68. data/lib/corba/jbase/Typecode.rb +520 -0
  69. data/lib/corba/jbase/Values.rb +173 -0
  70. data/lib/corba/jbase/exception.rb +106 -0
  71. data/lib/corba/jbase/poa.rb +229 -0
  72. data/lib/corba/jbase/policies.rb +300 -0
  73. data/lib/corba/jbase/post_require.rb +14 -0
  74. data/lib/corba/jbase/require.rb +89 -0
  75. data/lib/corba/naming.rb +14 -0
  76. data/lib/corba/naming_service.rb +15 -0
  77. data/lib/corba/poa.rb +15 -0
  78. data/lib/corba/policies.rb +18 -0
  79. data/lib/corba/require.rb +17 -0
  80. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  81. data/lib/corba/svcs/ins/ins.rb +526 -0
  82. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  83. data/lib/ridlbe/ruby/config.rb +336 -0
  84. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  85. data/lib/ridlbe/ruby/require.rb +16 -0
  86. data/lib/ridlbe/ruby/walker.rb +1582 -0
  87. data/mkrf_conf_bingem.rb +151 -0
  88. data/rakelib/bin.rake +80 -0
  89. data/rakelib/bin.rb +146 -0
  90. data/rakelib/build.rake +87 -0
  91. data/rakelib/config.rake +52 -0
  92. data/rakelib/config.rb +544 -0
  93. data/rakelib/gem.rake +236 -0
  94. data/rakelib/gem.rb +146 -0
  95. data/rakelib/package.rake +26 -0
  96. data/rakelib/test.rake +23 -0
  97. data/test/BiDirectional/Test.idl +34 -0
  98. data/test/BiDirectional/client.rb +132 -0
  99. data/test/BiDirectional/run_test.rb +68 -0
  100. data/test/BiDirectional/server.ior +1 -0
  101. data/test/BiDirectional/server.rb +169 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  106. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  107. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  108. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  109. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  111. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  112. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  113. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  114. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  115. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  116. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  117. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  118. data/test/Collocation/Diamond.idl +39 -0
  119. data/test/Collocation/run_test.rb +52 -0
  120. data/test/Collocation/test.rb +195 -0
  121. data/test/Connect_Timeout/Test.idl +27 -0
  122. data/test/Connect_Timeout/client.rb +111 -0
  123. data/test/Connect_Timeout/run_test.rb +52 -0
  124. data/test/DII/Test.idl +27 -0
  125. data/test/DII/client.rb +115 -0
  126. data/test/DII/run_test.rb +69 -0
  127. data/test/DII/server.ior +1 -0
  128. data/test/DII/server.rb +95 -0
  129. data/test/DSI/Test.idl +27 -0
  130. data/test/DSI/client.rb +66 -0
  131. data/test/DSI/run_test.rb +69 -0
  132. data/test/DSI/server.ior +1 -0
  133. data/test/DSI/server.rb +106 -0
  134. data/test/Exceptions/Test.idl +48 -0
  135. data/test/Exceptions/client.rb +118 -0
  136. data/test/Exceptions/run_test.rb +69 -0
  137. data/test/Exceptions/server.ior +1 -0
  138. data/test/Exceptions/server.rb +131 -0
  139. data/test/Hello/Test.idl +27 -0
  140. data/test/Hello/client.rb +78 -0
  141. data/test/Hello/gateway.ior +1 -0
  142. data/test/Hello/run_test.rb +71 -0
  143. data/test/Hello/server.rb +95 -0
  144. data/test/IDL_Test/Test.idl +113 -0
  145. data/test/IDL_Test/Test_inc.idl +17 -0
  146. data/test/IDL_Test/client.rb +102 -0
  147. data/test/IDL_Test/run_test.rb +69 -0
  148. data/test/IDL_Test/server.ior +1 -0
  149. data/test/IDL_Test/server.rb +99 -0
  150. data/test/IORMap/Test.idl +27 -0
  151. data/test/IORMap/client.rb +73 -0
  152. data/test/IORMap/run_test.rb +69 -0
  153. data/test/IORMap/server.ior +1 -0
  154. data/test/IORMap/server.rb +114 -0
  155. data/test/IORTable/Test.idl +27 -0
  156. data/test/IORTable/client.rb +75 -0
  157. data/test/IORTable/run_test.rb +69 -0
  158. data/test/IORTable/server.ior +0 -0
  159. data/test/IORTable/server.rb +130 -0
  160. data/test/Implicit_Conversion/Test.idl +31 -0
  161. data/test/Implicit_Conversion/client.rb +110 -0
  162. data/test/Implicit_Conversion/run_test.rb +69 -0
  163. data/test/Implicit_Conversion/server.ior +1 -0
  164. data/test/Implicit_Conversion/server.rb +99 -0
  165. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  166. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  167. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  168. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  169. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  170. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  171. data/test/Multi_Threading/Simple/Test.idl +27 -0
  172. data/test/Multi_Threading/Simple/client.rb +93 -0
  173. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  174. data/test/Multi_Threading/Simple/server.ior +1 -0
  175. data/test/Multi_Threading/Simple/server.rb +118 -0
  176. data/test/Multi_Threading/Threads/Test.idl +31 -0
  177. data/test/Multi_Threading/Threads/client.rb +80 -0
  178. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  179. data/test/Multi_Threading/Threads/server.ior +1 -0
  180. data/test/Multi_Threading/Threads/server.rb +119 -0
  181. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  182. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  183. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  184. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  185. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  186. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  187. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  188. data/test/Nil/Test.idl +27 -0
  189. data/test/Nil/run_test.rb +52 -0
  190. data/test/Nil/test.rb +78 -0
  191. data/test/OBV/AbstractInterface/client.rb +179 -0
  192. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  193. data/test/OBV/AbstractInterface/server.ior +1 -0
  194. data/test/OBV/AbstractInterface/server.rb +149 -0
  195. data/test/OBV/AbstractInterface/test.idl +53 -0
  196. data/test/OBV/Custom/OBV.idl +18 -0
  197. data/test/OBV/Custom/OBV_impl.rb +40 -0
  198. data/test/OBV/Custom/client.rb +86 -0
  199. data/test/OBV/Custom/run_test.rb +69 -0
  200. data/test/OBV/Custom/server.ior +1 -0
  201. data/test/OBV/Custom/server.rb +100 -0
  202. data/test/OBV/Simple/OBV.idl +15 -0
  203. data/test/OBV/Simple/OBV_impl.rb +26 -0
  204. data/test/OBV/Simple/client.rb +86 -0
  205. data/test/OBV/Simple/run_test.rb +69 -0
  206. data/test/OBV/Simple/server.ior +1 -0
  207. data/test/OBV/Simple/server.rb +100 -0
  208. data/test/OBV/Simple_Event/Event.idl +15 -0
  209. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  210. data/test/OBV/Simple_Event/client.rb +86 -0
  211. data/test/OBV/Simple_Event/run_test.rb +69 -0
  212. data/test/OBV/Simple_Event/server.ior +1 -0
  213. data/test/OBV/Simple_Event/server.rb +100 -0
  214. data/test/OBV/Supports/client.rb +116 -0
  215. data/test/OBV/Supports/run_test.rb +69 -0
  216. data/test/OBV/Supports/server.ior +1 -0
  217. data/test/OBV/Supports/server.rb +103 -0
  218. data/test/OBV/Supports/supports.idl +33 -0
  219. data/test/OBV/Supports/supports_impl.rb +57 -0
  220. data/test/OBV/Tree/client.rb +116 -0
  221. data/test/OBV/Tree/run_test.rb +69 -0
  222. data/test/OBV/Tree/server.ior +1 -0
  223. data/test/OBV/Tree/server.rb +117 -0
  224. data/test/OBV/Tree/test.idl +32 -0
  225. data/test/OBV/Truncatable/Extra.idl +27 -0
  226. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  227. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  228. data/test/OBV/Truncatable/client.rb +279 -0
  229. data/test/OBV/Truncatable/run_test.rb +69 -0
  230. data/test/OBV/Truncatable/server.ior +1 -0
  231. data/test/OBV/Truncatable/server.rb +89 -0
  232. data/test/OBV/ValueBox/client.rb +497 -0
  233. data/test/OBV/ValueBox/run_test.rb +69 -0
  234. data/test/OBV/ValueBox/server.ior +1 -0
  235. data/test/OBV/ValueBox/server.rb +271 -0
  236. data/test/OBV/ValueBox/valuebox.idl +101 -0
  237. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  238. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  239. data/test/OBV/ValueBox/vb_union.idl +21 -0
  240. data/test/Object/Test.idl +27 -0
  241. data/test/Object/client.rb +112 -0
  242. data/test/Object/run_test.rb +69 -0
  243. data/test/Object/server.ior +1 -0
  244. data/test/Object/server.rb +126 -0
  245. data/test/POA/Test.idl +27 -0
  246. data/test/POA/run_test.rb +52 -0
  247. data/test/POA/test.rb +112 -0
  248. data/test/Param_Test/Test.idl +182 -0
  249. data/test/Param_Test/client.rb +277 -0
  250. data/test/Param_Test/run_test.rb +69 -0
  251. data/test/Param_Test/server.ior +1 -0
  252. data/test/Param_Test/server.rb +296 -0
  253. data/test/Performance/Simple/Test.idl +27 -0
  254. data/test/Performance/Simple/client.rb +90 -0
  255. data/test/Performance/Simple/run_test.rb +69 -0
  256. data/test/Performance/Simple/server.ior +1 -0
  257. data/test/Performance/Simple/server.rb +95 -0
  258. data/test/Policies/Test.idl +27 -0
  259. data/test/Policies/run_test.rb +52 -0
  260. data/test/Policies/test.rb +144 -0
  261. data/test/Timeout/client.rb +207 -0
  262. data/test/Timeout/run_test.rb +69 -0
  263. data/test/Timeout/server.ior +1 -0
  264. data/test/Timeout/server.rb +109 -0
  265. data/test/Timeout/test.idl +19 -0
  266. data/test/lib/assert.rb +43 -0
  267. data/test/lib/test.rb +542 -0
  268. data/test/test.log +20 -0
  269. data/test/test2.log +5000 -0
  270. data/test/test_runner.rb +193 -0
  271. metadata +349 -0
@@ -0,0 +1,134 @@
1
+ #--------------------------------------------------------------------
2
+ # Request.rb - C++/TAO CORBA Request 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+ module R2CORBA
14
+ module CORBA
15
+
16
+ module Request
17
+
18
+ def add_in_arg(tc, val, nm='')
19
+ self._arguments << [nm, CORBA::ARG_IN, tc, val]
20
+ self._arguments.size
21
+ end
22
+
23
+ def add_out_arg(tc, nm='')
24
+ self._arguments << [nm, CORBA::ARG_OUT, tc]
25
+ self._arguments.size
26
+ end
27
+
28
+ def add_inout_arg(tc, val, nm='')
29
+ self._arguments << [nm, CORBA::ARG_INOUT, tc, val]
30
+ self._arguments.size
31
+ end
32
+
33
+ def arguments
34
+ self._arguments
35
+ end
36
+
37
+ def arguments=(*args)
38
+ if args.size == 1
39
+ raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? {|a| ::Array === a }
40
+ args = args.first
41
+ else
42
+ raise ArgumentError, 'invalid argument list' unless args.all? {|a| ::Array === a }
43
+ end
44
+ # clear current arguments
45
+ self._arguments.clear
46
+ # add new arguments
47
+ args.each do |nm, flag, tc, val|
48
+ case flag
49
+ when CORBA::ARG_IN
50
+ self.add_in_arg(tc, val, nm)
51
+ when CORBA::ARG_OUT
52
+ self.add_out_arg(tc, nm)
53
+ when CORBA::ARG_INOUT
54
+ self.add_inout_arg(tc, val, nm)
55
+ end
56
+ end
57
+ end
58
+
59
+ def exceptions
60
+ self._exceptions
61
+ end
62
+
63
+ def exceptions=(exl)
64
+ self._exceptions.clear
65
+ begin
66
+ self._exceptions.concat(exl)
67
+ rescue
68
+ raise CORBA::BAD_PARAM.new(0, CORBA::COMPLETED_NO)
69
+ end
70
+ end
71
+
72
+ def set_return_type(tc)
73
+ @_rettc = tc
74
+ end
75
+
76
+ def return_value
77
+ return nil if @_rettc.nil? || @_rettc.kind == CORBA::TK_VOID || @_rettc.kind == CORBA::TK_NULL
78
+ self._return_value(@_rettc)
79
+ end
80
+
81
+ def invoke
82
+ self._invoke({
83
+ :arg_list => self._arguments,
84
+ :result_type => @_rettc,
85
+ :exc_list => self._exceptions
86
+ })
87
+ end
88
+
89
+ def send_oneway
90
+ self._send_oneway(self._arguments)
91
+ end
92
+
93
+ def send_deferred
94
+ self._send_deferred({
95
+ :arg_list => self._arguments,
96
+ :result_type => @_rettc,
97
+ :exc_list => self._exceptions
98
+ })
99
+ end
100
+
101
+ def poll_response
102
+ begin
103
+ ret = self._poll_response
104
+ rescue ::NativeException
105
+ CORBA::Exception.native2r($!)
106
+ end
107
+ @_args = self._get_arguments(@_args || []) if ret
108
+ ret
109
+ end
110
+
111
+ def get_response
112
+ begin
113
+ ret = self._get_response
114
+ rescue ::NativeException
115
+ CORBA::Exception.native2r($!)
116
+ end
117
+ @_args = self._get_arguments(@_args || [])
118
+ ret
119
+ end
120
+
121
+ protected
122
+
123
+ def _arguments
124
+ @_args ||= []
125
+ end
126
+
127
+ def _exceptions
128
+ @_excl ||= []
129
+ end
130
+
131
+ end
132
+
133
+ end # CORBA
134
+ end # R2CORBA
@@ -0,0 +1,129 @@
1
+ #--------------------------------------------------------------------
2
+ # Streams.rb - C++/TAO Definition of CORBA CDR Streams
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
+ module CORBA
16
+ module Portable
17
+ module InputStream
18
+ def read_member(tc)
19
+ tc = tc.resolved_tc # takes care of recursive typecodes
20
+ v = case tc.kind
21
+ when TK_ANY
22
+ read_any()
23
+ when TK_BOOLEAN
24
+ read_boolean()
25
+ when TK_SHORT
26
+ read_short()
27
+ when TK_LONG
28
+ read_long()
29
+ when TK_USHORT
30
+ read_ushort()
31
+ when TK_WCHAR
32
+ read_wchar()
33
+ when TK_ULONG
34
+ read_ulong()
35
+ when TK_LONGLONG
36
+ read_longlong()
37
+ when TK_ULONGLONG
38
+ read_ulonglong()
39
+ when TK_OCTET
40
+ read_octet()
41
+ when TK_FLOAT
42
+ read_float()
43
+ when TK_DOUBLE
44
+ read_double()
45
+ when TK_LONGDOUBLE
46
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
47
+ when TK_FIXED
48
+ read_fixed()
49
+ when TK_CHAR
50
+ read_char()
51
+ when TK_STRING
52
+ read_string()
53
+ when TK_WSTRING
54
+ read_wstring()
55
+ when TK_OBJREF
56
+ read_Object()
57
+ when TK_TYPECODE
58
+ read_TypeCode()
59
+ when TK_ARRAY, TK_SEQUENCE,
60
+ TK_ENUM, TK_STRUCT, TK_EXCEPT, TK_UNION,
61
+ TK_PRINCIPAL
62
+ read_construct(tc)
63
+ when TK_ABSTRACT_INTERFACE
64
+ read_Abstract()
65
+ when TK_VALUE, TK_VALUE_BOX, TK_EVENT
66
+ read_Value()
67
+ ## TODO: TK_NATIVE
68
+ end
69
+ v
70
+ end
71
+ end
72
+
73
+ module OutputStream
74
+ def write_member(tc, value)
75
+ tc = tc.resolved_tc # takes care of recursive typecodes
76
+ case tc.kind
77
+ when TK_ANY
78
+ write_any(value)
79
+ when TK_BOOLEAN
80
+ write_boolean(value)
81
+ when TK_SHORT
82
+ write_short(value)
83
+ when TK_LONG
84
+ write_long(value)
85
+ when TK_USHORT
86
+ write_ushort(value)
87
+ when TK_WCHAR
88
+ write_wchar(value)
89
+ when TK_ULONG
90
+ write_ulong(value)
91
+ when TK_LONGLONG
92
+ write_longlong(value)
93
+ when TK_ULONGLONG
94
+ write_ulonglong(value)
95
+ when TK_OCTET
96
+ write_octet(value)
97
+ when TK_FLOAT
98
+ write_float(value)
99
+ when TK_DOUBLE
100
+ write_double(value)
101
+ when TK_LONGDOUBLE
102
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
103
+ when TK_FIXED
104
+ write_fixed(value)
105
+ when TK_CHAR
106
+ write_char(value)
107
+ when TK_STRING
108
+ write_string(value)
109
+ when TK_WSTRING
110
+ write_wstring(value)
111
+ when TK_OBJREF
112
+ write_Object(value)
113
+ when TK_TYPECODE
114
+ write_TypeCode(value)
115
+ when TK_ARRAY, TK_SEQUENCE,
116
+ TK_ENUM, TK_STRUCT, TK_EXCEPT, TK_UNION,
117
+ TK_PRINCIPAL
118
+ write_construct(value, tc)
119
+ when TK_ABSTRACT_INTERFACE
120
+ write_Abstract(value)
121
+ when TK_VALUE, TK_VALUE_BOX, TK_EVENT
122
+ write_Value(value)
123
+ ## TODO: TK_NATIVE
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,19 @@
1
+ #--------------------------------------------------------------------
2
+ # Stub.rb - C++/TAO CORBA Stub 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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+ module R2CORBA
14
+ module CORBA
15
+ module Stub
16
+ include R2CORBA::CORBA::Portable::Stub
17
+ end # Stub
18
+ end # CORBA
19
+ end # R2CORBA
@@ -0,0 +1,441 @@
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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ module R2CORBA
15
+ module CORBA
16
+ class TypeCode
17
+
18
+ def kind
19
+ begin
20
+ self.tc_.kind
21
+ rescue ::NativeException
22
+ CORBA::Exception.native2r($!)
23
+ end
24
+ end
25
+
26
+ def member_label(index)
27
+ begin
28
+ self.tc_.member_label(index.to_i)
29
+ rescue ::NativeException
30
+ CORBA::Exception.native2r($!)
31
+ end
32
+ end
33
+
34
+ class Recursive < CORBA::TypeCode
35
+
36
+ def initialize(id)
37
+ begin
38
+ @tc_ = CORBA::Native::TypeCode.create_recursive_tc(id)
39
+ rescue ::NativeException
40
+ CORBA::Exception.native2r($!)
41
+ end
42
+ end
43
+
44
+ end # Recursive
45
+
46
+ class String < CORBA::TypeCode
47
+
48
+ def initialize(*args)
49
+ if CORBA::Native::TypeCode === args.first
50
+ @tc_ = args.first
51
+ else
52
+ begin
53
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_STRING, args.shift.to_i)
54
+ rescue ::NativeException
55
+ CORBA::Exception.native2r($!)
56
+ end
57
+ end
58
+ end
59
+
60
+ end # String
61
+
62
+ class WString < CORBA::TypeCode
63
+
64
+ def initialize(*args)
65
+ if CORBA::Native::TypeCode === args.first
66
+ @tc_ = args.first
67
+ else
68
+ begin
69
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_WSTRING, args.shift.to_i)
70
+ rescue ::NativeException
71
+ CORBA::Exception.native2r($!)
72
+ end
73
+ end
74
+ end
75
+
76
+ end # WString
77
+
78
+ class Fixed < CORBA::TypeCode
79
+
80
+ def initialize(*args)
81
+ if CORBA::Native::TypeCode === args.first
82
+ @tc_ = args.first
83
+ else
84
+ digits, scale = args
85
+ begin
86
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_FIXED, digits.to_i, scale.to_i)
87
+ rescue ::NativeException
88
+ CORBA::Exception.native2r($!)
89
+ end
90
+ end
91
+ end
92
+
93
+ end # Fixed
94
+
95
+ class Sequence < CORBA::TypeCode
96
+
97
+ def initialize(*args)
98
+ if CORBA::Native::TypeCode === args.first
99
+ @tc_ = args.first
100
+ else
101
+ element_tc, bound = args
102
+ raise ArgumentError, 'expected CORBA::TypeCode' unless element_tc.is_a?(CORBA::TypeCode)
103
+ begin
104
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_SEQUENCE, bound.to_i, element_tc.tc_)
105
+ rescue ::NativeException
106
+ CORBA::Exception.native2r($!)
107
+ end
108
+ end
109
+ end
110
+
111
+ end
112
+
113
+ class Array < CORBA::TypeCode
114
+
115
+ def initialize(*args)
116
+ if CORBA::Native::TypeCode === args.first
117
+ @tc_ = args.first
118
+ else
119
+ content_tc = args.shift
120
+ length = args
121
+ raise ArgumentError, 'expected CORBA::TypeCode' unless content_tc.is_a?(CORBA::TypeCode)
122
+ if length.size>1
123
+ this_len = length.shift
124
+ content_tc = self.class.new(content_tc, *length)
125
+ else
126
+ this_len = length.first
127
+ end
128
+ begin
129
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ARRAY, this_len.to_i, content_tc.tc_)
130
+ rescue ::NativeException
131
+ CORBA::Exception.native2r($!)
132
+ end
133
+ end
134
+ end
135
+
136
+ end # Array
137
+
138
+ class IdentifiedTypeCode < CORBA::TypeCode
139
+
140
+ def initialize(id)
141
+ CORBA::TypeCode.register_id_type(id.to_s, self)
142
+ end
143
+
144
+ end # IdentifiedTypeCode
145
+
146
+ class Alias < IdentifiedTypeCode
147
+
148
+ def initialize(*args)
149
+ if CORBA::Native::TypeCode === args.first
150
+ @tc_ = args.first
151
+ @type = nil
152
+ super(@tc_.id)
153
+ else
154
+ id, name, orig_tc, type = args
155
+ raise ArgumentError, 'expected CORBA::TypeCode' unless orig_tc.is_a?(CORBA::TypeCode)
156
+ begin
157
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ALIAS, id.to_s, name.to_s, orig_tc.tc_)
158
+ rescue ::NativeException
159
+ CORBA::Exception.native2r($!)
160
+ end
161
+ @type = type
162
+ super(id)
163
+ end
164
+ end
165
+
166
+ end # Alias
167
+
168
+ class Valuetype < IdentifiedTypeCode
169
+
170
+ def initialize(*args)
171
+ if CORBA::Native::TypeCode === args.first
172
+ @tc_ = args.first
173
+ @type = nil
174
+ @members = []
175
+ @tc_.member_count.times do |i|
176
+ @members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
177
+ end
178
+ super(id)
179
+ else
180
+ id, name, modifier, base, members_, type_ = args
181
+ raise ArgumentError, 'expected CORBA::Typecode' unless base.nil? || base.is_a?(CORBA::TypeCode)
182
+ raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
183
+ if type_.nil? && !members_.is_a?(::Array)
184
+ type_ = members_
185
+ members_ = []
186
+ end
187
+ @type = type_
188
+ @members = []
189
+ members_.each { |n, tc, access| add_member(n, tc, access) }
190
+ n_members = @members.collect do |n, tc, access|
191
+ [n.to_s, tc.tc_, access == :public ? CORBA::PUBLIC_MEMBER : CORBA::PRIVATE_MEMBER]
192
+ end
193
+ @tc_ = _create_tc(id, name, modifier, base, n_members)
194
+ super(id)
195
+ end
196
+ end
197
+
198
+ protected
199
+
200
+ def _create_tc(id,name,modifier,base,members)
201
+ begin
202
+ CORBA::Native::TypeCode.create_tc(TK_VALUE, id.to_s, name.to_s,
203
+ CORBA::VT_MODIFIERS[modifier],
204
+ base.nil? ? nil : base.tc_,
205
+ members)
206
+ rescue ::NativeException
207
+ CORBA::Exception.native2r($!)
208
+ end
209
+ end
210
+
211
+ end # Valuetype
212
+
213
+ class Eventtype < Valuetype
214
+
215
+ protected
216
+
217
+ def _create_tc(id,name,modifier,base,members)
218
+ begin
219
+ CORBA::Native::TypeCode.create_tc(TK_EVENT, id.to_s, name.to_s,
220
+ CORBA::VT_MODIFIERS[modifier],
221
+ base.nil? ? nil : base.tc_,
222
+ members)
223
+ rescue ::NativeException
224
+ CORBA::Exception.native2r($!)
225
+ end
226
+ end
227
+
228
+ end # Eventtype
229
+
230
+ class Valuebox < IdentifiedTypeCode
231
+
232
+ def initialize(*args)
233
+ if CORBA::Native::TypeCode === args.first
234
+ @tc_ = args.first
235
+ @type = nil
236
+ super(@tc_.id)
237
+ else
238
+ id, name, boxed_tc, type = args
239
+ raise ArgumentError, 'expected CORBA::TypeCode' unless boxed_tc.is_a?(CORBA::TypeCode)
240
+ begin
241
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_VALUE_BOX, id.to_s, name.to_s, boxed_tc.tc_)
242
+ rescue ::NativeException
243
+ CORBA::Exception.native2r($!)
244
+ end
245
+ @type = type
246
+ super(id)
247
+ ## autoregister
248
+ CORBA::ORB._check_value_factory(@type::Factory) if @type < CORBA::Portable::BoxedValueBase
249
+ end
250
+ end
251
+
252
+ end # Valuebox
253
+
254
+ class ObjectRef < IdentifiedTypeCode
255
+
256
+ def initialize(*args)
257
+ if CORBA::Native::TypeCode === args.first
258
+ @tc_ = args.first
259
+ @type = CORBA::Object
260
+ super(@tc_.id)
261
+ else
262
+ id, name, type = args
263
+ begin
264
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_OBJREF, id.to_s, name.to_s)
265
+ rescue ::NativeException
266
+ CORBA::Exception.native2r($!)
267
+ end
268
+ @type = type
269
+ super(id)
270
+ end
271
+ end
272
+
273
+ end # ObjectRef
274
+
275
+ class AbstractInterface < IdentifiedTypeCode
276
+
277
+ def initialize(*args)
278
+ if CORBA::Native::TypeCode === args.first
279
+ @tc_ = args.first
280
+ @type = CORBA::AbstractBase
281
+ super(@tc_.id)
282
+ else
283
+ id, name, type = args
284
+ begin
285
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ABSTRACT_INTERFACE, id.to_s, name.to_s)
286
+ rescue ::NativeException
287
+ CORBA::Exception.native2r($!)
288
+ end
289
+ @type = type
290
+ super(id)
291
+ end
292
+ end
293
+
294
+ end # AbstractInterface
295
+
296
+ class Struct < IdentifiedTypeCode
297
+
298
+ def initialize(*args)
299
+ if CORBA::Native::TypeCode === args.first
300
+ @tc_ = args.first
301
+ @type = nil
302
+ @members = []
303
+ @tc_.member_count.times do |i|
304
+ @members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
305
+ end
306
+ super(id)
307
+ else
308
+ id, name, members_, type_ = args
309
+ raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
310
+ if type_.nil? && !members_.is_a?(::Array)
311
+ type_ = members_
312
+ members_ = []
313
+ end
314
+ @type = type_
315
+ @members = []
316
+ members_.each { |n, tc| add_member(n, tc) }
317
+ n_members = @members.collect {|n, tc| [n.to_s(), tc.tc_] }
318
+ @tc_ = _create_tc(id, name, n_members)
319
+ super(id)
320
+ end
321
+ end
322
+
323
+ protected
324
+
325
+ def _create_tc(id,name,members)
326
+ begin
327
+ CORBA::Native::TypeCode.create_tc(TK_STRUCT, id.to_s, name.to_s, members)
328
+ rescue ::NativeException
329
+ CORBA::Exception.native2r($!)
330
+ end
331
+ end
332
+
333
+ end # Struct
334
+
335
+ class Except < Struct
336
+
337
+ protected
338
+
339
+ def _create_tc(id,name,members)
340
+ begin
341
+ CORBA::Native::TypeCode.create_tc(TK_EXCEPT, id.to_s, name.to_s, members)
342
+ rescue ::NativeException
343
+ CORBA::Exception.native2r($!)
344
+ end
345
+ end
346
+
347
+ end # Except
348
+
349
+ class Union < IdentifiedTypeCode
350
+
351
+ def initialize(*args)
352
+ if CORBA::Native::TypeCode === args.first
353
+ @tc_ = args.first
354
+ @type = nil
355
+ @switchtype = TypeCode.from_native(@tc_.discriminator_type)
356
+ @labels = {}
357
+ @members = []
358
+ def_inx = @tc_.default_index
359
+ @tc_.member_count.times do |i|
360
+ if def_inx < 0 || def_inx != i
361
+ ml_ = @tc_.member_label(i)
362
+ else
363
+ ml_ = :default
364
+ end
365
+ @labels[ml] = i
366
+ @members << [ml, @tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
367
+ end
368
+ super(id)
369
+ else
370
+ id, name, switchtype_, members_, type_, implicit_default_ = args
371
+ raise ::CORBA::BAD_PARAM unless members_.is_a? ::Array
372
+ raise ::CORBA::BAD_PARAM unless switchtype_.is_a?(CORBA::TypeCode)
373
+ @type = type_
374
+ @implicit_default = implicit_default_
375
+ @switchtype = switchtype_.resolved_tc
376
+ @labels = {}
377
+ @members = []
378
+ members_.each { |mlabel, mname, mtc|
379
+ add_member(mlabel, mname, mtc)
380
+ }
381
+ @id = id
382
+ @name = name
383
+ n_members = @members.collect do |ml, mn, mtc|
384
+ [ml, mn.to_s, mtc.tc_]
385
+ end
386
+ @tc = _create_tc(@id, @name, @switchtype, n_members)
387
+ super(id)
388
+ end
389
+ end
390
+
391
+ def tc_
392
+ @tc
393
+ end
394
+
395
+ protected
396
+
397
+ def _create_tc(id, name, disctc, members)
398
+ begin
399
+ CORBA::Native::TypeCode.create_tc(TK_UNION, id.to_s, name.to_s, disctc.tc_, members)
400
+ rescue ::NativeException
401
+ CORBA::Exception.native2r($!)
402
+ end
403
+ end
404
+
405
+ end # Union
406
+
407
+ class Enum < IdentifiedTypeCode
408
+
409
+ def initialize(*args)
410
+ if CORBA::Native::TypeCode === args.first
411
+ @tc_ = args.first
412
+ @range = (0..@tc_.member_count).freeze
413
+ @members = @range.to_a.collect {|i| @tc_.member_name(i) }
414
+ super(@tc_.id)
415
+ else
416
+ id, name, members_ = args
417
+ raise CORBA::BAD_PARAM unless members_.is_a? ::Array
418
+ @members = members_.collect {|m| m.to_s}
419
+ @range = (0...@members.size).freeze
420
+ begin
421
+ @tc_ = CORBA::Native::TypeCode.create_tc(TK_ENUM, id.to_s, name.to_s, @members)
422
+ rescue ::NativeException
423
+ CORBA::Exception.native2r($!)
424
+ end
425
+ super(id)
426
+ end
427
+ end
428
+
429
+ end # Enum
430
+
431
+ def TypeCode.get_primitive_tc(kind)
432
+ TypeCode._wrap_native(CORBA::Native::TypeCode.get_primitive_tc(kind.to_i))
433
+ end
434
+
435
+ # final initialization
436
+ self._init()
437
+
438
+ end # TypeCode
439
+
440
+ end ## module CORBA
441
+ end ## module R2CORBA