r2corba 1.4.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 (267) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +159 -0
  3. data/LICENSE +59 -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/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +33 -0
  14. data/lib/corba/cbase/ORB.rb +231 -0
  15. data/lib/corba/cbase/Request.rb +134 -0
  16. data/lib/corba/cbase/Streams.rb +129 -0
  17. data/lib/corba/cbase/Stub.rb +19 -0
  18. data/lib/corba/cbase/Typecode.rb +441 -0
  19. data/lib/corba/cbase/Values.rb +129 -0
  20. data/lib/corba/cbase/exception.rb +66 -0
  21. data/lib/corba/cbase/poa.rb +23 -0
  22. data/lib/corba/cbase/policies.rb +78 -0
  23. data/lib/corba/cbase/post_require.rb +14 -0
  24. data/lib/corba/cbase/require.rb +28 -0
  25. data/lib/corba/cmds/base.rb +85 -0
  26. data/lib/corba/cmds/test.rb +30 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +104 -0
  29. data/lib/corba/common/ORB.rb +368 -0
  30. data/lib/corba/common/Object.rb +208 -0
  31. data/lib/corba/common/Request.rb +20 -0
  32. data/lib/corba/common/Servant.rb +108 -0
  33. data/lib/corba/common/Struct.rb +22 -0
  34. data/lib/corba/common/Stub.rb +79 -0
  35. data/lib/corba/common/Typecode.rb +1121 -0
  36. data/lib/corba/common/Union.rb +56 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +22 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +27 -0
  41. data/lib/corba/common/version.rb +22 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  43. data/lib/corba/idl/CosNamingC.rb +461 -0
  44. data/lib/corba/idl/CosNamingS.rb +309 -0
  45. data/lib/corba/idl/IDL.rb +21 -0
  46. data/lib/corba/idl/IORTable.pidl +62 -0
  47. data/lib/corba/idl/IORTableC.rb +117 -0
  48. data/lib/corba/idl/MessagingC.rb +904 -0
  49. data/lib/corba/idl/POAC.rb +930 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +179 -0
  52. data/lib/corba/idl/r2c_orb.rb +572 -0
  53. data/lib/corba/idl/require.rb +20 -0
  54. data/lib/corba/jbase/Any.rb +273 -0
  55. data/lib/corba/jbase/IORMap.rb +36 -0
  56. data/lib/corba/jbase/ORB.rb +99 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +226 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +128 -0
  61. data/lib/corba/jbase/Streams.rb +671 -0
  62. data/lib/corba/jbase/Stub.rb +38 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +173 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +229 -0
  67. data/lib/corba/jbase/policies.rb +300 -0
  68. data/lib/corba/jbase/post_require.rb +14 -0
  69. data/lib/corba/jbase/require.rb +86 -0
  70. data/lib/corba/naming.rb +14 -0
  71. data/lib/corba/naming_service.rb +15 -0
  72. data/lib/corba/poa.rb +15 -0
  73. data/lib/corba/policies.rb +18 -0
  74. data/lib/corba/require.rb +17 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  76. data/lib/corba/svcs/ins/ins.rb +526 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  78. data/lib/corba.rb +16 -0
  79. data/lib/ridlbe/ruby/config.rb +336 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +16 -0
  82. data/lib/ridlbe/ruby/walker.rb +1582 -0
  83. data/mkrf_conf_bingem.rb +101 -0
  84. data/rakelib/bin.rake +80 -0
  85. data/rakelib/bin.rb +146 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +52 -0
  88. data/rakelib/config.rb +450 -0
  89. data/rakelib/ext.rake +242 -0
  90. data/rakelib/ext.rb +308 -0
  91. data/rakelib/ext_r2tao.rb +232 -0
  92. data/rakelib/gem.rake +212 -0
  93. data/rakelib/gem.rb +146 -0
  94. data/rakelib/package.rake +26 -0
  95. data/rakelib/test.rake +23 -0
  96. data/test/BiDirectional/Test.idl +34 -0
  97. data/test/BiDirectional/client.rb +132 -0
  98. data/test/BiDirectional/run_test.rb +68 -0
  99. data/test/BiDirectional/server.ior +1 -0
  100. data/test/BiDirectional/server.rb +169 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  106. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  107. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  108. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  109. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  111. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  112. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  113. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  114. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  115. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  116. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  117. data/test/Collocation/Diamond.idl +39 -0
  118. data/test/Collocation/run_test.rb +52 -0
  119. data/test/Collocation/test.rb +195 -0
  120. data/test/Connect_Timeout/Test.idl +27 -0
  121. data/test/Connect_Timeout/client.rb +111 -0
  122. data/test/Connect_Timeout/run_test.rb +52 -0
  123. data/test/DII/Test.idl +27 -0
  124. data/test/DII/client.rb +115 -0
  125. data/test/DII/run_test.rb +69 -0
  126. data/test/DII/server.ior +1 -0
  127. data/test/DII/server.rb +95 -0
  128. data/test/DSI/Test.idl +27 -0
  129. data/test/DSI/client.rb +66 -0
  130. data/test/DSI/run_test.rb +69 -0
  131. data/test/DSI/server.ior +1 -0
  132. data/test/DSI/server.rb +106 -0
  133. data/test/Exceptions/Test.idl +48 -0
  134. data/test/Exceptions/client.rb +118 -0
  135. data/test/Exceptions/run_test.rb +69 -0
  136. data/test/Exceptions/server.ior +1 -0
  137. data/test/Exceptions/server.rb +131 -0
  138. data/test/Hello/Test.idl +27 -0
  139. data/test/Hello/client.rb +78 -0
  140. data/test/Hello/run_test.rb +71 -0
  141. data/test/Hello/server.rb +95 -0
  142. data/test/IDL_Test/Test.idl +113 -0
  143. data/test/IDL_Test/Test_inc.idl +17 -0
  144. data/test/IDL_Test/client.rb +102 -0
  145. data/test/IDL_Test/run_test.rb +69 -0
  146. data/test/IDL_Test/server.ior +1 -0
  147. data/test/IDL_Test/server.rb +99 -0
  148. data/test/IORMap/Test.idl +27 -0
  149. data/test/IORMap/client.rb +73 -0
  150. data/test/IORMap/run_test.rb +69 -0
  151. data/test/IORMap/server.ior +1 -0
  152. data/test/IORMap/server.rb +114 -0
  153. data/test/IORTable/Test.idl +27 -0
  154. data/test/IORTable/client.rb +75 -0
  155. data/test/IORTable/run_test.rb +69 -0
  156. data/test/IORTable/server.ior +1 -0
  157. data/test/IORTable/server.rb +130 -0
  158. data/test/Implicit_Conversion/Test.idl +31 -0
  159. data/test/Implicit_Conversion/client.rb +110 -0
  160. data/test/Implicit_Conversion/run_test.rb +69 -0
  161. data/test/Implicit_Conversion/server.ior +1 -0
  162. data/test/Implicit_Conversion/server.rb +99 -0
  163. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  164. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  165. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  166. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  167. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  168. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  169. data/test/Multi_Threading/Simple/Test.idl +27 -0
  170. data/test/Multi_Threading/Simple/client.rb +88 -0
  171. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  172. data/test/Multi_Threading/Simple/server.ior +1 -0
  173. data/test/Multi_Threading/Simple/server.rb +118 -0
  174. data/test/Multi_Threading/Threads/Test.idl +31 -0
  175. data/test/Multi_Threading/Threads/client.rb +80 -0
  176. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  177. data/test/Multi_Threading/Threads/server.ior +1 -0
  178. data/test/Multi_Threading/Threads/server.rb +119 -0
  179. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  180. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  181. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  182. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  183. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  184. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  185. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  186. data/test/Nil/Test.idl +27 -0
  187. data/test/Nil/run_test.rb +52 -0
  188. data/test/Nil/test.rb +78 -0
  189. data/test/OBV/AbstractInterface/client.rb +179 -0
  190. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  191. data/test/OBV/AbstractInterface/server.ior +1 -0
  192. data/test/OBV/AbstractInterface/server.rb +149 -0
  193. data/test/OBV/AbstractInterface/test.idl +53 -0
  194. data/test/OBV/Custom/OBV.idl +18 -0
  195. data/test/OBV/Custom/OBV_impl.rb +40 -0
  196. data/test/OBV/Custom/client.rb +86 -0
  197. data/test/OBV/Custom/run_test.rb +69 -0
  198. data/test/OBV/Custom/server.ior +1 -0
  199. data/test/OBV/Custom/server.rb +100 -0
  200. data/test/OBV/Simple/OBV.idl +15 -0
  201. data/test/OBV/Simple/OBV_impl.rb +26 -0
  202. data/test/OBV/Simple/client.rb +86 -0
  203. data/test/OBV/Simple/run_test.rb +69 -0
  204. data/test/OBV/Simple/server.ior +1 -0
  205. data/test/OBV/Simple/server.rb +100 -0
  206. data/test/OBV/Simple_Event/Event.idl +15 -0
  207. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  208. data/test/OBV/Simple_Event/client.rb +86 -0
  209. data/test/OBV/Simple_Event/run_test.rb +69 -0
  210. data/test/OBV/Simple_Event/server.ior +1 -0
  211. data/test/OBV/Simple_Event/server.rb +100 -0
  212. data/test/OBV/Supports/client.rb +116 -0
  213. data/test/OBV/Supports/run_test.rb +69 -0
  214. data/test/OBV/Supports/server.ior +1 -0
  215. data/test/OBV/Supports/server.rb +103 -0
  216. data/test/OBV/Supports/supports.idl +33 -0
  217. data/test/OBV/Supports/supports_impl.rb +57 -0
  218. data/test/OBV/Tree/client.rb +116 -0
  219. data/test/OBV/Tree/run_test.rb +69 -0
  220. data/test/OBV/Tree/server.ior +1 -0
  221. data/test/OBV/Tree/server.rb +117 -0
  222. data/test/OBV/Tree/test.idl +32 -0
  223. data/test/OBV/Truncatable/Extra.idl +27 -0
  224. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  225. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  226. data/test/OBV/Truncatable/client.rb +279 -0
  227. data/test/OBV/Truncatable/run_test.rb +69 -0
  228. data/test/OBV/Truncatable/server.ior +1 -0
  229. data/test/OBV/Truncatable/server.rb +89 -0
  230. data/test/OBV/ValueBox/client.rb +497 -0
  231. data/test/OBV/ValueBox/run_test.rb +69 -0
  232. data/test/OBV/ValueBox/server.ior +1 -0
  233. data/test/OBV/ValueBox/server.rb +271 -0
  234. data/test/OBV/ValueBox/valuebox.idl +101 -0
  235. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  236. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  237. data/test/OBV/ValueBox/vb_union.idl +21 -0
  238. data/test/Object/Test.idl +27 -0
  239. data/test/Object/client.rb +103 -0
  240. data/test/Object/run_test.rb +69 -0
  241. data/test/Object/server.ior +1 -0
  242. data/test/Object/server.rb +126 -0
  243. data/test/POA/Test.idl +27 -0
  244. data/test/POA/run_test.rb +52 -0
  245. data/test/POA/test.rb +112 -0
  246. data/test/Param_Test/Test.idl +182 -0
  247. data/test/Param_Test/client.rb +277 -0
  248. data/test/Param_Test/run_test.rb +69 -0
  249. data/test/Param_Test/server.ior +1 -0
  250. data/test/Param_Test/server.rb +296 -0
  251. data/test/Performance/Simple/Test.idl +27 -0
  252. data/test/Performance/Simple/client.rb +90 -0
  253. data/test/Performance/Simple/run_test.rb +69 -0
  254. data/test/Performance/Simple/server.ior +1 -0
  255. data/test/Performance/Simple/server.rb +95 -0
  256. data/test/Policies/Test.idl +27 -0
  257. data/test/Policies/run_test.rb +52 -0
  258. data/test/Policies/test.rb +144 -0
  259. data/test/Timeout/client.rb +207 -0
  260. data/test/Timeout/run_test.rb +69 -0
  261. data/test/Timeout/server.ior +1 -0
  262. data/test/Timeout/server.rb +109 -0
  263. data/test/Timeout/test.idl +19 -0
  264. data/test/lib/assert.rb +43 -0
  265. data/test/lib/test.rb +542 -0
  266. data/test/test_runner.rb +193 -0
  267. metadata +342 -0
@@ -0,0 +1,271 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'optparse'
14
+
15
+ OPTIONS = {
16
+ :use_implement => false,
17
+ :orb_debuglevel => 0,
18
+ :iorfile => 'server.ior'
19
+ }
20
+
21
+ ARGV.options do |opts|
22
+ script_name = File.basename($0)
23
+ opts.banner = "Usage: ruby #{script_name} [options]"
24
+
25
+ opts.separator ""
26
+
27
+ opts.on("--o IORFILE",
28
+ "Set IOR filename.",
29
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
30
+ opts.on("--d LVL",
31
+ "Set ORBDebugLevel value.",
32
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
33
+ opts.on("--use-implement",
34
+ "Load IDL through CORBA.implement() instead of precompiled code.",
35
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
36
+
37
+ opts.separator ""
38
+
39
+ opts.on("-h", "--help",
40
+ "Show this help message.") { puts opts; exit }
41
+
42
+ opts.parse!
43
+ end
44
+
45
+ if OPTIONS[:use_implement]
46
+ require 'corba/poa'
47
+ CORBA.implement('valuebox.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'valueboxS'
50
+ end
51
+
52
+ class Test_impl < POA::Test
53
+ def initialize(orb)
54
+ @orb = orb
55
+ end
56
+
57
+ def ros(s)
58
+ s.slice(s.size-1,1) << s.slice(0,s.size-1)
59
+ end
60
+
61
+ def basic_op1(p1, p2)
62
+ p3 = p2 * 5
63
+ p2 = p2 * 3
64
+ retval = p1.nil?() ? nil : p1 * 3
65
+ [retval, p2, p3]
66
+ end
67
+
68
+ def basic_op2(p1, p2)
69
+ p3 = p2 * 5
70
+ p2 = p2 * 3
71
+ retval = p1 * 3
72
+ [retval, p2, p3]
73
+ end
74
+
75
+ def basic_op3(p1, p2)
76
+ p3 = p2 * 5
77
+ p2 = p2 * 3
78
+ retval = p1 * 3
79
+ [retval, p2, p3]
80
+ end
81
+
82
+ def string_op1(p1, p2)
83
+ p2 = ros(p2)
84
+ p3 = p2
85
+ retval = ros(p1)
86
+ [retval, p2, p3]
87
+ end
88
+
89
+ def string_op2(p1, p2)
90
+ p2 = ros(p2)
91
+ p3 = p2
92
+ retval = ros(p1)
93
+ [retval, p2, p3]
94
+ end
95
+
96
+ def seq_op1(p1, p2)
97
+ p3 = p2.collect {|e| e*5}
98
+ p2.collect! {|e| e*3}
99
+ retval = p1
100
+ [retval, p2, p3]
101
+ end
102
+
103
+ def seq_op2(p1, p2)
104
+ p3 = p2.collect {|e| e*5}
105
+ p2.collect! {|e| e*3}
106
+ [p2, p3]
107
+ end
108
+
109
+ def struct_op1(p1, p2)
110
+ p3 = Fixed_Struct1.new(p2.l*5,
111
+ Fixed_Struct1::Bstruct.new(p2.abstruct.s1*5,
112
+ p2.abstruct.s2*5))
113
+ p2.l = p2.l*3
114
+ p2.abstruct.s1 = p2.abstruct.s1*3
115
+ p2.abstruct.s2 = p2.abstruct.s2*3
116
+
117
+ retval = p1
118
+ [retval, p2, p3]
119
+ end
120
+
121
+ def struct_op2(p1, p2)
122
+ p3 = p1
123
+
124
+ p2.l = p2.l*3
125
+ p2.abstruct.s1 = p2.abstruct.s1*3
126
+ p2.abstruct.s2 = p2.abstruct.s2*3
127
+
128
+ [p2, p3]
129
+ end
130
+
131
+ def struct_op3(p1, p2)
132
+ p2.l = p2.l * 3
133
+ p2.str = ros(p2.str)
134
+
135
+ p3 = Variable_Struct1.new(p2.l, p2.str)
136
+
137
+ retval = p1
138
+ [retval, p2, p3]
139
+ end
140
+
141
+ def struct_op4(p1, p2)
142
+ p3 = p1
143
+ p2.l = p2.l * 3
144
+ p2.str = ros(p2.str)
145
+
146
+ [p2, p3]
147
+ end
148
+
149
+ def array_op1(p1, p2)
150
+ p2.collect! {|e| e*3}
151
+ p3 = p2
152
+ retval = p1
153
+ [retval, p2, p3]
154
+ end
155
+
156
+ def array_op2(p1, p2)
157
+ p2.collect! {|e| e*3}
158
+ p3 = p1
159
+ [p2, p3]
160
+ end
161
+
162
+ def array_op3(p1, p2)
163
+ p2.collect! {|e| ros(e)}
164
+ p3 = p2
165
+ retval = p1
166
+ [retval, p2, p3]
167
+ end
168
+
169
+ def array_op4(p1, p2)
170
+ p2.collect! {|e| ros(e)}
171
+ p3 = p1
172
+ [p2, p3]
173
+ end
174
+
175
+ def union_op1(p1, p2)
176
+ p3 = VBfixed_union1.new(Fixed_Union1.new)
177
+ retval = VBfixed_union1.new(Fixed_Union1.new)
178
+ case p1._disc
179
+ when 1
180
+ p3.value.m1 = p1.m1*3
181
+ retval.value.m1 = p1.m1*3
182
+ when 2
183
+ p3.value.m2 = p1.m2*3
184
+ retval.value.m2 = p1.m2*3
185
+ end
186
+ case p2._disc
187
+ when 1
188
+ p2.m1 = p2.m1*3
189
+ when 2
190
+ p2.m2 = p2.m2*3
191
+ end
192
+ [retval, p2, p3]
193
+ end
194
+
195
+ def union_op2(p1, p2)
196
+ p3 = p1
197
+ case p2._disc
198
+ when 1
199
+ p2.m1 = p2.m1*3
200
+ when 2
201
+ p2.m2 = p2.m2*3
202
+ end
203
+ [p2, p3]
204
+ end
205
+
206
+ def union_op3(p1, p2)
207
+ p3 = VBvariable_union1.new(Variable_Union1.new)
208
+ retval = VBvariable_union1.new(Variable_Union1.new)
209
+ case p1._disc
210
+ when 1
211
+ p3.value.m1 = p1.m1
212
+ retval.value.m1 = p1.m1
213
+ when 2
214
+ p3.value.m2 = p1.m2
215
+ retval.value.m2 = p1.m2
216
+ end
217
+ case p2._disc
218
+ when 1
219
+ p2.m1 = p2.m1*3
220
+ when 2
221
+ p2.m2 = ros(p2.m2)
222
+ end
223
+ [retval, p2, p3]
224
+ end
225
+
226
+ def union_op4(p1, p2)
227
+ p3 = p1
228
+ case p2._disc
229
+ when 1
230
+ p2.m1 = p2.m1*3
231
+ when 2
232
+ p2.m2 = ros(p2.m2)
233
+ end
234
+ [p2, p3]
235
+ end
236
+
237
+ def shutdown()
238
+ @orb.shutdown()
239
+ end
240
+ end #of servant Test_impl
241
+
242
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
243
+
244
+ obj = orb.resolve_initial_references('RootPOA')
245
+
246
+ root_poa = PortableServer::POA._narrow(obj)
247
+
248
+ poa_man = root_poa.the_POAManager
249
+
250
+ poa_man.activate
251
+
252
+ test_srv = Test_impl.new(orb)
253
+
254
+ test_obj = test_srv._this()
255
+
256
+ ior = orb.object_to_string(test_obj)
257
+
258
+ open(OPTIONS[:iorfile], 'w') { |io|
259
+ io.write ior
260
+ }
261
+
262
+ Signal.trap('INT') do
263
+ puts "SIGINT - shutting down ORB..."
264
+ orb.shutdown()
265
+ end
266
+
267
+ if Signal.list.has_key?('USR2')
268
+ Signal.trap('USR2', 'EXIT')
269
+ end
270
+
271
+ orb.run
@@ -0,0 +1,101 @@
1
+
2
+ #include "vb_basic.idl"
3
+ #include "vb_struct.idl"
4
+ #include "vb_union.idl"
5
+
6
+ //
7
+ // Boxed Strings
8
+ //
9
+ valuetype VBstring string;
10
+ valuetype VBwstring wstring;
11
+
12
+ //
13
+ // Boxed Sequences
14
+ //
15
+ typedef sequence<long> TDseqlong;
16
+ valuetype VBseqlong TDseqlong;
17
+
18
+ //
19
+ // Boxed array ("fixed")
20
+ //
21
+ typedef long LongArray[3];
22
+ valuetype VBlongarray LongArray;
23
+
24
+ //
25
+ // Boxed array ("variable")
26
+ //
27
+ typedef string StringArray[2];
28
+ valuetype VBstringarray StringArray;
29
+
30
+ interface Test
31
+ {
32
+ // Boxed basic types
33
+ VBlong basic_op1(in VBlong p1, inout VBlong p2, out VBlong p3);
34
+
35
+ vb_basic::M_VBlong basic_op2(in vb_basic::M_VBlong p1,
36
+ inout vb_basic::M_VBlong p2,
37
+ out vb_basic::M_VBlong p3);
38
+
39
+ long basic_op3 (in long p1, inout long p2, out long p3);
40
+
41
+ // Boxed string
42
+ VBstring string_op1(in VBstring p1, inout VBstring p2, out VBstring p3);
43
+
44
+ string string_op2(in string p1, inout string p2, out string p3);
45
+
46
+ // Boxed sequence
47
+ VBseqlong seq_op1(in VBseqlong p1, inout VBseqlong p2,
48
+ out VBseqlong p3);
49
+
50
+ void seq_op2(in TDseqlong p1, inout TDseqlong p2, out TDseqlong p3);
51
+
52
+ // Boxed struct
53
+ VBfixed_struct1 struct_op1(in VBfixed_struct1 p1,
54
+ inout VBfixed_struct1 p2,
55
+ out VBfixed_struct1 p3);
56
+
57
+ void struct_op2(in Fixed_Struct1 p1,
58
+ inout Fixed_Struct1 p2,
59
+ out Fixed_Struct1 p3);
60
+
61
+ VBvariable_struct1 struct_op3(in VBvariable_struct1 p1,
62
+ inout VBvariable_struct1 p2,
63
+ out VBvariable_struct1 p3);
64
+
65
+ void struct_op4(in Variable_Struct1 p1,
66
+ inout Variable_Struct1 p2,
67
+ out Variable_Struct1 p3);
68
+
69
+ // Boxed array (fixed)
70
+ VBlongarray array_op1 (in VBlongarray p1, inout VBlongarray p2,
71
+ out VBlongarray p3);
72
+
73
+ void array_op2 (in LongArray p1, inout LongArray p2, out LongArray p3);
74
+
75
+ // Boxed array (variable)
76
+ VBstringarray array_op3 (in VBstringarray p1, inout VBstringarray p2,
77
+ out VBstringarray p3);
78
+
79
+ void array_op4 (in StringArray p1, inout StringArray p2,
80
+ out StringArray p3);
81
+
82
+ // Boxed union
83
+ VBfixed_union1 union_op1(in VBfixed_union1 p1,
84
+ inout VBfixed_union1 p2,
85
+ out VBfixed_union1 p3);
86
+
87
+ void union_op2(in Fixed_Union1 p1,
88
+ inout Fixed_Union1 p2,
89
+ out Fixed_Union1 p3);
90
+
91
+ VBvariable_union1 union_op3(in VBvariable_union1 p1,
92
+ inout VBvariable_union1 p2,
93
+ out VBvariable_union1 p3);
94
+
95
+ void union_op4(in Variable_Union1 p1,
96
+ inout Variable_Union1 p2,
97
+ out Variable_Union1 p3);
98
+
99
+ // Shutdown the remote ORB
100
+ oneway void shutdown ();
101
+ };
@@ -0,0 +1,75 @@
1
+
2
+ //=========================================================================
3
+ // Valuebox of basic types
4
+ //=========================================================================
5
+
6
+ // Valuebox of all basic types defined at outermost scope:
7
+
8
+ enum Color { red, orange, yellow, green, blue, indigo, violet };
9
+
10
+ valuetype VBshort short;
11
+ valuetype VBlong long;
12
+ valuetype VBlonglong long long;
13
+ valuetype VBushort unsigned short;
14
+ valuetype VBulong unsigned long;
15
+ valuetype VBulonglong unsigned long long;
16
+ valuetype VBchar char;
17
+ valuetype VBwchar wchar;
18
+ valuetype VBboolean boolean;
19
+ valuetype VBoctet octet;
20
+ valuetype VBfloat float;
21
+ valuetype VBdouble double;
22
+ valuetype VBlongdouble long double;
23
+ valuetype VBenum Color;
24
+
25
+ // Typedefs of basic types
26
+ typedef short TDshort;
27
+ typedef long TDlong;
28
+ typedef long long TDlonglong;
29
+ typedef unsigned short TDushort;
30
+ typedef unsigned long TDulong;
31
+ typedef unsigned long long TDulonglong;
32
+ typedef char TDchar;
33
+ typedef wchar TDwchar;
34
+ typedef boolean TDboolean;
35
+ typedef octet TDoctet;
36
+ typedef float TDfloat;
37
+ typedef double TDdouble;
38
+ typedef long double TDlongdouble;
39
+ typedef Color TDenum;
40
+
41
+ // Value box of typedef of basic types
42
+ valuetype VBTDshort TDshort;
43
+ valuetype VBTDlong TDlong;
44
+ valuetype VBTDlonglong TDlonglong;
45
+ valuetype VBTDushort TDushort;
46
+ valuetype VBTDulong TDulong;
47
+ valuetype VBTDulonglong TDulonglong;
48
+ valuetype VBTDchar TDchar;
49
+ valuetype VBTDwchar TDwchar;
50
+ valuetype VBTDboolean TDboolean;
51
+ valuetype VBTDoctet TDoctet;
52
+ valuetype VBTDfloat TDfloat;
53
+ valuetype VBTDdouble TDdouble;
54
+ valuetype VBTDlongdouble TDlongdouble;
55
+ valuetype VBTDenum TDenum;
56
+
57
+ // Any and typedef of any
58
+ valuetype VBany any;
59
+ typedef any TDany;
60
+ valuetype VBTDany TDany;
61
+
62
+ module vb_basic
63
+ {
64
+ // Valuebox defined within a module scope
65
+ valuetype M_VBlong long;
66
+
67
+ interface Test
68
+ {
69
+ M_VBlong basic_op1(in M_VBlong p1, inout M_VBlong p2,
70
+ out M_VBlong p3);
71
+ };
72
+ };
73
+
74
+ // Valuebox of an interface
75
+ valuetype VBinterface vb_basic::Test;
@@ -0,0 +1,68 @@
1
+
2
+ //=========================================================================
3
+ // Valuebox of structs
4
+ //=========================================================================
5
+
6
+ // "Fixed" struct
7
+ struct Fixed_Struct1
8
+ { long l;
9
+ struct Bstruct {short s1; short s2; } abstruct;
10
+ };
11
+
12
+ // "Variable" struct
13
+ struct Variable_Struct1
14
+ { long l;
15
+ string str;
16
+ };
17
+
18
+ typedef Variable_Struct1 TDvariable_struct1;
19
+
20
+ interface InterfaceFwd;
21
+
22
+ interface Interface1
23
+ {
24
+ long getval(in short s);
25
+ };
26
+
27
+ enum Pet { dog, cat, fish, rhinoceros };
28
+ typedef short short_array[15];
29
+
30
+ union Union1 switch(long)
31
+ {
32
+ case 1: long m1;
33
+ case 2: Pet m2;
34
+ };
35
+
36
+ typedef sequence<long> LongSeq;
37
+ typedef octet oct_array[10];
38
+ typedef sequence <Pet> PetSeq;
39
+ // Use all possible types inside a struct
40
+ struct Variable_Struct2
41
+ {
42
+ long len; // predefined type
43
+ any whatever; // predefined type
44
+ Pet apet; // enum
45
+ oct_array octet_array; // array
46
+ short_array td_array; // typedefed array
47
+ Interface1 intf1; // interface
48
+ InterfaceFwd intf2; // interface fwd
49
+ string str; // string
50
+ wstring wstr; // string
51
+ LongSeq ls; // typedef sequence
52
+ PetSeq sqq; // sequence
53
+ struct NestedStruct1 { short s; string str2; } ns1; // structure
54
+ Variable_Struct1 NestedStruct2;
55
+ TDvariable_struct1 NestedStruct3;
56
+ Union1 un; // union
57
+ };
58
+
59
+ valuetype VBfixed_struct1 Fixed_Struct1;
60
+
61
+ valuetype VBvariable_struct1 Variable_Struct1;
62
+
63
+ valuetype VBvariable_struct2 Variable_Struct2;
64
+
65
+ interface InterfaceFwd
66
+ {
67
+ long getval(in short s);
68
+ };
@@ -0,0 +1,21 @@
1
+
2
+ //=========================================================================
3
+ // Valuebox of unions
4
+ //=========================================================================
5
+
6
+ union Fixed_Union1 switch(long)
7
+ {
8
+ case 1: long m1;
9
+ case 2: short m2;
10
+ };
11
+
12
+ union Variable_Union1 switch(long)
13
+ {
14
+ case 1: long m1;
15
+ case 2: string m2;
16
+ };
17
+
18
+
19
+ valuetype VBfixed_union1 Fixed_Union1;
20
+
21
+ valuetype VBvariable_union1 Variable_Union1;
@@ -0,0 +1,27 @@
1
+ /*--------------------------------------------------------------------
2
+ * Author: Martin Corino
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the R2CORBA LICENSE which is
6
+ * included with this program.
7
+ *
8
+ * Copyright (c) Remedy IT Expertise BV
9
+ * Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ *--------------------------------------------------------------------*/
11
+
12
+ /// Put the interfaces in a module, to avoid global namespace pollution
13
+ module Test
14
+ {
15
+ /// A very simple interface
16
+ interface Hello
17
+ {
18
+ /// Return a simple string
19
+ string get_string ();
20
+
21
+ /// A method to shutdown the ORB
22
+ /**
23
+ * This method is used to simplify the test shutdown process
24
+ */
25
+ oneway void shutdown ();
26
+ };
27
+ };
@@ -0,0 +1,103 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'optparse'
14
+ require 'lib/assert.rb'
15
+ include TestUtil::Assertions
16
+
17
+ OPTIONS = {
18
+ :use_implement => false,
19
+ :orb_debuglevel => 0,
20
+ :iorfile => 'file://server.ior'
21
+ }
22
+
23
+ ARGV.options do |opts|
24
+ script_name = File.basename($0)
25
+ opts.banner = "Usage: ruby #{script_name} [options]"
26
+
27
+ opts.separator ""
28
+
29
+ opts.on("--k IORFILE",
30
+ "Set IOR.",
31
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
32
+ opts.on("--d LVL",
33
+ "Set ORBDebugLevel value.",
34
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
35
+ opts.on("--use-implement",
36
+ "Load IDL through CORBA.implement() instead of precompiled code.",
37
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
38
+
39
+ opts.separator ""
40
+
41
+ opts.on("-h", "--help",
42
+ "Show this help message.") { puts opts; exit }
43
+
44
+ opts.parse!
45
+ end
46
+
47
+ if OPTIONS[:use_implement]
48
+ require 'corba'
49
+ CORBA.implement('Test.idl', OPTIONS)
50
+ else
51
+ require 'TestC.rb'
52
+ end
53
+
54
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
55
+
56
+ begin
57
+
58
+ obj = orb.string_to_object(OPTIONS[:iorfile])
59
+
60
+ id = obj._repository_id # fetches id remotely as obj has not been narrowed
61
+ # yet and thus there is no type known yet
62
+
63
+ assert 'incorrect repository id returned (1)', id == Test::Hello._tc.id
64
+
65
+ STDERR.puts "Got Object reference for [#{id}]"
66
+
67
+ hello_obj = Test::Hello._narrow(obj)
68
+
69
+ id = obj._repository_id # returns locally known id as obj has been narrowed
70
+ # and thus type is known
71
+
72
+ assert 'incorrect repository id returned (2)', id == Test::Hello._tc.id
73
+
74
+ the_string = hello_obj.get_string()
75
+
76
+ puts "string returned <#{the_string}>"
77
+
78
+ obj = hello_obj._get_component
79
+
80
+ id = obj._repository_id # fetches id remotely which is doctored by
81
+ # overridden servant method
82
+
83
+ assert 'original repository id returned', id != Test::Hello._tc.id
84
+
85
+ STDERR.puts "Got Object reference for [#{id}]"
86
+
87
+ # since _is_a? is also overridden we still get a match on the original id
88
+ assert '_is_a? returned FALSE', obj._is_a?(Test::Hello._tc.id)
89
+
90
+ hello2_obj = Test::Hello._narrow(obj)
91
+
92
+ id = obj._repository_id # returns locally known id as obj has been narrowed
93
+ # and thus type is known
94
+
95
+ assert 'incorrect repository id returned (3)', id == Test::Hello._tc.id
96
+
97
+ hello2_obj.shutdown()
98
+
99
+ ensure
100
+
101
+ orb.destroy()
102
+
103
+ end