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.
- checksums.yaml +7 -0
- data/CHANGES +159 -0
- data/LICENSE +59 -0
- data/README +62 -0
- data/THANKS +52 -0
- data/bin/r2corba +8 -0
- data/bin/r2corba.bat +20 -0
- data/bin/ridlc +11 -0
- data/bin/ridlc.bat +23 -0
- data/bin/rins +7 -0
- data/bin/rins.bat +19 -0
- data/ext/.keep +0 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +231 -0
- data/lib/corba/cbase/Request.rb +134 -0
- data/lib/corba/cbase/Streams.rb +129 -0
- data/lib/corba/cbase/Stub.rb +19 -0
- data/lib/corba/cbase/Typecode.rb +441 -0
- data/lib/corba/cbase/Values.rb +129 -0
- data/lib/corba/cbase/exception.rb +66 -0
- data/lib/corba/cbase/poa.rb +23 -0
- data/lib/corba/cbase/policies.rb +78 -0
- data/lib/corba/cbase/post_require.rb +14 -0
- data/lib/corba/cbase/require.rb +28 -0
- data/lib/corba/cmds/base.rb +85 -0
- data/lib/corba/cmds/test.rb +30 -0
- data/lib/corba/common/Any.rb +91 -0
- data/lib/corba/common/IDL.rb +104 -0
- data/lib/corba/common/ORB.rb +368 -0
- data/lib/corba/common/Object.rb +208 -0
- data/lib/corba/common/Request.rb +20 -0
- data/lib/corba/common/Servant.rb +108 -0
- data/lib/corba/common/Struct.rb +22 -0
- data/lib/corba/common/Stub.rb +79 -0
- data/lib/corba/common/Typecode.rb +1121 -0
- data/lib/corba/common/Union.rb +56 -0
- data/lib/corba/common/Values.rb +92 -0
- data/lib/corba/common/const.rb +22 -0
- data/lib/corba/common/exception.rb +68 -0
- data/lib/corba/common/require.rb +27 -0
- data/lib/corba/common/version.rb +22 -0
- data/lib/corba/idl/BiDirPolicyC.rb +63 -0
- data/lib/corba/idl/CosNamingC.rb +461 -0
- data/lib/corba/idl/CosNamingS.rb +309 -0
- data/lib/corba/idl/IDL.rb +21 -0
- data/lib/corba/idl/IORTable.pidl +62 -0
- data/lib/corba/idl/IORTableC.rb +117 -0
- data/lib/corba/idl/MessagingC.rb +904 -0
- data/lib/corba/idl/POAC.rb +930 -0
- data/lib/corba/idl/TAO_Ext.pidl +46 -0
- data/lib/corba/idl/TAO_ExtC.rb +179 -0
- data/lib/corba/idl/r2c_orb.rb +572 -0
- data/lib/corba/idl/require.rb +20 -0
- data/lib/corba/jbase/Any.rb +273 -0
- data/lib/corba/jbase/IORMap.rb +36 -0
- data/lib/corba/jbase/ORB.rb +99 -0
- data/lib/corba/jbase/Object.rb +98 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +247 -0
- data/lib/corba/jbase/ServerRequest.rb +128 -0
- data/lib/corba/jbase/Streams.rb +671 -0
- data/lib/corba/jbase/Stub.rb +38 -0
- data/lib/corba/jbase/Typecode.rb +520 -0
- data/lib/corba/jbase/Values.rb +173 -0
- data/lib/corba/jbase/exception.rb +106 -0
- data/lib/corba/jbase/poa.rb +229 -0
- data/lib/corba/jbase/policies.rb +300 -0
- data/lib/corba/jbase/post_require.rb +14 -0
- data/lib/corba/jbase/require.rb +86 -0
- data/lib/corba/naming.rb +14 -0
- data/lib/corba/naming_service.rb +15 -0
- data/lib/corba/poa.rb +15 -0
- data/lib/corba/policies.rb +18 -0
- data/lib/corba/require.rb +17 -0
- data/lib/corba/svcs/ins/cos_naming.rb +426 -0
- data/lib/corba/svcs/ins/ins.rb +526 -0
- data/lib/corba/svcs/ins/naming_service.rb +119 -0
- data/lib/corba.rb +16 -0
- data/lib/ridlbe/ruby/config.rb +336 -0
- data/lib/ridlbe/ruby/orb.pidlc +0 -0
- data/lib/ridlbe/ruby/require.rb +16 -0
- data/lib/ridlbe/ruby/walker.rb +1582 -0
- data/mkrf_conf_bingem.rb +101 -0
- data/rakelib/bin.rake +80 -0
- data/rakelib/bin.rb +146 -0
- data/rakelib/build.rake +87 -0
- data/rakelib/config.rake +52 -0
- data/rakelib/config.rb +450 -0
- data/rakelib/ext.rake +242 -0
- data/rakelib/ext.rb +308 -0
- data/rakelib/ext_r2tao.rb +232 -0
- data/rakelib/gem.rake +212 -0
- data/rakelib/gem.rb +146 -0
- data/rakelib/package.rake +26 -0
- data/rakelib/test.rake +23 -0
- data/test/BiDirectional/Test.idl +34 -0
- data/test/BiDirectional/client.rb +132 -0
- data/test/BiDirectional/run_test.rb +68 -0
- data/test/BiDirectional/server.ior +1 -0
- data/test/BiDirectional/server.rb +169 -0
- data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
- data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
- data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
- data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
- data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
- data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
- data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
- data/test/Collocation/Diamond.idl +39 -0
- data/test/Collocation/run_test.rb +52 -0
- data/test/Collocation/test.rb +195 -0
- data/test/Connect_Timeout/Test.idl +27 -0
- data/test/Connect_Timeout/client.rb +111 -0
- data/test/Connect_Timeout/run_test.rb +52 -0
- data/test/DII/Test.idl +27 -0
- data/test/DII/client.rb +115 -0
- data/test/DII/run_test.rb +69 -0
- data/test/DII/server.ior +1 -0
- data/test/DII/server.rb +95 -0
- data/test/DSI/Test.idl +27 -0
- data/test/DSI/client.rb +66 -0
- data/test/DSI/run_test.rb +69 -0
- data/test/DSI/server.ior +1 -0
- data/test/DSI/server.rb +106 -0
- data/test/Exceptions/Test.idl +48 -0
- data/test/Exceptions/client.rb +118 -0
- data/test/Exceptions/run_test.rb +69 -0
- data/test/Exceptions/server.ior +1 -0
- data/test/Exceptions/server.rb +131 -0
- data/test/Hello/Test.idl +27 -0
- data/test/Hello/client.rb +78 -0
- data/test/Hello/run_test.rb +71 -0
- data/test/Hello/server.rb +95 -0
- data/test/IDL_Test/Test.idl +113 -0
- data/test/IDL_Test/Test_inc.idl +17 -0
- data/test/IDL_Test/client.rb +102 -0
- data/test/IDL_Test/run_test.rb +69 -0
- data/test/IDL_Test/server.ior +1 -0
- data/test/IDL_Test/server.rb +99 -0
- data/test/IORMap/Test.idl +27 -0
- data/test/IORMap/client.rb +73 -0
- data/test/IORMap/run_test.rb +69 -0
- data/test/IORMap/server.ior +1 -0
- data/test/IORMap/server.rb +114 -0
- data/test/IORTable/Test.idl +27 -0
- data/test/IORTable/client.rb +75 -0
- data/test/IORTable/run_test.rb +69 -0
- data/test/IORTable/server.ior +1 -0
- data/test/IORTable/server.rb +130 -0
- data/test/Implicit_Conversion/Test.idl +31 -0
- data/test/Implicit_Conversion/client.rb +110 -0
- data/test/Implicit_Conversion/run_test.rb +69 -0
- data/test/Implicit_Conversion/server.ior +1 -0
- data/test/Implicit_Conversion/server.rb +99 -0
- data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
- data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
- data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
- data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
- data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
- data/test/Multi_Threading/Simple/Test.idl +27 -0
- data/test/Multi_Threading/Simple/client.rb +88 -0
- data/test/Multi_Threading/Simple/run_test.rb +69 -0
- data/test/Multi_Threading/Simple/server.ior +1 -0
- data/test/Multi_Threading/Simple/server.rb +118 -0
- data/test/Multi_Threading/Threads/Test.idl +31 -0
- data/test/Multi_Threading/Threads/client.rb +80 -0
- data/test/Multi_Threading/Threads/run_test.rb +76 -0
- data/test/Multi_Threading/Threads/server.ior +1 -0
- data/test/Multi_Threading/Threads/server.rb +119 -0
- data/test/Multi_Threading/Threads/watchdog.ior +1 -0
- data/test/Multi_Threading/Threads/watchdog.rb +87 -0
- data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
- data/test/Multiple_Servant_Interfaces/client.rb +70 -0
- data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
- data/test/Multiple_Servant_Interfaces/server.ior +1 -0
- data/test/Multiple_Servant_Interfaces/server.rb +102 -0
- data/test/Nil/Test.idl +27 -0
- data/test/Nil/run_test.rb +52 -0
- data/test/Nil/test.rb +78 -0
- data/test/OBV/AbstractInterface/client.rb +179 -0
- data/test/OBV/AbstractInterface/run_test.rb +69 -0
- data/test/OBV/AbstractInterface/server.ior +1 -0
- data/test/OBV/AbstractInterface/server.rb +149 -0
- data/test/OBV/AbstractInterface/test.idl +53 -0
- data/test/OBV/Custom/OBV.idl +18 -0
- data/test/OBV/Custom/OBV_impl.rb +40 -0
- data/test/OBV/Custom/client.rb +86 -0
- data/test/OBV/Custom/run_test.rb +69 -0
- data/test/OBV/Custom/server.ior +1 -0
- data/test/OBV/Custom/server.rb +100 -0
- data/test/OBV/Simple/OBV.idl +15 -0
- data/test/OBV/Simple/OBV_impl.rb +26 -0
- data/test/OBV/Simple/client.rb +86 -0
- data/test/OBV/Simple/run_test.rb +69 -0
- data/test/OBV/Simple/server.ior +1 -0
- data/test/OBV/Simple/server.rb +100 -0
- data/test/OBV/Simple_Event/Event.idl +15 -0
- data/test/OBV/Simple_Event/Event_impl.rb +26 -0
- data/test/OBV/Simple_Event/client.rb +86 -0
- data/test/OBV/Simple_Event/run_test.rb +69 -0
- data/test/OBV/Simple_Event/server.ior +1 -0
- data/test/OBV/Simple_Event/server.rb +100 -0
- data/test/OBV/Supports/client.rb +116 -0
- data/test/OBV/Supports/run_test.rb +69 -0
- data/test/OBV/Supports/server.ior +1 -0
- data/test/OBV/Supports/server.rb +103 -0
- data/test/OBV/Supports/supports.idl +33 -0
- data/test/OBV/Supports/supports_impl.rb +57 -0
- data/test/OBV/Tree/client.rb +116 -0
- data/test/OBV/Tree/run_test.rb +69 -0
- data/test/OBV/Tree/server.ior +1 -0
- data/test/OBV/Tree/server.rb +117 -0
- data/test/OBV/Tree/test.idl +32 -0
- data/test/OBV/Truncatable/Extra.idl +27 -0
- data/test/OBV/Truncatable/Truncatable.idl +105 -0
- data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
- data/test/OBV/Truncatable/client.rb +279 -0
- data/test/OBV/Truncatable/run_test.rb +69 -0
- data/test/OBV/Truncatable/server.ior +1 -0
- data/test/OBV/Truncatable/server.rb +89 -0
- data/test/OBV/ValueBox/client.rb +497 -0
- data/test/OBV/ValueBox/run_test.rb +69 -0
- data/test/OBV/ValueBox/server.ior +1 -0
- data/test/OBV/ValueBox/server.rb +271 -0
- data/test/OBV/ValueBox/valuebox.idl +101 -0
- data/test/OBV/ValueBox/vb_basic.idl +75 -0
- data/test/OBV/ValueBox/vb_struct.idl +68 -0
- data/test/OBV/ValueBox/vb_union.idl +21 -0
- data/test/Object/Test.idl +27 -0
- data/test/Object/client.rb +103 -0
- data/test/Object/run_test.rb +69 -0
- data/test/Object/server.ior +1 -0
- data/test/Object/server.rb +126 -0
- data/test/POA/Test.idl +27 -0
- data/test/POA/run_test.rb +52 -0
- data/test/POA/test.rb +112 -0
- data/test/Param_Test/Test.idl +182 -0
- data/test/Param_Test/client.rb +277 -0
- data/test/Param_Test/run_test.rb +69 -0
- data/test/Param_Test/server.ior +1 -0
- data/test/Param_Test/server.rb +296 -0
- data/test/Performance/Simple/Test.idl +27 -0
- data/test/Performance/Simple/client.rb +90 -0
- data/test/Performance/Simple/run_test.rb +69 -0
- data/test/Performance/Simple/server.ior +1 -0
- data/test/Performance/Simple/server.rb +95 -0
- data/test/Policies/Test.idl +27 -0
- data/test/Policies/run_test.rb +52 -0
- data/test/Policies/test.rb +144 -0
- data/test/Timeout/client.rb +207 -0
- data/test/Timeout/run_test.rb +69 -0
- data/test/Timeout/server.ior +1 -0
- data/test/Timeout/server.rb +109 -0
- data/test/Timeout/test.idl +19 -0
- data/test/lib/assert.rb +43 -0
- data/test/lib/test.rb +542 -0
- data/test/test_runner.rb +193 -0
- metadata +342 -0
@@ -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
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
require 'lib/assert.rb'
|
15
|
+
include TestUtil::Assertions
|
16
|
+
|
17
|
+
OPTIONS = {
|
18
|
+
:use_implement => false,
|
19
|
+
:orb_debuglevel => 0,
|
20
|
+
:iorfile => 'file://server.ior',
|
21
|
+
}
|
22
|
+
|
23
|
+
ARGV.options do |opts|
|
24
|
+
script_name = File.basename($0)
|
25
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
26
|
+
|
27
|
+
opts.separator ""
|
28
|
+
|
29
|
+
opts.on("--k IORFILE",
|
30
|
+
"Set IOR.",
|
31
|
+
"Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
|
32
|
+
opts.on("--d LVL",
|
33
|
+
"Set ORBDebugLevel value.",
|
34
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
35
|
+
opts.on("--use-implement",
|
36
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
37
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
38
|
+
|
39
|
+
opts.separator ""
|
40
|
+
|
41
|
+
opts.on("-h", "--help",
|
42
|
+
"Show this help message.") { puts opts; exit }
|
43
|
+
|
44
|
+
opts.parse!
|
45
|
+
end
|
46
|
+
|
47
|
+
if OPTIONS[:use_implement]
|
48
|
+
require 'corba'
|
49
|
+
CORBA.implement('test.idl', OPTIONS)
|
50
|
+
else
|
51
|
+
require 'testC'
|
52
|
+
end
|
53
|
+
|
54
|
+
def dump_node(node, indent)
|
55
|
+
return if node.nil?
|
56
|
+
|
57
|
+
if $VERBOSE
|
58
|
+
STDERR.print ' ' * indent
|
59
|
+
|
60
|
+
if node.is_a?(StringNode)
|
61
|
+
STDERR.puts("#{node} <StringNode> #{node.name}")
|
62
|
+
else
|
63
|
+
STDERR.puts("#{node} <BaseNode> #{node.name}")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
dump_node(node.left, indent + 1)
|
68
|
+
dump_node(node.right, indent + 1)
|
69
|
+
end
|
70
|
+
|
71
|
+
def dump_tree(tc)
|
72
|
+
if $VERBOSE
|
73
|
+
STDERR.puts "start tree dump #{tc}"
|
74
|
+
end
|
75
|
+
|
76
|
+
dump_node(tc.root, 1)
|
77
|
+
|
78
|
+
if $VERBOSE
|
79
|
+
STDERR.puts "end tree dump #{tc}"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_state(abs)
|
84
|
+
raise CORBA::BAD_PARAM.new unless abs.is_a?(TreeController)
|
85
|
+
dump_tree(abs)
|
86
|
+
end
|
87
|
+
|
88
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
89
|
+
|
90
|
+
begin
|
91
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
92
|
+
|
93
|
+
assert_not 'Object reference is nil.', CORBA::is_nil(obj)
|
94
|
+
|
95
|
+
passer = Passer._narrow(obj)
|
96
|
+
|
97
|
+
# make sure valuetype factories are registered
|
98
|
+
BaseNodeFactory.get_factory(orb)
|
99
|
+
StringNodeFactory.get_factory(orb)
|
100
|
+
TreeControllerFactory.get_factory(orb)
|
101
|
+
|
102
|
+
package = passer.pass_tree()
|
103
|
+
if CORBA::is_nil(package)
|
104
|
+
STDERR.puts "ERROR: passer.pass_state returned nil 'out' arg (#{package})"
|
105
|
+
end
|
106
|
+
|
107
|
+
test_state(package)
|
108
|
+
# shutdown passer service
|
109
|
+
|
110
|
+
passer.shutdown()
|
111
|
+
|
112
|
+
ensure
|
113
|
+
|
114
|
+
orb.destroy()
|
115
|
+
|
116
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
OPTIONS = {
|
14
|
+
:debug_opt => '',
|
15
|
+
:use_implement => '--use-implement'
|
16
|
+
}
|
17
|
+
|
18
|
+
require 'optparse'
|
19
|
+
|
20
|
+
ARGV.options do |opts|
|
21
|
+
script_name = File.basename($0)
|
22
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
23
|
+
|
24
|
+
opts.separator ""
|
25
|
+
|
26
|
+
opts.on("-d",
|
27
|
+
"Run with debugging output.",
|
28
|
+
"Default: false") { OPTIONS[:debug_opt] = '--d 10' }
|
29
|
+
opts.on("--use-stubs",
|
30
|
+
"Use stubs generated by RIDL.",
|
31
|
+
"Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
|
32
|
+
|
33
|
+
opts.separator ""
|
34
|
+
|
35
|
+
opts.on("-h", "--help",
|
36
|
+
"Show this help message.") { puts opts; exit }
|
37
|
+
|
38
|
+
opts.parse!
|
39
|
+
end
|
40
|
+
|
41
|
+
require 'lib/test.rb'
|
42
|
+
include TestUtil
|
43
|
+
|
44
|
+
ior_file = 'server.ior'
|
45
|
+
|
46
|
+
TestUtil.remove_file(ior_file)
|
47
|
+
|
48
|
+
srv = Test.new
|
49
|
+
|
50
|
+
exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
51
|
+
|
52
|
+
TestUtil.wait_for_file(ior_file, 400)
|
53
|
+
|
54
|
+
clt = Test.new
|
55
|
+
|
56
|
+
if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
57
|
+
srv.kill(100)
|
58
|
+
exit(255)
|
59
|
+
end
|
60
|
+
|
61
|
+
exrc = clt.wait(400)
|
62
|
+
|
63
|
+
if exrc ==0
|
64
|
+
srv.wait(400)
|
65
|
+
else
|
66
|
+
srv.wait_term(400)
|
67
|
+
end
|
68
|
+
|
69
|
+
exit(exrc)
|
@@ -0,0 +1 @@
|
|
1
|
+
IOR:010000000f00000049444c3a7061737365723a312e30000001000000000000006c000000010102000d0000003137322e31362e372e3234380000ea051b00000014010f0052535496fe045201970d000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
|
@@ -0,0 +1,117 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
|
15
|
+
OPTIONS = {
|
16
|
+
:use_implement => false,
|
17
|
+
:orb_debuglevel => 0,
|
18
|
+
:iorfile => 'server.ior'
|
19
|
+
}
|
20
|
+
|
21
|
+
ARGV.options do |opts|
|
22
|
+
script_name = File.basename($0)
|
23
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
24
|
+
|
25
|
+
opts.separator ""
|
26
|
+
|
27
|
+
opts.on("--o IORFILE",
|
28
|
+
"Set IOR filename.",
|
29
|
+
"Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
|
30
|
+
opts.on("--d LVL",
|
31
|
+
"Set ORBDebugLevel value.",
|
32
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
33
|
+
opts.on("--use-implement",
|
34
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
35
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
36
|
+
|
37
|
+
opts.separator ""
|
38
|
+
|
39
|
+
opts.on("-h", "--help",
|
40
|
+
"Show this help message.") { puts opts; exit }
|
41
|
+
|
42
|
+
opts.parse!
|
43
|
+
end
|
44
|
+
|
45
|
+
if OPTIONS[:use_implement]
|
46
|
+
require 'corba/poa'
|
47
|
+
CORBA.implement('test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
48
|
+
else
|
49
|
+
require 'testS'
|
50
|
+
end
|
51
|
+
|
52
|
+
class Passer_i < POA::Passer
|
53
|
+
def initialize(orb)
|
54
|
+
@orb = orb
|
55
|
+
end
|
56
|
+
|
57
|
+
def pass_tree ()
|
58
|
+
tc = TreeController.new
|
59
|
+
|
60
|
+
# Create the root node.
|
61
|
+
sn = StringNode.new
|
62
|
+
sn.name = "RootNode"
|
63
|
+
tc.root = sn
|
64
|
+
|
65
|
+
# Create the left leaf.
|
66
|
+
l_dummy = StringNode.new
|
67
|
+
l_dummy.name = "LeftNode"
|
68
|
+
sn.left = l_dummy
|
69
|
+
|
70
|
+
# Create the right leaf.
|
71
|
+
r_dummy = StringNode.new
|
72
|
+
r_dummy.name = "RightNode"
|
73
|
+
sn.right = r_dummy
|
74
|
+
|
75
|
+
[tc]
|
76
|
+
end
|
77
|
+
|
78
|
+
def shutdown ()
|
79
|
+
@orb.shutdown()
|
80
|
+
end
|
81
|
+
end #of servant Passer_i
|
82
|
+
|
83
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
84
|
+
|
85
|
+
# make sure valuetype factories are registered
|
86
|
+
BaseNodeFactory.get_factory(orb)
|
87
|
+
StringNodeFactory.get_factory(orb)
|
88
|
+
TreeControllerFactory.get_factory(orb)
|
89
|
+
|
90
|
+
obj = orb.resolve_initial_references('RootPOA')
|
91
|
+
|
92
|
+
root_poa = PortableServer::POA._narrow(obj)
|
93
|
+
|
94
|
+
poa_man = root_poa.the_POAManager
|
95
|
+
|
96
|
+
poa_man.activate
|
97
|
+
|
98
|
+
passer = Passer_i.new(orb)
|
99
|
+
|
100
|
+
obj = passer._this()
|
101
|
+
|
102
|
+
ior = orb.object_to_string(obj)
|
103
|
+
|
104
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
105
|
+
io.write ior
|
106
|
+
}
|
107
|
+
|
108
|
+
Signal.trap('INT') do
|
109
|
+
puts "SIGINT - shutting down ORB..."
|
110
|
+
orb.shutdown()
|
111
|
+
end
|
112
|
+
|
113
|
+
if Signal.list.has_key?('USR2')
|
114
|
+
Signal.trap('USR2', 'EXIT')
|
115
|
+
end
|
116
|
+
|
117
|
+
orb.run
|
@@ -0,0 +1,32 @@
|
|
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
|
+
valuetype BaseNode
|
13
|
+
{
|
14
|
+
public BaseNode left;
|
15
|
+
public BaseNode right;
|
16
|
+
};
|
17
|
+
|
18
|
+
valuetype StringNode : BaseNode
|
19
|
+
{
|
20
|
+
public string name;
|
21
|
+
};
|
22
|
+
|
23
|
+
valuetype TreeController
|
24
|
+
{
|
25
|
+
public BaseNode root;
|
26
|
+
};
|
27
|
+
|
28
|
+
interface passer
|
29
|
+
{
|
30
|
+
void pass_tree (out TreeController outarg);
|
31
|
+
oneway void shutdown ();
|
32
|
+
};
|
@@ -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
|
+
// This file contains extra valuetypes which are unknown by the test
|
13
|
+
// server. We should be able to pass these values and have the server
|
14
|
+
// truncate them to the most derived known type.
|
15
|
+
|
16
|
+
#include "Truncatable.idl"
|
17
|
+
|
18
|
+
module OBV_TruncatableTest
|
19
|
+
{
|
20
|
+
//
|
21
|
+
// Base valuetype.
|
22
|
+
//
|
23
|
+
valuetype Extra1 : truncatable TValue1
|
24
|
+
{
|
25
|
+
public unsigned long edata1;
|
26
|
+
};
|
27
|
+
};
|
@@ -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,86 @@
|
|
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
|
+
class Test_impl < POA::OBV_TruncatableTest::Test
|
14
|
+
def initialize(orb)
|
15
|
+
@orb_ = orb
|
16
|
+
end
|
17
|
+
|
18
|
+
def op1(id, iv, desc)
|
19
|
+
tmp = "#{id}: #{desc}"
|
20
|
+
desc = tmp
|
21
|
+
|
22
|
+
ov = ::OBV_TruncatableTest::BaseValue.new
|
23
|
+
ov.basic_data = iv.basic_data
|
24
|
+
[ov, desc]
|
25
|
+
end
|
26
|
+
|
27
|
+
def op2(iv, id, desc)
|
28
|
+
tmp = "#{id}: #{desc}"
|
29
|
+
desc = tmp
|
30
|
+
|
31
|
+
ov = ::OBV_TruncatableTest::TValue1.new
|
32
|
+
ov.basic_data = iv.basic_data
|
33
|
+
ov.data1 = iv.data1
|
34
|
+
[ov, desc]
|
35
|
+
end
|
36
|
+
|
37
|
+
def op3(id, iv, desc)
|
38
|
+
tmp = "#{id}: #{desc}"
|
39
|
+
desc = tmp
|
40
|
+
|
41
|
+
ov = ::OBV_TruncatableTest::TValue4.new
|
42
|
+
nv = ::OBV_TruncatableTest::NestedValue.new
|
43
|
+
nv.data = iv.nv4.data
|
44
|
+
ov.basic_data = iv.basic_data
|
45
|
+
ov.nv4 = nv
|
46
|
+
ov.data4 = iv.data4
|
47
|
+
[ov, desc]
|
48
|
+
end
|
49
|
+
|
50
|
+
def op4(id, iv1, x, iv2, iv3, iv4, desc)
|
51
|
+
tmp = "#{id}: #{desc}"
|
52
|
+
desc = tmp
|
53
|
+
|
54
|
+
ov = ::OBV_TruncatableTest::BaseValue.new
|
55
|
+
|
56
|
+
total = x * (iv1.basic_data + iv2.basic_data +
|
57
|
+
iv3.basic_data + iv4.basic_data)
|
58
|
+
ov.basic_data = total
|
59
|
+
|
60
|
+
[ov, desc]
|
61
|
+
end
|
62
|
+
|
63
|
+
def op5(val, id, desc)
|
64
|
+
ov = ::OBV_TruncatableTest::TValue1.new
|
65
|
+
iv = nil
|
66
|
+
target = CORBA::Any.value_for_any(val)
|
67
|
+
if (target.nil?)
|
68
|
+
STDERR.puts "server:Test_impl::op5 extract failed\n"
|
69
|
+
ov.basic_data = 101
|
70
|
+
ov.data1 = 10101
|
71
|
+
else
|
72
|
+
iv = target
|
73
|
+
tmp = "#{id}: #{desc}"
|
74
|
+
desc = tmp
|
75
|
+
|
76
|
+
ov.basic_data = iv.basic_data
|
77
|
+
ov.data1 = iv.data1
|
78
|
+
end
|
79
|
+
[ov, desc]
|
80
|
+
end
|
81
|
+
|
82
|
+
def shutdown()
|
83
|
+
@orb_.shutdown
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|