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,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,125 @@
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 get_string()
57
+ 'Hello there!'
58
+ end
59
+
60
+ def shutdown()
61
+ @orb.shutdown()
62
+ end
63
+
64
+ ## overrides for standard CORBA::Object methods
65
+ def _get_component
66
+ # misuse this method to
67
+ # create second servant and
68
+ hello_srv = MyHello2.new(@orb)
69
+ # activate and return object ref
70
+ hello_srv._this()
71
+ end
72
+ end # of servant MyHello
73
+
74
+ class MyHello2 < POA::Test::Hello
75
+ def initialize(orb)
76
+ @orb = orb
77
+ end
78
+
79
+ def get_string()
80
+ 'Hello2 there!'
81
+ end
82
+
83
+ def shutdown()
84
+ @orb.shutdown()
85
+ end
86
+
87
+ ## overrides for standard CORBA::Object methods
88
+ def _repository_id
89
+ 'IDL:org.omg/custom.Test/Hello2:1.0'
90
+ end
91
+
92
+ def _is_a?(id)
93
+ Intf::Ids.include?(id) or id == 'IDL:org.omg/custom.Test/Hello:1.0'
94
+ end
95
+ end # of servant MyHello
96
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
97
+
98
+ obj = orb.resolve_initial_references('RootPOA')
99
+
100
+ root_poa = PortableServer::POA._narrow(obj)
101
+
102
+ poa_man = root_poa.the_POAManager
103
+
104
+ poa_man.activate
105
+
106
+ hello_srv = MyHello.new(orb)
107
+
108
+ hello_obj = hello_srv._this()
109
+
110
+ hello_ior = orb.object_to_string(hello_obj)
111
+
112
+ open(OPTIONS[:iorfile], 'w') { |io|
113
+ io.write hello_ior
114
+ }
115
+
116
+ Signal.trap('INT') do
117
+ puts 'SIGINT - shutting down ORB...'
118
+ orb.shutdown()
119
+ end
120
+
121
+ if Signal.list.has_key?('USR2')
122
+ Signal.trap('USR2', 'EXIT')
123
+ end
124
+
125
+ orb.run
data/test/POA/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,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('test.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
46
+ exit(255)
47
+ end
48
+
49
+ exrc = clt.wait(400)
50
+
51
+ exit(exrc)
data/test/POA/test.rb ADDED
@@ -0,0 +1,111 @@
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'
14
+ include TestUtil::Assertions
15
+
16
+ OPTIONS = {
17
+ :use_implement => false,
18
+ :orb_debuglevel => 0,
19
+ :iorfile => '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('--o IORFILE',
29
+ 'Set IOR filename.',
30
+ "Default: '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/poa'
48
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
49
+ else
50
+ require 'TestS.rb'
51
+ end
52
+
53
+ class MyHello < POA::Test::Hello
54
+ def initialize(orb)
55
+ @orb = orb
56
+ end
57
+
58
+ def get_string()
59
+ 'Hello there!'
60
+ end
61
+
62
+ def shutdown()
63
+ @orb.shutdown()
64
+ end
65
+ end # of servant MyHello
66
+
67
+ orb = CORBA.ORB_init(['-ORBDebugLevel', OPTIONS[:orb_debuglevel]], 'myORB')
68
+
69
+ begin
70
+ obj = orb.resolve_initial_references('RootPOA')
71
+
72
+ rootpoa = PortableServer::POA._narrow(obj)
73
+
74
+ assert_not 'Failed to resolve RootPOA', CORBA.is_nil(rootpoa) || !rootpoa.is_a?(PortableServer::POA)
75
+
76
+ poaman = rootpoa.the_POAManager
77
+
78
+ assert_not 'Failed to resolve the_POAManager', CORBA.is_nil(poaman) || !poaman.is_a?(PortableServer::POAManager)
79
+
80
+ childpoa = rootpoa.create_POA('childPOA', poaman, [])
81
+
82
+ assert_not 'Failed to create child POA', CORBA.is_nil(childpoa) || !childpoa.is_a?(PortableServer::POA)
83
+
84
+ assert 'POAManager state should have been HOLDING', poaman.get_state == PortableServer::POAManager::HOLDING
85
+
86
+ poaman.activate
87
+
88
+ assert_except('No PortableServer::POA::AdapterNonExistent exception thrown on rootpoa.find_POA(\'non-existent-poa\')',
89
+ PortableServer::POA::AdapterNonExistent) { rootpoa.find_POA('non-existent-poa', true) }
90
+
91
+ childpoa = rootpoa.find_POA('childPOA', true)
92
+
93
+ hello_srv = MyHello.new(orb)
94
+
95
+ assert_except('childpoa.servant_to_id should have thrown ServantNotActive',
96
+ PortableServer::POA::ServantNotActive) { childpoa.servant_to_id(hello_srv) }
97
+
98
+ id = childpoa.activate_object(hello_srv)
99
+
100
+ assert 'object ids returned from #activate_object and #servant_to_id not equal', id == childpoa.servant_to_id(hello_srv)
101
+
102
+ poaman.deactivate(true, true)
103
+
104
+ assert 'POAManager state should have been INACTIVE', poaman.get_state == PortableServer::POAManager::INACTIVE
105
+
106
+ assert_except('poaman.activate should have thrown AdapterInactive',
107
+ PortableServer::POAManager::AdapterInactive) { poaman.activate }
108
+
109
+ ensure
110
+ orb.destroy
111
+ end
@@ -0,0 +1,182 @@
1
+
2
+ #include "orb.idl"
3
+
4
+ #pragma prefix "Remedy"
5
+
6
+ module Types
7
+ {
8
+
9
+ typedef string TString;
10
+
11
+ };
12
+
13
+ /// Put the interfaces in a module, to avoid global namespace pollution
14
+ module Test
15
+ {
16
+ interface Hello;
17
+
18
+ const long long max_longlong = 0x7fffffffffffffff;
19
+ const long long min_longlong = -0x8000000000000000;
20
+
21
+ const unsigned long long max_ulonglong = 0xffffffffffffffff;
22
+ const unsigned long long min_ulonglong = 0;
23
+
24
+ const long max_long = 0x7fffffff;
25
+ const long min_long = -0x80000000;
26
+
27
+ const unsigned long max_ulong = 0xffffffff;
28
+ const unsigned long min_ulong = 0;
29
+
30
+ const short max_short = 0x7fff;
31
+ const short min_short = -0x8000;
32
+
33
+ const unsigned short max_ushort = 0xffff;
34
+ const unsigned short min_ushort = 0;
35
+
36
+ const octet max_octet = 0xff;
37
+ const octet min_octet = 0;
38
+
39
+ typedef short TShort;
40
+ typedef unsigned long TULong;
41
+ typedef string TString;
42
+ typedef Test::TString TString2;
43
+ typedef Types::TString TString3;
44
+ typedef string<128> TString128;
45
+ typedef any TMyAny;
46
+ typedef ::CORBA::StringSeq TStringSeq;
47
+
48
+ const long myConst = 32;
49
+ const octet myOctet = 243;
50
+ const char myChar = 'A';
51
+ const wchar myWChar = L'a';
52
+ const string myString = "ABC";
53
+ const wstring myWString = L"abc\u1234";
54
+
55
+ const short DIM1 = 3;
56
+ typedef long TLongCube[DIM1][3][4];
57
+
58
+ enum test_enum
59
+ {
60
+ TE_ZEROTH,
61
+ TE_FIRST,
62
+ TE_SECOND,
63
+ TE_THIRD,
64
+ TE_FOURTH
65
+ };
66
+
67
+ struct S1
68
+ {
69
+ long m_one;
70
+ double m_two;
71
+ string m_three;
72
+ struct S2 {
73
+ boolean m_b;
74
+ } m_four;
75
+ test_enum m_five;
76
+ };
77
+
78
+ struct S3;
79
+
80
+ typedef sequence<S3> TS3Seq;
81
+ typedef sequence<TS3Seq> TS3SeqSeq;
82
+
83
+ struct S3
84
+ {
85
+ TS3Seq m_seq;
86
+ boolean m_has_more;
87
+ };
88
+
89
+ typedef sequence<S1> S1Seq;
90
+
91
+ typedef sequence<double> TDoubleSeq;
92
+
93
+ typedef sequence<TShort, 10> TShortSeq;
94
+
95
+ typedef test_enum TSWitch;
96
+
97
+ union U1 switch(TSWitch)
98
+ {
99
+ case TE_ZEROTH: long m_l;
100
+ case TE_FIRST:
101
+ case TE_SECOND: string m_str;
102
+ default: boolean m_bool;
103
+ };
104
+
105
+ union U2 switch( enum SWITCH_T { ONE, TWO, THREE })
106
+ {
107
+ case ONE: long l_;
108
+ case TWO: boolean b_;
109
+ case THREE: string s_;
110
+ };
111
+
112
+ union U3 switch(boolean)
113
+ {
114
+ case TRUE: long lval;
115
+ };
116
+
117
+ union U4 switch(TSWitch)
118
+ {
119
+ case TE_ZEROTH: long m_l;
120
+ case TE_FIRST:
121
+ case TE_SECOND: string m_str;
122
+ };
123
+
124
+ /// A very simple interface
125
+ interface Hello
126
+ {
127
+ readonly attribute long long max_LongLong;
128
+ readonly attribute long long min_LongLong;
129
+
130
+ readonly attribute unsigned long long max_ULongLong;
131
+ readonly attribute unsigned long long min_ULongLong;
132
+
133
+ readonly attribute long max_Long;
134
+ readonly attribute long min_Long;
135
+
136
+ readonly attribute unsigned long max_ULong;
137
+ readonly attribute unsigned long min_ULong;
138
+
139
+ readonly attribute short max_Short;
140
+ readonly attribute short min_Short;
141
+
142
+ readonly attribute unsigned short max_UShort;
143
+ readonly attribute unsigned short min_UShort;
144
+
145
+ readonly attribute octet max_Octet;
146
+ readonly attribute octet min_Octet;
147
+
148
+ TString2 get_string();
149
+
150
+ attribute TString3 _Message;
151
+
152
+ attribute TShortSeq Numbers;
153
+
154
+ readonly attribute TDoubleSeq list_of_doubles;
155
+
156
+ attribute S1Seq StructSeq;
157
+
158
+ attribute TLongCube theCube;
159
+
160
+ attribute any AnyValue;
161
+
162
+ readonly attribute Hello selfref;
163
+
164
+ attribute any S3Value;
165
+
166
+ attribute U1 UnionValue;
167
+
168
+ attribute U2 UnionValue2;
169
+
170
+ attribute U3 UnionValue3;
171
+
172
+ attribute U4 UnionValue4;
173
+
174
+ long run_test(in TString instr, inout string inoutstr, out string outstr);
175
+
176
+ /// A method to shutdown the ORB
177
+ /**
178
+ * This method is used to simplify the test shutdown process
179
+ */
180
+ oneway void shutdown ();
181
+ };
182
+ };