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,115 @@
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
+ if OPTIONS[:use_implement]
47
+ require 'corba'
48
+ CORBA.implement('test.idl', OPTIONS)
49
+ else
50
+ require 'testC'
51
+ end
52
+
53
+ def dump_node(node, indent)
54
+ return if node.nil?
55
+
56
+ if $VERBOSE
57
+ STDERR.print ' ' * indent
58
+
59
+ if node.is_a?(StringNode)
60
+ STDERR.puts("#{node} <StringNode> #{node.name}")
61
+ else
62
+ STDERR.puts("#{node} <BaseNode> #{node.name}")
63
+ end
64
+ end
65
+
66
+ dump_node(node.left, indent + 1)
67
+ dump_node(node.right, indent + 1)
68
+ end
69
+
70
+ def dump_tree(tc)
71
+ if $VERBOSE
72
+ STDERR.puts "start tree dump #{tc}"
73
+ end
74
+
75
+ dump_node(tc.root, 1)
76
+
77
+ if $VERBOSE
78
+ STDERR.puts "end tree dump #{tc}"
79
+ end
80
+ end
81
+
82
+ def test_state(abs)
83
+ raise CORBA::BAD_PARAM.new unless abs.is_a?(TreeController)
84
+ dump_tree(abs)
85
+ end
86
+
87
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
88
+
89
+ begin
90
+ obj = orb.string_to_object(OPTIONS[:iorfile])
91
+
92
+ assert_not 'Object reference is nil.', CORBA::is_nil(obj)
93
+
94
+ passer = Passer._narrow(obj)
95
+
96
+ # make sure valuetype factories are registered
97
+ BaseNodeFactory.get_factory(orb)
98
+ StringNodeFactory.get_factory(orb)
99
+ TreeControllerFactory.get_factory(orb)
100
+
101
+ package = passer.pass_tree()
102
+ if CORBA::is_nil(package)
103
+ STDERR.puts "ERROR: passer.pass_state returned nil 'out' arg (#{package})"
104
+ end
105
+
106
+ test_state(package)
107
+ # shutdown passer service
108
+
109
+ passer.shutdown()
110
+
111
+ ensure
112
+
113
+ orb.destroy()
114
+
115
+ 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,116 @@
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'
49
+ end
50
+
51
+ class Passer_i < POA::Passer
52
+ def initialize(orb)
53
+ @orb = orb
54
+ end
55
+
56
+ def pass_tree ()
57
+ tc = TreeController.new
58
+
59
+ # Create the root node.
60
+ sn = StringNode.new
61
+ sn.name = 'RootNode'
62
+ tc.root = sn
63
+
64
+ # Create the left leaf.
65
+ l_dummy = StringNode.new
66
+ l_dummy.name = 'LeftNode'
67
+ sn.left = l_dummy
68
+
69
+ # Create the right leaf.
70
+ r_dummy = StringNode.new
71
+ r_dummy.name = 'RightNode'
72
+ sn.right = r_dummy
73
+
74
+ [tc]
75
+ end
76
+
77
+ def shutdown ()
78
+ @orb.shutdown()
79
+ end
80
+ end # of servant Passer_i
81
+
82
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
83
+
84
+ # make sure valuetype factories are registered
85
+ BaseNodeFactory.get_factory(orb)
86
+ StringNodeFactory.get_factory(orb)
87
+ TreeControllerFactory.get_factory(orb)
88
+
89
+ obj = orb.resolve_initial_references('RootPOA')
90
+
91
+ root_poa = PortableServer::POA._narrow(obj)
92
+
93
+ poa_man = root_poa.the_POAManager
94
+
95
+ poa_man.activate
96
+
97
+ passer = Passer_i.new(orb)
98
+
99
+ obj = passer._this()
100
+
101
+ ior = orb.object_to_string(obj)
102
+
103
+ open(OPTIONS[:iorfile], 'w') { |io|
104
+ io.write ior
105
+ }
106
+
107
+ Signal.trap('INT') do
108
+ puts 'SIGINT - shutting down ORB...'
109
+ orb.shutdown()
110
+ end
111
+
112
+ if Signal.list.has_key?('USR2')
113
+ Signal.trap('USR2', 'EXIT')
114
+ end
115
+
116
+ orb.run
@@ -0,0 +1,31 @@
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
+ valuetype BaseNode
12
+ {
13
+ public BaseNode left;
14
+ public BaseNode right;
15
+ };
16
+
17
+ valuetype StringNode : BaseNode
18
+ {
19
+ public string name;
20
+ };
21
+
22
+ valuetype TreeController
23
+ {
24
+ public BaseNode root;
25
+ };
26
+
27
+ interface passer
28
+ {
29
+ void pass_tree (out TreeController outarg);
30
+ oneway void shutdown ();
31
+ };
@@ -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
+ // This file contains extra valuetypes which are unknown by the test
12
+ // server. We should be able to pass these values and have the server
13
+ // truncate them to the most derived known type.
14
+
15
+ #include "Truncatable.idl"
16
+
17
+ module OBV_TruncatableTest
18
+ {
19
+ //
20
+ // Base valuetype.
21
+ //
22
+ valuetype Extra1 : truncatable TValue1
23
+ {
24
+ public unsigned long edata1;
25
+ };
26
+ };
@@ -0,0 +1,105 @@
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
+ // This file contains few valuetypes to show and test truncatable feature of
13
+ // valuetype.
14
+
15
+ module OBV_TruncatableTest
16
+ {
17
+ // Base valuetype.
18
+ valuetype BaseValue
19
+ {
20
+ public unsigned long basic_data;
21
+ };
22
+
23
+ // Valuetype with one-level truncatable inheritence.
24
+ valuetype TValue1 : truncatable BaseValue
25
+ {
26
+ public unsigned long data1;
27
+ };
28
+
29
+ //
30
+ // Valuetype with multi-level truncatable inheritence.
31
+ //
32
+ valuetype TValue2 : truncatable TValue1
33
+ {
34
+ public unsigned long data2;
35
+ };
36
+
37
+ //
38
+ // Valuetype with multi-level inheritence, but not all truncatable.
39
+ //
40
+ valuetype TValue3 : TValue1
41
+ {
42
+ public unsigned long data3;
43
+ };
44
+
45
+ //
46
+ // An valuetype nested in a valuetype.
47
+ //
48
+ valuetype NestedValue
49
+ {
50
+ public long data;
51
+ };
52
+
53
+ //
54
+ // Truncatable valuetype with nested valuetype.
55
+ //
56
+ valuetype TValue4 : truncatable BaseValue
57
+ {
58
+ public NestedValue nv4;
59
+ public unsigned long data4;
60
+ };
61
+
62
+ //
63
+ // More complex truncatable valuetype.
64
+ //
65
+ valuetype TValue5 : truncatable TValue4
66
+ {
67
+ public string str1;
68
+ public unsigned long data5;
69
+ public NestedValue nv5;
70
+ public string str2;
71
+ };
72
+
73
+ //
74
+ // No data valuetype with truncatable parent.
75
+ valuetype TValue6 : truncatable BaseValue
76
+ {
77
+ };
78
+
79
+ //
80
+ // Interface to pass valuetypes.
81
+ //
82
+ interface Test
83
+ {
84
+
85
+ //NOTE: the "desc" parameter helps verify that truncated values are skipped properly.
86
+ // the output is "<id>: <input desc>"
87
+ void op1 (in string id, in BaseValue iv, out BaseValue ov, inout string desc);
88
+ void op2 (in TValue1 iv, in string id, out TValue1 ov, inout string desc);
89
+ void op3 (in string id, in TValue4 iv, out TValue4 ov, inout string desc);
90
+ BaseValue op4 (in string id,
91
+ in TValue1 iv1,
92
+ in short x,
93
+ in TValue4 iv2,
94
+ in TValue4 iv3,
95
+ in TValue1 iv4,
96
+ inout string desc);
97
+
98
+ void op5 (in any val, in string id, out TValue1 ov, inout string desc);
99
+
100
+ // Shutdown the romote ORB
101
+ oneway void shutdown ();
102
+
103
+ };
104
+
105
+ };
@@ -0,0 +1,85 @@
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
+ class Test_impl < POA::OBV_TruncatableTest::Test
13
+ def initialize(orb)
14
+ @orb_ = orb
15
+ end
16
+
17
+ def op1(id, iv, desc)
18
+ tmp = "#{id}: #{desc}"
19
+ desc = tmp
20
+
21
+ ov = ::OBV_TruncatableTest::BaseValue.new
22
+ ov.basic_data = iv.basic_data
23
+ [ov, desc]
24
+ end
25
+
26
+ def op2(iv, id, desc)
27
+ tmp = "#{id}: #{desc}"
28
+ desc = tmp
29
+
30
+ ov = ::OBV_TruncatableTest::TValue1.new
31
+ ov.basic_data = iv.basic_data
32
+ ov.data1 = iv.data1
33
+ [ov, desc]
34
+ end
35
+
36
+ def op3(id, iv, desc)
37
+ tmp = "#{id}: #{desc}"
38
+ desc = tmp
39
+
40
+ ov = ::OBV_TruncatableTest::TValue4.new
41
+ nv = ::OBV_TruncatableTest::NestedValue.new
42
+ nv.data = iv.nv4.data
43
+ ov.basic_data = iv.basic_data
44
+ ov.nv4 = nv
45
+ ov.data4 = iv.data4
46
+ [ov, desc]
47
+ end
48
+
49
+ def op4(id, iv1, x, iv2, iv3, iv4, desc)
50
+ tmp = "#{id}: #{desc}"
51
+ desc = tmp
52
+
53
+ ov = ::OBV_TruncatableTest::BaseValue.new
54
+
55
+ total = x * (iv1.basic_data + iv2.basic_data +
56
+ iv3.basic_data + iv4.basic_data)
57
+ ov.basic_data = total
58
+
59
+ [ov, desc]
60
+ end
61
+
62
+ def op5(val, id, desc)
63
+ ov = ::OBV_TruncatableTest::TValue1.new
64
+ iv = nil
65
+ target = CORBA::Any.value_for_any(val)
66
+ if target.nil?
67
+ STDERR.puts "server:Test_impl::op5 extract failed\n"
68
+ ov.basic_data = 101
69
+ ov.data1 = 10101
70
+ else
71
+ iv = target
72
+ tmp = "#{id}: #{desc}"
73
+ desc = tmp
74
+
75
+ ov.basic_data = iv.basic_data
76
+ ov.data1 = iv.data1
77
+ end
78
+ [ov, desc]
79
+ end
80
+
81
+ def shutdown()
82
+ @orb_.shutdown
83
+ end
84
+
85
+ end