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,102 @@
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('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'TestS.rb'
50
+ end
51
+
52
+ class MyHello < PortableServer::Servant
53
+ include POA::Test::Hello
54
+ include POA::Test::Hello_2
55
+
56
+ def initialize(orb)
57
+ @orb = orb
58
+ end
59
+
60
+ def get_string()
61
+ "Hello there!"
62
+ end
63
+
64
+ def get_string_2()
65
+ "Hello there! (2nd edition)"
66
+ end
67
+
68
+ def shutdown()
69
+ @orb.shutdown()
70
+ end
71
+ end #of servant MyHello
72
+
73
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
74
+
75
+ obj = orb.resolve_initial_references('RootPOA')
76
+
77
+ root_poa = PortableServer::POA._narrow(obj)
78
+
79
+ poa_man = root_poa.the_POAManager
80
+
81
+ poa_man.activate
82
+
83
+ hello_srv = MyHello.new(orb)
84
+
85
+ hello_obj = hello_srv._this()
86
+
87
+ hello_ior = orb.object_to_string(hello_obj)
88
+
89
+ open(OPTIONS[:iorfile], 'w') { |io|
90
+ io.write hello_ior
91
+ }
92
+
93
+ Signal.trap('INT') do
94
+ puts "SIGINT - shutting down ORB..."
95
+ orb.shutdown()
96
+ end
97
+
98
+ if Signal.list.has_key?('USR2')
99
+ Signal.trap('USR2', 'EXIT')
100
+ end
101
+
102
+ orb.run
data/test/Nil/Test.idl ADDED
@@ -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,52 @@
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
+ OPTIONS = {
14
+ :debug_opt => '',
15
+ :use_implement => '--use-implement'
16
+ }
17
+
18
+ require 'optparse'
19
+
20
+ ARGV.options do |opts|
21
+ script_name = File.basename($0)
22
+ opts.banner = "Usage: ruby #{script_name} [options]"
23
+
24
+ opts.separator ""
25
+
26
+ opts.on("-d",
27
+ "Run with debugging output.",
28
+ "Default: false") { OPTIONS[:debug_opt] = '--d 10' }
29
+ opts.on("--use-stubs",
30
+ "Use stubs generated by RIDL.",
31
+ "Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
32
+
33
+ opts.separator ""
34
+
35
+ opts.on("-h", "--help",
36
+ "Show this help message.") { puts opts; exit }
37
+
38
+ opts.parse!
39
+ end
40
+
41
+ require 'lib/test.rb'
42
+ include TestUtil
43
+
44
+ clt = Test.new
45
+
46
+ if !clt.run('test.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
47
+ exit(255)
48
+ end
49
+
50
+ exrc = clt.wait(400)
51
+
52
+ exit(exrc)
data/test/Nil/test.rb ADDED
@@ -0,0 +1,78 @@
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
+ :ior => 'corbaname::foo'
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 IOR",
30
+ "Set IOR.",
31
+ "Default: 'corbaname::foo'") { |v| OPTIONS[:ior]=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/poa'
49
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
50
+ else
51
+ require 'TestS.rb'
52
+ end
53
+
54
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
55
+
56
+ begin
57
+ tmp = orb.string_to_object(OPTIONS[:ior])
58
+
59
+ assert 'No Nil object reference returned on invalid IOR', CORBA.is_nil(tmp)
60
+
61
+ assert 'No Nil object returned on invalid IOR', tmp.nil?
62
+
63
+ assert 'No Nil object reference returned on #_narrow of nil', CORBA.is_nil(Test::Hello._narrow(tmp))
64
+
65
+ assert 'No Nil object returned on #_narrow of nil', Test::Hello._narrow(tmp).nil?
66
+
67
+ o = orb.resolve_initial_references('RootPOA')
68
+
69
+ rootpoa = PortableServer::POA._narrow(o)
70
+
71
+ assert_not 'Failed to resolve RootPOA', CORBA.is_nil(rootpoa) || !rootpoa.is_a?(PortableServer::POA)
72
+
73
+ assert 'Not nil returned for RootPOA.the_parent', CORBA.is_nil(rootpoa.the_parent) && rootpoa.the_parent.nil?
74
+
75
+ ensure
76
+ orb.destroy()
77
+ end
78
+
@@ -0,0 +1,179 @@
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
+ TEST_ALL = 0
18
+ TEST_STATE = 1
19
+ TEST_OPERATION = 2
20
+ TEST_EXCEPTION = 3
21
+
22
+ OPTIONS = {
23
+ :use_implement => false,
24
+ :orb_debuglevel => 0,
25
+ :iorfile => 'file://server.ior',
26
+ :test => TEST_ALL
27
+ }
28
+
29
+ ARGV.options do |opts|
30
+ script_name = File.basename($0)
31
+ opts.banner = "Usage: ruby #{script_name} [options]"
32
+
33
+ opts.separator ""
34
+
35
+ opts.on("--k IORFILE",
36
+ "Set IOR.",
37
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
38
+ opts.on("--d LVL",
39
+ "Set ORBDebugLevel value.",
40
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
41
+ opts.on("--use-implement",
42
+ "Load IDL through CORBA.implement() instead of precompiled code.",
43
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
44
+
45
+ opts.separator ""
46
+
47
+ opts.on("-h", "--help",
48
+ "Show this help message.") { puts opts; exit }
49
+
50
+ opts.parse!
51
+ end
52
+
53
+ if OPTIONS[:use_implement]
54
+ require 'corba'
55
+ CORBA.implement('test.idl', OPTIONS)
56
+ else
57
+ require 'testC'
58
+ end
59
+
60
+ def dump_node(node, indent)
61
+ return if node.nil?
62
+
63
+ if $VERBOSE
64
+ STDERR.print ' ' * indent
65
+
66
+ if node.is_a?(StringNode)
67
+ STDERR.puts("#{node} <StringNode> #{node.name}")
68
+ else
69
+ STDERR.puts("#{node} <BaseNode> #{node.name}")
70
+ end
71
+ end
72
+
73
+ dump_node(node.left, indent + 1)
74
+ dump_node(node.right, indent + 1)
75
+ end
76
+
77
+ def dump_tree(tc)
78
+ if $VERBOSE
79
+ STDERR.puts "start tree dump #{tc}"
80
+ end
81
+
82
+ dump_node(tc.root, 1)
83
+
84
+ if $VERBOSE
85
+ STDERR.puts "end tree dump #{tc}"
86
+ end
87
+ end
88
+
89
+ def test_state(abs)
90
+ raise CORBA::BAD_PARAM.new unless abs.is_a?(TreeController)
91
+ dump_tree(abs)
92
+ end
93
+
94
+ def test_operation(abs)
95
+ retval = abs.base_op('base_op')
96
+ if $VERBOSE
97
+ STDERR.puts retval
98
+ end
99
+
100
+ concrete = Foo::_narrow(abs)
101
+
102
+ retval = concrete.foo_op('foo_op')
103
+ if $VERBOSE
104
+ STDERR.puts retval
105
+ end
106
+
107
+ retval = concrete.base_op('base_op')
108
+ if $VERBOSE
109
+ STDERR.puts retval
110
+ end
111
+ end
112
+
113
+ def test_exception(abs)
114
+ begin
115
+ retval = abs.base_op('bad_name')
116
+ if $VERBOSE
117
+ STDERR.puts retval
118
+ end
119
+ rescue BadInput => ex
120
+ if $VERBOSE
121
+ STDERR.puts ex.to_s
122
+ end
123
+ end
124
+ end
125
+
126
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
127
+
128
+ begin
129
+ obj = orb.string_to_object(OPTIONS[:iorfile])
130
+
131
+ assert_not 'Object reference is nil.', CORBA::is_nil(obj)
132
+
133
+ passer = Passer._narrow(obj)
134
+
135
+ if OPTIONS[:test] == TEST_STATE || OPTIONS[:test] == TEST_ALL
136
+ # make sure valuetype factories are registered
137
+ BaseNodeFactory.get_factory(orb)
138
+ StringNodeFactory.get_factory(orb)
139
+ TreeControllerFactory.get_factory(orb)
140
+
141
+ package = passer.pass_state()
142
+ if CORBA::is_nil(package)
143
+ STDERR.puts "ERROR: passer.pass_state returned nil 'out' arg (#{package})"
144
+ end
145
+
146
+ test_state(package)
147
+ end
148
+
149
+ if OPTIONS[:test] != TEST_STATE
150
+ package = passer.pass_ops()
151
+ if CORBA::is_nil(package)
152
+ STDERR.puts "ERROR: passer.pass_ops returned nil 'out' arg (#{package})"
153
+ end
154
+ end
155
+
156
+ if OPTIONS[:test] == TEST_OPERATION || OPTIONS[:test] == TEST_ALL
157
+ test_operation(package)
158
+ end
159
+
160
+ if OPTIONS[:test] == TEST_EXCEPTION || OPTIONS[:test] == TEST_ALL
161
+ test_exception(package)
162
+ end
163
+
164
+ if OPTIONS[:test] == TEST_ALL
165
+ package = passer.pass_nil()
166
+ unless CORBA::is_nil(package)
167
+ STDERR.puts "ERROR: passer.pass_state did NOT return nil 'out' arg (#{package})"
168
+ end
169
+ end
170
+
171
+ # shutdown passer service
172
+
173
+ passer.shutdown()
174
+
175
+ ensure
176
+
177
+ orb.destroy()
178
+
179
+ end
@@ -0,0 +1,69 @@
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
+ OPTIONS = {
14
+ :debug_opt => '',
15
+ :use_implement => '--use-implement'
16
+ }
17
+
18
+ require 'optparse'
19
+
20
+ ARGV.options do |opts|
21
+ script_name = File.basename($0)
22
+ opts.banner = "Usage: ruby #{script_name} [options]"
23
+
24
+ opts.separator ""
25
+
26
+ opts.on("-d",
27
+ "Run with debugging output.",
28
+ "Default: false") { OPTIONS[:debug_opt] = '--d 10' }
29
+ opts.on("--use-stubs",
30
+ "Use stubs generated by RIDL.",
31
+ "Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
32
+
33
+ opts.separator ""
34
+
35
+ opts.on("-h", "--help",
36
+ "Show this help message.") { puts opts; exit }
37
+
38
+ opts.parse!
39
+ end
40
+
41
+ require 'lib/test.rb'
42
+ include TestUtil
43
+
44
+ ior_file = 'server.ior'
45
+
46
+ TestUtil.remove_file(ior_file)
47
+
48
+ srv = Test.new
49
+
50
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
51
+
52
+ TestUtil.wait_for_file(ior_file, 400)
53
+
54
+ clt = Test.new
55
+
56
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
57
+ srv.kill(100)
58
+ exit(255)
59
+ end
60
+
61
+ exrc = clt.wait(400)
62
+
63
+ if exrc ==0
64
+ srv.wait(400)
65
+ else
66
+ srv.wait_term(400)
67
+ end
68
+
69
+ exit(exrc)
@@ -0,0 +1 @@
1
+ IOR:010000000f00000049444c3a7061737365723a312e30000001000000000000006c000000010102000d0000003137322e31362e372e3234380000cc051b00000014010f0052535486fe04522ec80e000000000001000000010000000002000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
@@ -0,0 +1,149 @@
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('test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'testS'
50
+ end
51
+
52
+ class Foo_i < POA::Foo
53
+ def base_op (inarg)
54
+ if inarg == 'base_op'
55
+ return 'good'
56
+ end
57
+ raise BadInput.new('expected "base_op"')
58
+ end
59
+ def foo_op (inarg)
60
+ if inarg == 'foo_op'
61
+ return 'good'
62
+ end
63
+ raise BadInput.new('expected "foo_op"')
64
+ end
65
+ end
66
+
67
+ class Passer_i < POA::Passer
68
+ def initialize(orb, poa)
69
+ @orb = orb
70
+ @poa = poa
71
+ end
72
+
73
+ def pass_ops ()
74
+ foo = Foo_i.new
75
+
76
+ objid = @poa.activate_object(foo)
77
+
78
+ object = @poa.id_to_reference(objid)
79
+
80
+ [Foo::_narrow(object)]
81
+ end
82
+
83
+ def pass_state ()
84
+ tc = TreeController.new
85
+
86
+ # Create the root node.
87
+ sn = StringNode.new
88
+ sn.name = "RootNode"
89
+ tc.root = sn
90
+
91
+ # Create the left leaf.
92
+ l_dummy = StringNode.new
93
+ l_dummy.name = "LeftNode"
94
+ sn.left = l_dummy
95
+
96
+ # Create the right leaf.
97
+ r_dummy = StringNode.new
98
+ r_dummy.name = "RightNode"
99
+ sn.right = r_dummy
100
+
101
+ [tc]
102
+ end
103
+
104
+ def pass_nil ()
105
+ [nil]
106
+ end
107
+
108
+ def shutdown ()
109
+ @orb.shutdown()
110
+ end
111
+ end #of servant Passer_i
112
+
113
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
114
+
115
+ # make sure valuetype factories are registered
116
+ BaseNodeFactory.get_factory(orb)
117
+ StringNodeFactory.get_factory(orb)
118
+ TreeControllerFactory.get_factory(orb)
119
+
120
+ obj = orb.resolve_initial_references('RootPOA')
121
+
122
+ root_poa = PortableServer::POA._narrow(obj)
123
+
124
+ poa_man = root_poa.the_POAManager
125
+
126
+ poa_man.activate
127
+
128
+ passer = Passer_i.new(orb, root_poa)
129
+
130
+ obj = passer._this()
131
+
132
+ ior = orb.object_to_string(obj)
133
+
134
+ open(OPTIONS[:iorfile], 'w') { |io|
135
+ io.write ior
136
+ }
137
+
138
+ Signal.trap('INT') do
139
+ puts "SIGINT - shutting down ORB..."
140
+ orb.shutdown()
141
+ end
142
+
143
+ if Signal.list.has_key?('USR2')
144
+ Signal.trap('USR2', 'EXIT')
145
+ end
146
+
147
+ orb.run
148
+
149
+ exit 0
@@ -0,0 +1,53 @@
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
+ exception BadInput
13
+ {
14
+ string message;
15
+ };
16
+
17
+ abstract interface base
18
+ {
19
+ string base_op (in string inarg)
20
+ raises (BadInput);
21
+ };
22
+
23
+ interface foo : base
24
+ {
25
+ string foo_op (in string inarg)
26
+ raises (BadInput);
27
+ };
28
+
29
+ interface passer
30
+ {
31
+ void pass_ops (out base outarg);
32
+ void pass_state (out base outarg);
33
+ void pass_nil (out base outarg);
34
+ oneway void shutdown ();
35
+ };
36
+
37
+ valuetype BaseNode
38
+ {
39
+ public BaseNode left;
40
+ public BaseNode right;
41
+ };
42
+
43
+ valuetype StringNode : BaseNode
44
+ {
45
+ public string name;
46
+ };
47
+
48
+ valuetype TreeController supports base
49
+ {
50
+ public BaseNode root;
51
+ };
52
+
53
+