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,118 @@
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 < POA::Test::Hello
53
+ def initialize(orb)
54
+ @orb = orb
55
+ end
56
+
57
+ def get_string()
58
+ "[#{Thread.current}] Hello there!"
59
+ end
60
+
61
+ def shutdown()
62
+ @orb.shutdown()
63
+ end
64
+ end #of servant MyHello
65
+
66
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
67
+
68
+ obj = orb.resolve_initial_references('RootPOA')
69
+
70
+ root_poa = PortableServer::POA._narrow(obj)
71
+
72
+ poa_man = root_poa.the_POAManager
73
+
74
+ poa_man.activate
75
+
76
+ hello_srv = MyHello.new(orb)
77
+
78
+ hello_obj = hello_srv._this()
79
+
80
+ hello_ior = orb.object_to_string(hello_obj)
81
+
82
+ open(OPTIONS[:iorfile], 'w') { |io|
83
+ io.write hello_ior
84
+ }
85
+
86
+ Signal.trap('INT') do
87
+ puts "SIGINT - shutting down ORB..."
88
+ orb.shutdown()
89
+ end
90
+
91
+ if Signal.list.has_key?('USR2')
92
+ Signal.trap('USR2', 'EXIT')
93
+ end
94
+
95
+ if defined?(JRUBY_VERSION)
96
+ # JRuby based jR2CORBA behaves slightly different from MRI based R2CORBA
97
+ # because the underlying ORB (JacORB) uses an implicit threadpool based
98
+ # thread-per-request model; so running multiple threads with ORB#run
99
+ # does not bring anything here
100
+ orb.run
101
+ else
102
+ # TAO, the underlying ORB implementation for MRI base R2CORBA has support
103
+ # for several multithreading options; the simplest way to set up multithreaded
104
+ # request processing is starting ORB#run in multiple threads which results
105
+ # in each of those threads being 're-used' as request processing threads.
106
+ # NOTE: as MRI Ruby 1.8 threads are 'green' threads there is only 1 native
107
+ # thread from which the TAO ORB is run however many Ruby threads are
108
+ # started; the ORB#run method for this platform implements a special
109
+ # cooperative ORB event loop allowing multiple Ruby threads executing
110
+ # ORB#run to operate in parallel.
111
+ orb_trds = (0..1).collect do
112
+ Thread.new() do
113
+ orb.run
114
+ end
115
+ end
116
+
117
+ orb_trds.each {|t| t.join }
118
+ end
@@ -0,0 +1,31 @@
1
+ //
2
+ // $Id: Test.idl 199 2011-01-14 16:53:02Z martin $
3
+ //
4
+
5
+ /// Put the interfaces in a module, to avoid global namespace pollution
6
+ module Test
7
+ {
8
+ /// A very simple interface
9
+ interface Hello
10
+ {
11
+ /// Return a simple string
12
+ string get_string ();
13
+
14
+ /// A method to shutdown the ORB
15
+ /**
16
+ * This method is used to simplify the test shutdown process
17
+ */
18
+ oneway void shutdown ();
19
+ };
20
+
21
+ interface Watchdog
22
+ {
23
+ void ping( in string name );
24
+
25
+ /// A method to shutdown the ORB
26
+ /**
27
+ * This method is used to simplify the test shutdown process
28
+ */
29
+ oneway void shutdown ();
30
+ };
31
+ };
@@ -0,0 +1,80 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # $Id: client.rb 279 2011-02-08 09:53:28Z martin $
6
+ #
7
+ # This program is free software; you can redistribute it and/or
8
+ # modify it under the terms of the R2CORBA LICENSE which is
9
+ # included with this program.
10
+ #
11
+ # Copyright (c) Remedy IT Expertise BV
12
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
13
+ #--------------------------------------------------------------------
14
+
15
+ require 'optparse'
16
+ require 'lib/assert.rb'
17
+ include TestUtil::Assertions
18
+
19
+ OPTIONS = {
20
+ :use_implement => false,
21
+ :orb_debuglevel => 0,
22
+ :iorfile => 'file://server.ior'
23
+ }
24
+
25
+ ARGV.options do |opts|
26
+ script_name = File.basename($0)
27
+ opts.banner = "Usage: ruby #{script_name} [options]"
28
+
29
+ opts.separator ""
30
+
31
+ opts.on("--k IORFILE",
32
+ "Set IOR.",
33
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
34
+ opts.on("--d LVL",
35
+ "Set ORBDebugLevel value.",
36
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
37
+ opts.on("--use-implement",
38
+ "Load IDL through CORBA.implement() instead of precompiled code.",
39
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
40
+
41
+ opts.separator ""
42
+
43
+ opts.on("-h", "--help",
44
+ "Show this help message.") { puts opts; exit }
45
+
46
+ opts.parse!
47
+ end
48
+
49
+ if OPTIONS[:use_implement]
50
+ require 'corba'
51
+ CORBA.implement('Test.idl', OPTIONS)
52
+ else
53
+ require 'TestC.rb'
54
+ end
55
+
56
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
57
+
58
+ begin
59
+
60
+ obj = orb.string_to_object(OPTIONS[:iorfile])
61
+
62
+ hello_obj = Test::Hello._narrow(obj)
63
+
64
+ hello_strings = (1..10000).map {hello_obj.get_string}
65
+
66
+ puts "Client - got #{hello_strings.length} strings."
67
+
68
+ hello_obj.shutdown()
69
+
70
+ assert_not "ERROR: Object is reported nil!", CORBA::is_nil(hello_obj)
71
+
72
+ hello_obj._free_ref()
73
+
74
+ assert "ERROR: Object is reported non-nil!", CORBA::is_nil(hello_obj)
75
+
76
+ ensure
77
+
78
+ orb.destroy()
79
+
80
+ end
@@ -0,0 +1,76 @@
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
+ watchdog_ior_file = 'watchdog.ior'
46
+
47
+ TestUtil.remove_file(ior_file)
48
+ TestUtil.remove_file(watchdog_ior_file)
49
+
50
+ wdog = Test.new
51
+ srv = Test.new
52
+
53
+ exit(255) if !wdog.run('watchdog.rb', "--o #{watchdog_ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
54
+
55
+ TestUtil.wait_for_file(watchdog_ior_file, 400)
56
+
57
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
58
+
59
+ TestUtil.wait_for_file(ior_file, 400)
60
+
61
+ clt = Test.new
62
+
63
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
64
+ srv.kill(100)
65
+ exit(255)
66
+ end
67
+
68
+ exrc = clt.wait(400)
69
+
70
+ if exrc ==0
71
+ srv.wait(400)
72
+ else
73
+ srv.wait_term(400)
74
+ end
75
+
76
+ exit(exrc)
@@ -0,0 +1 @@
1
+ IOR:010000001300000049444c3a546573742f48656c6c6f3a312e30000001000000000000006c000000010102000d0000003137322e31362e372e3234380000bc051b00000014010f0052535475fe04529ef70a000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
@@ -0,0 +1,119 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # $Id: server.rb 279 2011-02-08 09:53:28Z martin $
6
+ #
7
+ # This program is free software; you can redistribute it and/or
8
+ # modify it under the terms of the R2CORBA LICENSE which is
9
+ # included with this program.
10
+ #
11
+ # Copyright (c) Remedy IT Expertise BV
12
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
13
+ #--------------------------------------------------------------------
14
+
15
+ require 'optparse'
16
+
17
+ OPTIONS = {
18
+ :use_implement => false,
19
+ :orb_debuglevel => 0,
20
+ :iorfile => 'server.ior',
21
+ :watchdog_iorfile => 'file://watchdog.ior'
22
+ }
23
+
24
+ ARGV.options do |opts|
25
+ script_name = File.basename($0)
26
+ opts.banner = "Usage: ruby #{script_name} [options]"
27
+
28
+ opts.separator ""
29
+
30
+ opts.on("--o IORFILE",
31
+ "Set IOR filename.",
32
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
33
+ opts.on("--w IORFILE",
34
+ "Set Watchdog IOR filename.",
35
+ "Default: 'file://watchdog.ior'") { |v| OPTIONS[:watchdog_iorfile]=v }
36
+ opts.on("--d LVL",
37
+ "Set ORBDebugLevel value.",
38
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
39
+ opts.on("--use-implement",
40
+ "Load IDL through CORBA.implement() instead of precompiled code.",
41
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
42
+
43
+ opts.separator ""
44
+
45
+ opts.on("-h", "--help",
46
+ "Show this help message.") { puts opts; exit }
47
+
48
+ opts.parse!
49
+ end
50
+
51
+ if OPTIONS[:use_implement]
52
+ require 'corba/poa'
53
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
54
+ else
55
+ require 'TestS.rb'
56
+ end
57
+
58
+ class MyHello < POA::Test::Hello
59
+ def initialize(orb, watchdog)
60
+ @orb = orb
61
+ @watchdog = watchdog
62
+ @count = 0
63
+ @stop = false
64
+ @wdt = Thread.new do
65
+ while !@stop
66
+ @watchdog.ping(self.object_id.to_s)
67
+ @count += 1
68
+ sleep 0.001
69
+ end
70
+ end
71
+ end
72
+
73
+ def get_string()
74
+ return 'Hello, world!'
75
+ end
76
+
77
+ def shutdown()
78
+ @stop = true
79
+ @watchdog.shutdown()
80
+ puts %Q{Server - pinged watchdog #{@count} times.}
81
+ @wdt.join
82
+ @orb.shutdown()
83
+ end
84
+ end #of servant MyHello
85
+
86
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
87
+
88
+ obj = orb.resolve_initial_references('RootPOA')
89
+
90
+ root_poa = PortableServer::POA._narrow(obj)
91
+
92
+ poa_man = root_poa.the_POAManager
93
+
94
+ poa_man.activate
95
+
96
+ obj = orb.string_to_object(OPTIONS[:watchdog_iorfile])
97
+
98
+ watchdog_obj = Test::Watchdog._narrow(obj)
99
+
100
+ hello_srv = MyHello.new(orb, watchdog_obj)
101
+
102
+ hello_obj = hello_srv._this()
103
+
104
+ hello_ior = orb.object_to_string(hello_obj)
105
+
106
+ open(OPTIONS[:iorfile], 'w') { |io|
107
+ io.write hello_ior
108
+ }
109
+
110
+ Signal.trap('INT') do
111
+ puts "SIGINT - shutting down ORB..."
112
+ orb.shutdown()
113
+ end
114
+
115
+ if Signal.list.has_key?('USR2')
116
+ Signal.trap('USR2', 'EXIT')
117
+ end
118
+
119
+ orb.run
@@ -0,0 +1 @@
1
+ IOR:010000001600000049444c3a546573742f5761746368646f673a312e3000000001000000000000006c000000010102000d0000003137322e31362e372e3234380000b9051b00000014010f0052535474fe0452f36f06000000000001000000010000000002000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
@@ -0,0 +1,87 @@
1
+ # Runs a do-nothing Watchdog instance
2
+
3
+ require 'optparse'
4
+
5
+ OPTIONS = {
6
+ :use_implement => false,
7
+ :orb_debuglevel => 0,
8
+ :iorfile => 'watchdog.ior'
9
+ }
10
+
11
+ ARGV.options do |opts|
12
+ script_name = File.basename($0)
13
+ opts.banner = "Usage: ruby #{script_name} [options]"
14
+
15
+ opts.separator ""
16
+
17
+ opts.on("--o IORFILE",
18
+ "Set IOR filename.",
19
+ "Default: 'watchdog.ior'") { |v| OPTIONS[:iorfile]=v }
20
+ opts.on("--d LVL",
21
+ "Set ORBDebugLevel value.",
22
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
23
+ opts.on("--use-implement",
24
+ "Load IDL through CORBA.implement() instead of precompiled code.",
25
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
26
+
27
+ opts.separator ""
28
+
29
+ opts.on("-h", "--help",
30
+ "Show this help message.") { puts opts; exit }
31
+
32
+ opts.parse!
33
+ end
34
+
35
+ if OPTIONS[:use_implement]
36
+ require 'corba/poa'
37
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
38
+ else
39
+ require 'TestS.rb'
40
+ end
41
+
42
+ class MyWatchdog < POA::Test::Watchdog
43
+ def initialize(orb)
44
+ @orb = orb
45
+ @count = 0
46
+ end
47
+
48
+ def ping(name)
49
+ @count += 1
50
+ end
51
+
52
+ def shutdown()
53
+ puts %Q{Watchdog - received #{@count} pings}
54
+ @orb.shutdown()
55
+ end
56
+ end #of servant MyWatchdog
57
+
58
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
59
+
60
+ obj = orb.resolve_initial_references('RootPOA')
61
+
62
+ root_poa = PortableServer::POA._narrow(obj)
63
+
64
+ poa_man = root_poa.the_POAManager
65
+
66
+ poa_man.activate
67
+
68
+ srv = MyWatchdog.new(orb)
69
+
70
+ obj = srv._this()
71
+
72
+ ior = orb.object_to_string(obj)
73
+
74
+ open(OPTIONS[:iorfile], 'w') { |io|
75
+ io.write ior
76
+ }
77
+
78
+ Signal.trap('INT') do
79
+ puts "SIGINT - shutting down ORB..."
80
+ orb.shutdown()
81
+ end
82
+
83
+ if Signal.list.has_key?('USR2')
84
+ Signal.trap('USR2', 'EXIT')
85
+ end
86
+
87
+ orb.run
@@ -0,0 +1,34 @@
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
+
28
+ /// A very simple interface
29
+ interface Hello_2
30
+ {
31
+ /// Return a simple string
32
+ string get_string_2 ();
33
+ };
34
+ };
@@ -0,0 +1,70 @@
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 => 'file://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("--k IORFILE",
28
+ "Set IOR.",
29
+ "Default: 'file://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'
47
+ CORBA.implement('Test.idl', OPTIONS)
48
+ else
49
+ require 'TestC.rb'
50
+ end
51
+
52
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
53
+
54
+ obj = orb.string_to_object(OPTIONS[:iorfile])
55
+
56
+ hello_obj = Test::Hello._narrow(obj)
57
+
58
+ hello_2_obj = Test::Hello_2._narrow(obj)
59
+
60
+ the_string = hello_obj.get_string()
61
+
62
+ puts "string returned from Test::Hello <#{the_string}>"
63
+
64
+ the_string = hello_2_obj.get_string_2()
65
+
66
+ puts "string returned from Test::Hello_2 <#{the_string}>"
67
+
68
+ hello_obj.shutdown()
69
+
70
+ orb.destroy()
@@ -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:010000001300000049444c3a546573742f48656c6c6f3a312e30000001000000000000006c000000010102650d0000003137322e31362e372e3234380020c3051b00000014010f005253547dfe0452cf7b05000000000001000000010000005202000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000