r2corba 1.4.1-universal-java-1.7

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 (266) hide show
  1. data/CHANGES +159 -0
  2. data/LICENSE +59 -0
  3. data/LICENSE.jacorb +660 -0
  4. data/README +62 -0
  5. data/THANKS +52 -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/jacorb/lib/antlr-2.7.2.jar +0 -0
  13. data/jacorb/lib/jacorb-services.jar +0 -0
  14. data/jacorb/lib/jacorb.jar +0 -0
  15. data/jacorb/lib/slf4j-api-1.6.4.jar +0 -0
  16. data/jacorb/lib/slf4j-jdk14-1.6.4.jar +0 -0
  17. data/lib/corba/cbase/IORMap.rb +33 -0
  18. data/lib/corba/cbase/ORB.rb +231 -0
  19. data/lib/corba/cbase/Request.rb +134 -0
  20. data/lib/corba/cbase/Streams.rb +129 -0
  21. data/lib/corba/cbase/Stub.rb +19 -0
  22. data/lib/corba/cbase/Typecode.rb +441 -0
  23. data/lib/corba/cbase/Values.rb +129 -0
  24. data/lib/corba/cbase/exception.rb +66 -0
  25. data/lib/corba/cbase/poa.rb +23 -0
  26. data/lib/corba/cbase/policies.rb +78 -0
  27. data/lib/corba/cbase/post_require.rb +14 -0
  28. data/lib/corba/cbase/require.rb +28 -0
  29. data/lib/corba/cmds/base.rb +85 -0
  30. data/lib/corba/cmds/test.rb +30 -0
  31. data/lib/corba/common/Any.rb +91 -0
  32. data/lib/corba/common/IDL.rb +104 -0
  33. data/lib/corba/common/ORB.rb +368 -0
  34. data/lib/corba/common/Object.rb +208 -0
  35. data/lib/corba/common/Request.rb +20 -0
  36. data/lib/corba/common/Servant.rb +108 -0
  37. data/lib/corba/common/Struct.rb +22 -0
  38. data/lib/corba/common/Stub.rb +79 -0
  39. data/lib/corba/common/Typecode.rb +1121 -0
  40. data/lib/corba/common/Union.rb +56 -0
  41. data/lib/corba/common/Values.rb +92 -0
  42. data/lib/corba/common/const.rb +22 -0
  43. data/lib/corba/common/exception.rb +68 -0
  44. data/lib/corba/common/require.rb +27 -0
  45. data/lib/corba/common/version.rb +22 -0
  46. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  47. data/lib/corba/idl/CosNamingC.rb +461 -0
  48. data/lib/corba/idl/CosNamingS.rb +309 -0
  49. data/lib/corba/idl/IDL.rb +21 -0
  50. data/lib/corba/idl/IORTable.pidl +62 -0
  51. data/lib/corba/idl/MessagingC.rb +904 -0
  52. data/lib/corba/idl/POAC.rb +930 -0
  53. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  54. data/lib/corba/idl/r2c_orb.rb +572 -0
  55. data/lib/corba/idl/require.rb +20 -0
  56. data/lib/corba/jbase/Any.rb +273 -0
  57. data/lib/corba/jbase/IORMap.rb +36 -0
  58. data/lib/corba/jbase/ORB.rb +99 -0
  59. data/lib/corba/jbase/Object.rb +98 -0
  60. data/lib/corba/jbase/Request.rb +226 -0
  61. data/lib/corba/jbase/Servant.rb +247 -0
  62. data/lib/corba/jbase/ServerRequest.rb +128 -0
  63. data/lib/corba/jbase/Streams.rb +671 -0
  64. data/lib/corba/jbase/Stub.rb +38 -0
  65. data/lib/corba/jbase/Typecode.rb +520 -0
  66. data/lib/corba/jbase/Values.rb +173 -0
  67. data/lib/corba/jbase/exception.rb +106 -0
  68. data/lib/corba/jbase/poa.rb +229 -0
  69. data/lib/corba/jbase/policies.rb +300 -0
  70. data/lib/corba/jbase/post_require.rb +14 -0
  71. data/lib/corba/jbase/require.rb +86 -0
  72. data/lib/corba/naming.rb +14 -0
  73. data/lib/corba/naming_service.rb +15 -0
  74. data/lib/corba/poa.rb +15 -0
  75. data/lib/corba/policies.rb +18 -0
  76. data/lib/corba/require.rb +17 -0
  77. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  78. data/lib/corba/svcs/ins/ins.rb +526 -0
  79. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  80. data/lib/corba.rb +16 -0
  81. data/lib/ridlbe/ruby/config.rb +336 -0
  82. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  83. data/lib/ridlbe/ruby/require.rb +16 -0
  84. data/lib/ridlbe/ruby/walker.rb +1582 -0
  85. data/mkrf_conf_bingem.rb +101 -0
  86. data/rakelib/bin.rake +80 -0
  87. data/rakelib/bin.rb +146 -0
  88. data/rakelib/build.rake +87 -0
  89. data/rakelib/config.rake +52 -0
  90. data/rakelib/config.rb +450 -0
  91. data/rakelib/gem.rake +212 -0
  92. data/rakelib/gem.rb +146 -0
  93. data/rakelib/package.rake +26 -0
  94. data/rakelib/test.rake +23 -0
  95. data/test/BiDirectional/Test.idl +34 -0
  96. data/test/BiDirectional/client.rb +132 -0
  97. data/test/BiDirectional/run_test.rb +68 -0
  98. data/test/BiDirectional/server.ior +1 -0
  99. data/test/BiDirectional/server.rb +169 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  105. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  106. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  107. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  108. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  109. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  110. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  111. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  112. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  113. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  114. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  115. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  116. data/test/Collocation/Diamond.idl +39 -0
  117. data/test/Collocation/run_test.rb +52 -0
  118. data/test/Collocation/test.rb +195 -0
  119. data/test/Connect_Timeout/Test.idl +27 -0
  120. data/test/Connect_Timeout/client.rb +111 -0
  121. data/test/Connect_Timeout/run_test.rb +52 -0
  122. data/test/DII/Test.idl +27 -0
  123. data/test/DII/client.rb +115 -0
  124. data/test/DII/run_test.rb +69 -0
  125. data/test/DII/server.ior +1 -0
  126. data/test/DII/server.rb +95 -0
  127. data/test/DSI/Test.idl +27 -0
  128. data/test/DSI/client.rb +66 -0
  129. data/test/DSI/run_test.rb +69 -0
  130. data/test/DSI/server.ior +1 -0
  131. data/test/DSI/server.rb +106 -0
  132. data/test/Exceptions/Test.idl +48 -0
  133. data/test/Exceptions/client.rb +118 -0
  134. data/test/Exceptions/run_test.rb +69 -0
  135. data/test/Exceptions/server.ior +1 -0
  136. data/test/Exceptions/server.rb +131 -0
  137. data/test/Hello/Test.idl +27 -0
  138. data/test/Hello/client.rb +78 -0
  139. data/test/Hello/run_test.rb +71 -0
  140. data/test/Hello/server.rb +95 -0
  141. data/test/IDL_Test/Test.idl +113 -0
  142. data/test/IDL_Test/Test_inc.idl +17 -0
  143. data/test/IDL_Test/client.rb +102 -0
  144. data/test/IDL_Test/run_test.rb +69 -0
  145. data/test/IDL_Test/server.ior +1 -0
  146. data/test/IDL_Test/server.rb +99 -0
  147. data/test/IORMap/Test.idl +27 -0
  148. data/test/IORMap/client.rb +73 -0
  149. data/test/IORMap/run_test.rb +69 -0
  150. data/test/IORMap/server.ior +1 -0
  151. data/test/IORMap/server.rb +114 -0
  152. data/test/IORTable/Test.idl +27 -0
  153. data/test/IORTable/client.rb +75 -0
  154. data/test/IORTable/run_test.rb +69 -0
  155. data/test/IORTable/server.ior +0 -0
  156. data/test/IORTable/server.rb +130 -0
  157. data/test/Implicit_Conversion/Test.idl +31 -0
  158. data/test/Implicit_Conversion/client.rb +110 -0
  159. data/test/Implicit_Conversion/run_test.rb +69 -0
  160. data/test/Implicit_Conversion/server.ior +1 -0
  161. data/test/Implicit_Conversion/server.rb +99 -0
  162. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  163. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  164. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  165. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  166. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  167. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  168. data/test/Multi_Threading/Simple/Test.idl +27 -0
  169. data/test/Multi_Threading/Simple/client.rb +88 -0
  170. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  171. data/test/Multi_Threading/Simple/server.ior +1 -0
  172. data/test/Multi_Threading/Simple/server.rb +118 -0
  173. data/test/Multi_Threading/Threads/Test.idl +31 -0
  174. data/test/Multi_Threading/Threads/client.rb +80 -0
  175. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  176. data/test/Multi_Threading/Threads/server.ior +1 -0
  177. data/test/Multi_Threading/Threads/server.rb +119 -0
  178. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  179. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  180. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  181. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  182. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  183. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  184. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  185. data/test/Nil/Test.idl +27 -0
  186. data/test/Nil/run_test.rb +52 -0
  187. data/test/Nil/test.rb +78 -0
  188. data/test/OBV/AbstractInterface/client.rb +179 -0
  189. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  190. data/test/OBV/AbstractInterface/server.ior +1 -0
  191. data/test/OBV/AbstractInterface/server.rb +149 -0
  192. data/test/OBV/AbstractInterface/test.idl +53 -0
  193. data/test/OBV/Custom/OBV.idl +18 -0
  194. data/test/OBV/Custom/OBV_impl.rb +40 -0
  195. data/test/OBV/Custom/client.rb +86 -0
  196. data/test/OBV/Custom/run_test.rb +69 -0
  197. data/test/OBV/Custom/server.ior +1 -0
  198. data/test/OBV/Custom/server.rb +100 -0
  199. data/test/OBV/Simple/OBV.idl +15 -0
  200. data/test/OBV/Simple/OBV_impl.rb +26 -0
  201. data/test/OBV/Simple/client.rb +86 -0
  202. data/test/OBV/Simple/run_test.rb +69 -0
  203. data/test/OBV/Simple/server.ior +1 -0
  204. data/test/OBV/Simple/server.rb +100 -0
  205. data/test/OBV/Simple_Event/Event.idl +15 -0
  206. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  207. data/test/OBV/Simple_Event/client.rb +86 -0
  208. data/test/OBV/Simple_Event/run_test.rb +69 -0
  209. data/test/OBV/Simple_Event/server.ior +1 -0
  210. data/test/OBV/Simple_Event/server.rb +100 -0
  211. data/test/OBV/Supports/client.rb +116 -0
  212. data/test/OBV/Supports/run_test.rb +69 -0
  213. data/test/OBV/Supports/server.ior +1 -0
  214. data/test/OBV/Supports/server.rb +103 -0
  215. data/test/OBV/Supports/supports.idl +33 -0
  216. data/test/OBV/Supports/supports_impl.rb +57 -0
  217. data/test/OBV/Tree/client.rb +116 -0
  218. data/test/OBV/Tree/run_test.rb +69 -0
  219. data/test/OBV/Tree/server.ior +1 -0
  220. data/test/OBV/Tree/server.rb +117 -0
  221. data/test/OBV/Tree/test.idl +32 -0
  222. data/test/OBV/Truncatable/Extra.idl +27 -0
  223. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  224. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  225. data/test/OBV/Truncatable/client.rb +279 -0
  226. data/test/OBV/Truncatable/run_test.rb +69 -0
  227. data/test/OBV/Truncatable/server.ior +1 -0
  228. data/test/OBV/Truncatable/server.rb +89 -0
  229. data/test/OBV/ValueBox/client.rb +497 -0
  230. data/test/OBV/ValueBox/run_test.rb +69 -0
  231. data/test/OBV/ValueBox/server.ior +1 -0
  232. data/test/OBV/ValueBox/server.rb +271 -0
  233. data/test/OBV/ValueBox/valuebox.idl +101 -0
  234. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  235. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  236. data/test/OBV/ValueBox/vb_union.idl +21 -0
  237. data/test/Object/Test.idl +27 -0
  238. data/test/Object/client.rb +103 -0
  239. data/test/Object/run_test.rb +69 -0
  240. data/test/Object/server.ior +1 -0
  241. data/test/Object/server.rb +126 -0
  242. data/test/POA/Test.idl +27 -0
  243. data/test/POA/run_test.rb +52 -0
  244. data/test/POA/test.rb +112 -0
  245. data/test/Param_Test/Test.idl +182 -0
  246. data/test/Param_Test/client.rb +277 -0
  247. data/test/Param_Test/run_test.rb +69 -0
  248. data/test/Param_Test/server.ior +1 -0
  249. data/test/Param_Test/server.rb +296 -0
  250. data/test/Performance/Simple/Test.idl +27 -0
  251. data/test/Performance/Simple/client.rb +90 -0
  252. data/test/Performance/Simple/run_test.rb +69 -0
  253. data/test/Performance/Simple/server.ior +1 -0
  254. data/test/Performance/Simple/server.rb +95 -0
  255. data/test/Policies/Test.idl +27 -0
  256. data/test/Policies/run_test.rb +52 -0
  257. data/test/Policies/test.rb +144 -0
  258. data/test/Timeout/client.rb +207 -0
  259. data/test/Timeout/run_test.rb +69 -0
  260. data/test/Timeout/server.ior +1 -0
  261. data/test/Timeout/server.rb +109 -0
  262. data/test/Timeout/test.idl +19 -0
  263. data/test/lib/assert.rb +43 -0
  264. data/test/lib/test.rb +542 -0
  265. data/test/test_runner.rb +193 -0
  266. metadata +352 -0
@@ -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
@@ -0,0 +1,129 @@
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
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ module R2CORBA
15
+ module CORBA
16
+ module AbstractValueBase
17
+ def self.included(mod)
18
+ mod.module_eval do
19
+ def self.===(obj)
20
+ obj.kind_of?(self)
21
+ end
22
+ end
23
+ end
24
+ end
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
+ def self.included(mod)
102
+ mod.module_eval do
103
+ include CORBA::ValueBase unless self.include?(CORBA::ValueBase)
104
+
105
+ def marshal(os)
106
+ os.write_member(self.class._tc.content_type.resolved_tc, self.value)
107
+ end
108
+
109
+ def unmarshal(is)
110
+ self.value = is.read_member(self.class._tc.content_type.resolved_tc)
111
+ end
112
+
113
+ self.const_set(:Factory, Class.new(CORBA::Portable::BoxedValueBase::FactoryBase))
114
+ self::Factory.class_eval(%Q{
115
+ def self.value_id
116
+ #{self.name}::TRUNCATABLE_IDS.first
117
+ end
118
+
119
+ def _create_default
120
+ #{self.name}.new
121
+ end
122
+ })
123
+ end
124
+ end
125
+ end
126
+
127
+ end # Portable
128
+ end # CORBA
129
+ end # R2CORBA