r2corba 1.6.1-x64-mingw-ucrt

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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +62 -0
  5. data/THANKS +54 -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 +32 -0
  14. data/lib/corba/cbase/ORB.rb +239 -0
  15. data/lib/corba/cbase/Request.rb +133 -0
  16. data/lib/corba/cbase/Streams.rb +128 -0
  17. data/lib/corba/cbase/Stub.rb +18 -0
  18. data/lib/corba/cbase/Typecode.rb +440 -0
  19. data/lib/corba/cbase/Values.rb +130 -0
  20. data/lib/corba/cbase/exception.rb +67 -0
  21. data/lib/corba/cbase/poa.rb +22 -0
  22. data/lib/corba/cbase/policies.rb +77 -0
  23. data/lib/corba/cbase/post_require.rb +13 -0
  24. data/lib/corba/cbase/require.rb +36 -0
  25. data/lib/corba/cmds/base.rb +84 -0
  26. data/lib/corba/cmds/test.rb +29 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +100 -0
  29. data/lib/corba/common/ORB.rb +367 -0
  30. data/lib/corba/common/Object.rb +211 -0
  31. data/lib/corba/common/Request.rb +19 -0
  32. data/lib/corba/common/Servant.rb +107 -0
  33. data/lib/corba/common/Struct.rb +21 -0
  34. data/lib/corba/common/Stub.rb +78 -0
  35. data/lib/corba/common/Typecode.rb +1147 -0
  36. data/lib/corba/common/Union.rb +60 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +21 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +34 -0
  41. data/lib/corba/common/version.rb +21 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +62 -0
  43. data/lib/corba/idl/CosNamingC.rb +460 -0
  44. data/lib/corba/idl/CosNamingS.rb +308 -0
  45. data/lib/corba/idl/IDL.rb +20 -0
  46. data/lib/corba/idl/IORTable.pidl +61 -0
  47. data/lib/corba/idl/IORTableC.rb +116 -0
  48. data/lib/corba/idl/MessagingC.rb +903 -0
  49. data/lib/corba/idl/POAC.rb +929 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +45 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +178 -0
  52. data/lib/corba/idl/r2c_orb.rb +571 -0
  53. data/lib/corba/idl/require.rb +19 -0
  54. data/lib/corba/jbase/Any.rb +274 -0
  55. data/lib/corba/jbase/IORMap.rb +35 -0
  56. data/lib/corba/jbase/ORB.rb +111 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +225 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +127 -0
  61. data/lib/corba/jbase/Streams.rb +734 -0
  62. data/lib/corba/jbase/Stub.rb +37 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +174 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +228 -0
  67. data/lib/corba/jbase/policies.rb +299 -0
  68. data/lib/corba/jbase/post_require.rb +13 -0
  69. data/lib/corba/jbase/require.rb +92 -0
  70. data/lib/corba/naming.rb +13 -0
  71. data/lib/corba/naming_service.rb +14 -0
  72. data/lib/corba/poa.rb +14 -0
  73. data/lib/corba/policies.rb +17 -0
  74. data/lib/corba/require.rb +16 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +432 -0
  76. data/lib/corba/svcs/ins/ins.rb +525 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +118 -0
  78. data/lib/corba.rb +15 -0
  79. data/lib/ridlbe/ruby/config.rb +340 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +15 -0
  82. data/lib/ridlbe/ruby/walker.rb +1605 -0
  83. data/mkrf_conf_bingem.rb +149 -0
  84. data/rakelib/bin.rake +79 -0
  85. data/rakelib/bin.rb +145 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +51 -0
  88. data/rakelib/config.rb +542 -0
  89. data/rakelib/ext.rake +183 -0
  90. data/rakelib/ext.rb +277 -0
  91. data/rakelib/ext_r2tao.rb +208 -0
  92. data/rakelib/gem.rake +251 -0
  93. data/rakelib/gem.rb +145 -0
  94. data/rakelib/package.rake +25 -0
  95. data/rakelib/test.rake +22 -0
  96. data/test/BiDirectional/Test.idl +33 -0
  97. data/test/BiDirectional/client.rb +131 -0
  98. data/test/BiDirectional/run_test.rb +67 -0
  99. data/test/BiDirectional/server.rb +167 -0
  100. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
  104. data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
  105. data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
  106. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
  107. data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
  108. data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
  109. data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
  110. data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
  111. data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
  112. data/test/Collocation/Diamond.idl +38 -0
  113. data/test/Collocation/run_test.rb +51 -0
  114. data/test/Collocation/test.rb +201 -0
  115. data/test/Connect_Timeout/Test.idl +26 -0
  116. data/test/Connect_Timeout/client.rb +109 -0
  117. data/test/Connect_Timeout/run_test.rb +51 -0
  118. data/test/DII/Test.idl +26 -0
  119. data/test/DII/client.rb +114 -0
  120. data/test/DII/run_test.rb +68 -0
  121. data/test/DII/server.rb +94 -0
  122. data/test/DSI/Test.idl +26 -0
  123. data/test/DSI/client.rb +65 -0
  124. data/test/DSI/run_test.rb +68 -0
  125. data/test/DSI/server.rb +105 -0
  126. data/test/Exceptions/Test.idl +47 -0
  127. data/test/Exceptions/client.rb +117 -0
  128. data/test/Exceptions/run_test.rb +68 -0
  129. data/test/Exceptions/server.rb +130 -0
  130. data/test/Hello/Test.idl +26 -0
  131. data/test/Hello/client.rb +77 -0
  132. data/test/Hello/run_test.rb +70 -0
  133. data/test/Hello/server.rb +94 -0
  134. data/test/IDL_Test/Test.idl +116 -0
  135. data/test/IDL_Test/Test_inc.idl +17 -0
  136. data/test/IDL_Test/client.rb +103 -0
  137. data/test/IDL_Test/run_test.rb +68 -0
  138. data/test/IDL_Test/server.rb +103 -0
  139. data/test/IORMap/Test.idl +26 -0
  140. data/test/IORMap/client.rb +72 -0
  141. data/test/IORMap/run_test.rb +68 -0
  142. data/test/IORMap/server.rb +113 -0
  143. data/test/IORTable/Test.idl +26 -0
  144. data/test/IORTable/client.rb +74 -0
  145. data/test/IORTable/run_test.rb +68 -0
  146. data/test/IORTable/server.rb +129 -0
  147. data/test/Implicit_Conversion/Test.idl +30 -0
  148. data/test/Implicit_Conversion/client.rb +112 -0
  149. data/test/Implicit_Conversion/run_test.rb +68 -0
  150. data/test/Implicit_Conversion/server.rb +98 -0
  151. data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
  152. data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
  153. data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
  154. data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
  155. data/test/Multi_Threading/Simple/Test.idl +26 -0
  156. data/test/Multi_Threading/Simple/client.rb +92 -0
  157. data/test/Multi_Threading/Simple/run_test.rb +68 -0
  158. data/test/Multi_Threading/Simple/server.rb +117 -0
  159. data/test/Multi_Threading/Threads/Test.idl +27 -0
  160. data/test/Multi_Threading/Threads/client.rb +77 -0
  161. data/test/Multi_Threading/Threads/run_test.rb +75 -0
  162. data/test/Multi_Threading/Threads/server.rb +116 -0
  163. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  164. data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
  165. data/test/Multiple_Servant_Interfaces/client.rb +69 -0
  166. data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
  167. data/test/Multiple_Servant_Interfaces/server.rb +101 -0
  168. data/test/Nil/Test.idl +26 -0
  169. data/test/Nil/run_test.rb +51 -0
  170. data/test/Nil/test.rb +80 -0
  171. data/test/OBV/AbstractInterface/client.rb +178 -0
  172. data/test/OBV/AbstractInterface/run_test.rb +68 -0
  173. data/test/OBV/AbstractInterface/server.rb +149 -0
  174. data/test/OBV/AbstractInterface/test.idl +52 -0
  175. data/test/OBV/Custom/OBV.idl +18 -0
  176. data/test/OBV/Custom/OBV_impl.rb +41 -0
  177. data/test/OBV/Custom/client.rb +85 -0
  178. data/test/OBV/Custom/run_test.rb +68 -0
  179. data/test/OBV/Custom/server.rb +99 -0
  180. data/test/OBV/Simple/OBV.idl +15 -0
  181. data/test/OBV/Simple/OBV_impl.rb +26 -0
  182. data/test/OBV/Simple/client.rb +85 -0
  183. data/test/OBV/Simple/run_test.rb +68 -0
  184. data/test/OBV/Simple/server.rb +99 -0
  185. data/test/OBV/Simple_Event/Event.idl +15 -0
  186. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  187. data/test/OBV/Simple_Event/client.rb +85 -0
  188. data/test/OBV/Simple_Event/run_test.rb +68 -0
  189. data/test/OBV/Simple_Event/server.rb +99 -0
  190. data/test/OBV/Supports/client.rb +115 -0
  191. data/test/OBV/Supports/run_test.rb +68 -0
  192. data/test/OBV/Supports/server.rb +102 -0
  193. data/test/OBV/Supports/supports.idl +32 -0
  194. data/test/OBV/Supports/supports_impl.rb +59 -0
  195. data/test/OBV/Tree/client.rb +115 -0
  196. data/test/OBV/Tree/run_test.rb +68 -0
  197. data/test/OBV/Tree/server.rb +116 -0
  198. data/test/OBV/Tree/test.idl +31 -0
  199. data/test/OBV/Truncatable/Extra.idl +26 -0
  200. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  201. data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
  202. data/test/OBV/Truncatable/client.rb +278 -0
  203. data/test/OBV/Truncatable/run_test.rb +68 -0
  204. data/test/OBV/Truncatable/server.rb +88 -0
  205. data/test/OBV/ValueBox/client.rb +497 -0
  206. data/test/OBV/ValueBox/run_test.rb +68 -0
  207. data/test/OBV/ValueBox/server.rb +271 -0
  208. data/test/OBV/ValueBox/valuebox.idl +101 -0
  209. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  210. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  211. data/test/OBV/ValueBox/vb_union.idl +21 -0
  212. data/test/Object/Test.idl +26 -0
  213. data/test/Object/client.rb +111 -0
  214. data/test/Object/run_test.rb +68 -0
  215. data/test/Object/server.rb +125 -0
  216. data/test/POA/Test.idl +27 -0
  217. data/test/POA/run_test.rb +51 -0
  218. data/test/POA/test.rb +111 -0
  219. data/test/Param_Test/Test.idl +182 -0
  220. data/test/Param_Test/client.rb +276 -0
  221. data/test/Param_Test/run_test.rb +68 -0
  222. data/test/Param_Test/server.rb +295 -0
  223. data/test/Performance/Simple/Test.idl +26 -0
  224. data/test/Performance/Simple/client.rb +89 -0
  225. data/test/Performance/Simple/run_test.rb +68 -0
  226. data/test/Performance/Simple/server.rb +94 -0
  227. data/test/Policies/Test.idl +26 -0
  228. data/test/Policies/run_test.rb +51 -0
  229. data/test/Policies/test.rb +142 -0
  230. data/test/Timeout/client.rb +206 -0
  231. data/test/Timeout/run_test.rb +68 -0
  232. data/test/Timeout/server.rb +108 -0
  233. data/test/Timeout/test.idl +18 -0
  234. data/test/lib/assert.rb +41 -0
  235. data/test/lib/test.rb +546 -0
  236. data/test/test_runner.rb +191 -0
  237. metadata +318 -0
@@ -0,0 +1,201 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+
14
+ OPTIONS = {
15
+ :use_implement => false
16
+ }
17
+
18
+ ORB_ARG = []
19
+
20
+ # extract -ORBxxx aguments
21
+ f_ = false
22
+ ARGV.collect! { |a|
23
+ if f_
24
+ f_ = false
25
+ ORB_ARG << a
26
+ nil
27
+ else
28
+ f_ = /^-ORB/ =~ a
29
+ ORB_ARG << a if f_
30
+ f_ ? nil : a
31
+ end
32
+ }.compact!
33
+
34
+
35
+ ARGV.options do |opts|
36
+ script_name = File.basename($0)
37
+ opts.banner = "Usage: ruby #{script_name} [options]"
38
+
39
+ opts.separator ''
40
+
41
+ opts.on('--d LVL',
42
+ 'Set ORBDebugLevel value.',
43
+ 'Default: 0') { |dlvl| ORB_ARG << '-ORBDebugLevel' << dlvl }
44
+ opts.on('--use-implement',
45
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
46
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
47
+
48
+ opts.separator ''
49
+
50
+ opts.on('-h', '--help',
51
+ 'Show this help message.') { puts opts; exit }
52
+
53
+ opts.parse!
54
+ end
55
+
56
+ if OPTIONS[:use_implement]
57
+ require 'corba/poa'
58
+ CORBA.implement('Diamond.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
59
+ else
60
+ require 'DiamondS.rb'
61
+ end
62
+
63
+
64
+ class Top < POA::Diamond::Top
65
+ def shape
66
+ 'a point.'
67
+ end
68
+ end
69
+
70
+ class Left < POA::Diamond::Left
71
+ def shape
72
+ 'the left line'
73
+ end
74
+
75
+ def color
76
+ 'black'
77
+ end
78
+ end
79
+
80
+ class Right < POA::Diamond::Right
81
+ def shape
82
+ 'the right line'
83
+ end
84
+
85
+ def color
86
+ 'red'
87
+ end
88
+
89
+ def width
90
+ 0
91
+ end
92
+ end
93
+
94
+ class Buttom < POA::Diamond::Buttom
95
+ def shape
96
+ 'a diamond'
97
+ end
98
+
99
+ def color
100
+ 'translucent'
101
+ end
102
+
103
+ def name
104
+ 'Jubilee'
105
+ end
106
+
107
+ def width
108
+ 100
109
+ end
110
+
111
+ def area(unit)
112
+ case unit
113
+ when Diamond::Buttom::MM
114
+ [100 * 100]
115
+ when Diamond::Buttom::CM
116
+ [10 * 10]
117
+ end
118
+ end
119
+ end
120
+
121
+ class Collocation_Test
122
+ def initialize
123
+ @top_servant = Top.new
124
+ @left_servant = Left.new
125
+ @right_servant = Right.new
126
+ @diamond_servant = Buttom.new
127
+ end
128
+
129
+ def shutdown
130
+ @root_poa.destroy(1, 1)
131
+ @orb.destroy
132
+ end
133
+
134
+ def init(args = [])
135
+ @orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
136
+
137
+ obj = @orb.resolve_initial_references('RootPOA')
138
+
139
+ @root_poa = PortableServer::POA._narrow(obj)
140
+
141
+ @poa_man = @root_poa.the_POAManager
142
+
143
+ id = @root_poa.activate_object(@top_servant)
144
+
145
+ @top_obj = @root_poa.id_to_reference(id)
146
+
147
+ id = @root_poa.activate_object(@diamond_servant)
148
+
149
+ @diamond_obj = @root_poa.id_to_reference(id)
150
+
151
+ id = @root_poa.activate_object(@left_servant)
152
+
153
+ @left_obj = @root_poa.id_to_reference(id)
154
+
155
+ id = @root_poa.activate_object(@right_servant)
156
+
157
+ @right_obj = @root_poa.id_to_reference(id)
158
+
159
+ puts "Diamond servant activated:\n#{@orb.object_to_string(@diamond_obj)}"
160
+ puts "Top servant activated:\n#{@orb.object_to_string(@top_obj)}"
161
+ puts "Left servant activated:\n#{@orb.object_to_string(@left_obj)}"
162
+ puts "Right servant activated:\n#{@orb.object_to_string(@right_obj)}"
163
+ end
164
+
165
+ def test_narrow
166
+ top = Diamond::Top._narrow(@diamond_obj)
167
+ left = Diamond::Left._narrow(@diamond_obj)
168
+ right = Diamond::Right._narrow(@diamond_obj)
169
+ buttom = Diamond::Buttom._narrow(@diamond_obj)
170
+
171
+ puts "Calling diamond_top.shape: #{top.shape}"
172
+ puts "Calling diamond_left.shape: #{left.shape}"
173
+ puts "Calling diamond_right.shape: #{right.shape}"
174
+ puts "Calling diamond_buttom.shape: #{buttom.shape}"
175
+ puts "Calling diamond_buttom.area(MM): #{buttom.area(Diamond::Buttom::MM)}"
176
+ puts "Calling diamond_buttom.area(CM): #{buttom.area(Diamond::Buttom::CM)}"
177
+ end
178
+
179
+ def run
180
+ @poa_man.activate
181
+
182
+ top = Diamond::Top._narrow(@top_obj)
183
+ left = Diamond::Left._narrow(@left_obj)
184
+ right = Diamond::Right._narrow(@right_obj)
185
+ puts "Calling top.shape: #{top.shape}"
186
+ puts "Calling left.shape: #{left.shape}"
187
+ puts "Calling right.shape: #{right.shape}"
188
+
189
+ test_narrow
190
+ end
191
+ end
192
+
193
+ test = Collocation_Test.new
194
+
195
+ test.init(ORB_ARG)
196
+
197
+ test.run
198
+
199
+ test.shutdown
200
+
201
+ exit(0)
@@ -0,0 +1,26 @@
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
+ *--------------------------------------------------------------------*/
10
+
11
+ /// Put the interfaces in a module, to avoid global namespace pollution
12
+ module Test
13
+ {
14
+ /// A very simple interface
15
+ interface Hello
16
+ {
17
+ /// Return a simple string
18
+ string get_string ();
19
+
20
+ /// A method to shutdown the ORB
21
+ /**
22
+ * This method is used to simplify the test shutdown process
23
+ */
24
+ oneway void shutdown ();
25
+ };
26
+ };
@@ -0,0 +1,109 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+ require 'lib/assert.rb'
14
+ include TestUtil::Assertions
15
+
16
+ OPTIONS = {
17
+ :use_implement => false,
18
+ :orb_debuglevel => 0,
19
+ :ior => 'corbaloc:iiop:192.3.47.5/10007/RandomObject'
20
+ }
21
+
22
+ ARGV.options do |opts|
23
+ script_name = File.basename($0)
24
+ opts.banner = "Usage: ruby #{script_name} [options]"
25
+
26
+ opts.separator ''
27
+
28
+ opts.on('--k IOR',
29
+ 'Set IOR.',
30
+ "Default: 'corbaloc:iiop:192.3.47/10007/RandomObject'") { |v| OPTIONS[:ior] = v }
31
+ opts.on('--d LVL',
32
+ 'Set ORBDebugLevel value.',
33
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
34
+ opts.on('--use-implement',
35
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
36
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
37
+
38
+ opts.separator ''
39
+
40
+ opts.on('-h', '--help',
41
+ 'Show this help message.') { puts opts; exit }
42
+
43
+ opts.parse!
44
+ end
45
+
46
+ if OPTIONS[:use_implement]
47
+ require 'corba'
48
+ CORBA.implement('Test.idl', OPTIONS)
49
+ else
50
+ require 'TestC.rb'
51
+ end
52
+ require 'corba/policies.rb'
53
+
54
+ begin STDERR.puts 'Not supported on this platform'; exit(0); end unless defined?(TAO::CONNECTION_TIMEOUT_POLICY_TYPE)
55
+
56
+ Timeout_period = 1000000
57
+
58
+ def test_timeout(object)
59
+ # Start the timer
60
+ profile_timer = Time.now
61
+
62
+ begin
63
+ # First connection happens here..
64
+ hello = Test::Hello._narrow(object)
65
+
66
+ assert_not 'Nil Test::Hello reference', CORBA::is_nil(hello)
67
+
68
+ the_string = hello.get_string()
69
+
70
+ puts "string returned <#{the_string}>"
71
+
72
+ hello.shutdown()
73
+ rescue CORBA::Exception
74
+ # Get the elampsed time
75
+ el = Time.now - profile_timer
76
+
77
+ # Give a 30% error margin for handling exceptions etc. It is a
78
+ # high margin, though!. But the timeout is too small and wider
79
+ # range would help.
80
+ # The elapsed time is in secs
81
+ assert "ERROR: Too long to timeout: #{el.to_s}", el <= 0.200
82
+
83
+ puts "Success, timeout: #{el.to_s}"
84
+ end
85
+ end
86
+
87
+
88
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
89
+
90
+ begin
91
+ tmp = orb.string_to_object(OPTIONS[:ior])
92
+
93
+ object = orb.resolve_initial_references('PolicyCurrent')
94
+
95
+ policy_current = CORBA::PolicyCurrent::_narrow(object)
96
+
97
+ policy_list = []
98
+ policy_list << orb.create_policy(TAO::CONNECTION_TIMEOUT_POLICY_TYPE,
99
+ CORBA::Any.to_any(Timeout_period, TimeBase::TimeT._tc))
100
+
101
+ policy_current.set_policy_overrides(policy_list,
102
+ CORBA::ADD_OVERRIDE)
103
+
104
+ policy_list.each { |p| p.destroy() }
105
+
106
+ test_timeout(tmp)
107
+ ensure
108
+ orb.destroy()
109
+ end
@@ -0,0 +1,51 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ OPTIONS = {
13
+ :debug_opt => '',
14
+ :use_implement => '--use-implement'
15
+ }
16
+
17
+ require 'optparse'
18
+
19
+ ARGV.options do |opts|
20
+ script_name = File.basename($0)
21
+ opts.banner = "Usage: ruby #{script_name} [options]"
22
+
23
+ opts.separator ''
24
+
25
+ opts.on('-d',
26
+ 'Run with debugging output.',
27
+ 'Default: false') { OPTIONS[:debug_opt] = '--d 10' }
28
+ opts.on('--use-stubs',
29
+ 'Use stubs generated by RIDL.',
30
+ 'Default: false (uses embedded IDL)') { OPTIONS[:use_implement] = '' }
31
+
32
+ opts.separator ''
33
+
34
+ opts.on('-h', '--help',
35
+ 'Show this help message.') { puts opts; exit }
36
+
37
+ opts.parse!
38
+ end
39
+
40
+ require 'lib/test.rb'
41
+ include TestUtil
42
+
43
+ clt = Test.new
44
+
45
+ if !clt.run('client.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
46
+ exit(255)
47
+ end
48
+
49
+ exrc = clt.wait(400)
50
+
51
+ exit(exrc)
data/test/DII/Test.idl ADDED
@@ -0,0 +1,26 @@
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
+ *--------------------------------------------------------------------*/
10
+
11
+ /// Put the interfaces in a module, to avoid global namespace pollution
12
+ module Test
13
+ {
14
+ /// A very simple interface
15
+ interface Hello
16
+ {
17
+ /// Return a simple string
18
+ string echo (in string method, in string message);
19
+
20
+ /// A method to shutdown the ORB
21
+ /**
22
+ * This method is used to simplify the test shutdown process
23
+ */
24
+ oneway void shutdown ();
25
+ };
26
+ };
@@ -0,0 +1,114 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+ require 'lib/assert.rb'
14
+ include TestUtil::Assertions
15
+
16
+ OPTIONS = {
17
+ :use_implement => false,
18
+ :orb_debuglevel => 0,
19
+ :iorfile => 'file://server.ior'
20
+ }
21
+
22
+ ARGV.options do |opts|
23
+ script_name = File.basename($0)
24
+ opts.banner = "Usage: ruby #{script_name} [options]"
25
+
26
+ opts.separator ''
27
+
28
+ opts.on('--k IORFILE',
29
+ 'Set IOR.',
30
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile] = v }
31
+ opts.on('--d LVL',
32
+ 'Set ORBDebugLevel value.',
33
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
34
+ opts.on('--use-implement',
35
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
36
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
37
+
38
+ opts.separator ''
39
+
40
+ opts.on('-h', '--help',
41
+ 'Show this help message.') { puts opts; exit }
42
+
43
+ opts.parse!
44
+ end
45
+
46
+ require 'corba'
47
+
48
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
49
+
50
+ begin
51
+
52
+ obj = orb.string_to_object(OPTIONS[:iorfile])
53
+
54
+ puts '***** Synchronous twoway DII'
55
+ req = obj._request('echo')
56
+ req.arguments = [
57
+ ['method', CORBA::ARG_IN, CORBA::_tc_string, 'sync twoway'],
58
+ ['message', CORBA::ARG_IN, CORBA::_tc_string, 'Hello world!']
59
+ ]
60
+ req.set_return_type(CORBA::_tc_string)
61
+
62
+ the_string = req.invoke()
63
+
64
+ puts "string returned <#{the_string}>"
65
+ puts
66
+
67
+ puts '***** Deferred twoway DII (using get_response())'
68
+ req = obj._request('echo')
69
+ req.arguments = [
70
+ ['method', CORBA::ARG_IN, CORBA::_tc_string, 'deferred twoway (1)'],
71
+ ['message', CORBA::ARG_IN, CORBA::_tc_string, 'Hello world!']
72
+ ]
73
+ req.set_return_type(CORBA::_tc_string)
74
+
75
+ req.send_deferred()
76
+ puts 'getting response...'
77
+ req.get_response()
78
+
79
+ puts "string returned <#{req.return_value}>"
80
+ puts
81
+
82
+ ### DOESN'T WORK WITH TAO <= 1.5.9 BECAUSE OF BUG IN TAO
83
+ if !defined?(TAO) || TAO::MAJOR_VERSION > 1 ||
84
+ (TAO::MAJOR_VERSION == 1 &&
85
+ (TAO::MINOR_VERSION > 5 ||
86
+ (TAO::MINOR_VERSION == 5 && TAO::MICRO_VERSION > 9)))
87
+ puts '***** Deferred twoway DII (using poll_response())'
88
+ req = obj._request('echo')
89
+ req.arguments = [
90
+ ['method', CORBA::ARG_IN, CORBA::_tc_string, 'deferred twoway (2)'],
91
+ ['message', CORBA::ARG_IN, CORBA::_tc_string, 'Hello world!']
92
+ ]
93
+ req.set_return_type(CORBA::_tc_string)
94
+
95
+ req.send_deferred()
96
+ begin
97
+ puts 'sleeping...'
98
+ sleep(0.01)
99
+ puts 'polling for response...'
100
+ end while !req.poll_response()
101
+
102
+ puts "string returned <#{req.return_value}>"
103
+ puts
104
+ end
105
+
106
+ puts '***** Oneway shutdown'
107
+ req = obj._request('shutdown')
108
+ req.send_oneway()
109
+
110
+ ensure
111
+
112
+ orb.destroy()
113
+
114
+ end
@@ -0,0 +1,68 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ OPTIONS = {
13
+ :debug_opt => '',
14
+ :use_implement => '--use-implement'
15
+ }
16
+
17
+ require 'optparse'
18
+
19
+ ARGV.options do |opts|
20
+ script_name = File.basename($0)
21
+ opts.banner = "Usage: ruby #{script_name} [options]"
22
+
23
+ opts.separator ''
24
+
25
+ opts.on('-d',
26
+ 'Run with debugging output.',
27
+ 'Default: false') { OPTIONS[:debug_opt] = '--d 10' }
28
+ opts.on('--use-stubs',
29
+ 'Use stubs generated by RIDL.',
30
+ 'Default: false (uses embedded IDL)') { OPTIONS[:use_implement] = '' }
31
+
32
+ opts.separator ''
33
+
34
+ opts.on('-h', '--help',
35
+ 'Show this help message.') { puts opts; exit }
36
+
37
+ opts.parse!
38
+ end
39
+
40
+ require 'lib/test.rb'
41
+ include TestUtil
42
+
43
+ ior_file = 'server.ior'
44
+
45
+ TestUtil.remove_file(ior_file)
46
+
47
+ srv = Test.new
48
+
49
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
50
+
51
+ TestUtil.wait_for_file(ior_file, 400)
52
+
53
+ clt = Test.new
54
+
55
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
56
+ srv.kill(100)
57
+ exit(255)
58
+ end
59
+
60
+ exrc = clt.wait(400)
61
+
62
+ if exrc == 0
63
+ srv.wait(400)
64
+ else
65
+ srv.wait_term(400)
66
+ end
67
+
68
+ exit(exrc)
@@ -0,0 +1,94 @@
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
+ #--------------------------------------------------------------------
11
+
12
+ require 'optparse'
13
+
14
+ OPTIONS = {
15
+ :use_implement => false,
16
+ :orb_debuglevel => 0,
17
+ :iorfile => 'server.ior'
18
+ }
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('--o IORFILE',
27
+ 'Set IOR filename.',
28
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile] = v }
29
+ opts.on('--d LVL',
30
+ 'Set ORBDebugLevel value.',
31
+ 'Default: 0') { |v| OPTIONS[:orb_debuglevel] = v }
32
+ opts.on('--use-implement',
33
+ 'Load IDL through CORBA.implement() instead of precompiled code.',
34
+ 'Default: off') { |v| OPTIONS[:use_implement] = v }
35
+
36
+ opts.separator ''
37
+
38
+ opts.on('-h', '--help',
39
+ 'Show this help message.') { puts opts; exit }
40
+
41
+ opts.parse!
42
+ end
43
+
44
+ if OPTIONS[:use_implement]
45
+ require 'corba/poa'
46
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
47
+ else
48
+ require 'TestS.rb'
49
+ end
50
+
51
+ class MyHello < POA::Test::Hello
52
+ def initialize(orb)
53
+ @orb = orb
54
+ end
55
+
56
+ def echo(method, message)
57
+ "#{method}: #{message}"
58
+ end
59
+
60
+ def shutdown()
61
+ @orb.shutdown()
62
+ end
63
+ end # of servant MyHello
64
+
65
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
66
+
67
+ obj = orb.resolve_initial_references('RootPOA')
68
+
69
+ root_poa = PortableServer::POA._narrow(obj)
70
+
71
+ poa_man = root_poa.the_POAManager
72
+
73
+ poa_man.activate
74
+
75
+ hello_srv = MyHello.new(orb)
76
+
77
+ hello_obj = hello_srv._this()
78
+
79
+ hello_ior = orb.object_to_string(hello_obj)
80
+
81
+ open(OPTIONS[:iorfile], 'w') { |io|
82
+ io.write hello_ior
83
+ }
84
+
85
+ Signal.trap('INT') do
86
+ puts 'SIGINT - shutting down ORB...'
87
+ orb.shutdown()
88
+ end
89
+
90
+ if Signal.list.has_key?('USR2')
91
+ Signal.trap('USR2', 'EXIT')
92
+ end
93
+
94
+ orb.run