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,102 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
|
15
|
+
OPTIONS = {
|
16
|
+
:use_implement => false,
|
17
|
+
:orb_debuglevel => 0,
|
18
|
+
:iorfile => 'server.ior'
|
19
|
+
}
|
20
|
+
|
21
|
+
ARGV.options do |opts|
|
22
|
+
script_name = File.basename($0)
|
23
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
24
|
+
|
25
|
+
opts.separator ""
|
26
|
+
|
27
|
+
opts.on("--o IORFILE",
|
28
|
+
"Set IOR filename.",
|
29
|
+
"Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
|
30
|
+
opts.on("--d LVL",
|
31
|
+
"Set ORBDebugLevel value.",
|
32
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
33
|
+
opts.on("--use-implement",
|
34
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
35
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
36
|
+
|
37
|
+
opts.separator ""
|
38
|
+
|
39
|
+
opts.on("-h", "--help",
|
40
|
+
"Show this help message.") { puts opts; exit }
|
41
|
+
|
42
|
+
opts.parse!
|
43
|
+
end
|
44
|
+
|
45
|
+
if OPTIONS[:use_implement]
|
46
|
+
require 'corba/poa'
|
47
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
48
|
+
else
|
49
|
+
require 'TestS.rb'
|
50
|
+
end
|
51
|
+
|
52
|
+
class MyHello < PortableServer::Servant
|
53
|
+
include POA::Test::Hello
|
54
|
+
include POA::Test::Hello_2
|
55
|
+
|
56
|
+
def initialize(orb)
|
57
|
+
@orb = orb
|
58
|
+
end
|
59
|
+
|
60
|
+
def get_string()
|
61
|
+
"Hello there!"
|
62
|
+
end
|
63
|
+
|
64
|
+
def get_string_2()
|
65
|
+
"Hello there! (2nd edition)"
|
66
|
+
end
|
67
|
+
|
68
|
+
def shutdown()
|
69
|
+
@orb.shutdown()
|
70
|
+
end
|
71
|
+
end #of servant MyHello
|
72
|
+
|
73
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
74
|
+
|
75
|
+
obj = orb.resolve_initial_references('RootPOA')
|
76
|
+
|
77
|
+
root_poa = PortableServer::POA._narrow(obj)
|
78
|
+
|
79
|
+
poa_man = root_poa.the_POAManager
|
80
|
+
|
81
|
+
poa_man.activate
|
82
|
+
|
83
|
+
hello_srv = MyHello.new(orb)
|
84
|
+
|
85
|
+
hello_obj = hello_srv._this()
|
86
|
+
|
87
|
+
hello_ior = orb.object_to_string(hello_obj)
|
88
|
+
|
89
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
90
|
+
io.write hello_ior
|
91
|
+
}
|
92
|
+
|
93
|
+
Signal.trap('INT') do
|
94
|
+
puts "SIGINT - shutting down ORB..."
|
95
|
+
orb.shutdown()
|
96
|
+
end
|
97
|
+
|
98
|
+
if Signal.list.has_key?('USR2')
|
99
|
+
Signal.trap('USR2', 'EXIT')
|
100
|
+
end
|
101
|
+
|
102
|
+
orb.run
|
data/test/Nil/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,52 @@
|
|
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
|
+
clt = Test.new
|
45
|
+
|
46
|
+
if !clt.run('test.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
47
|
+
exit(255)
|
48
|
+
end
|
49
|
+
|
50
|
+
exrc = clt.wait(400)
|
51
|
+
|
52
|
+
exit(exrc)
|
data/test/Nil/test.rb
ADDED
@@ -0,0 +1,78 @@
|
|
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
|
+
:ior => 'corbaname::foo'
|
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 IOR",
|
30
|
+
"Set IOR.",
|
31
|
+
"Default: 'corbaname::foo'") { |v| OPTIONS[:ior]=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/poa'
|
49
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
50
|
+
else
|
51
|
+
require 'TestS.rb'
|
52
|
+
end
|
53
|
+
|
54
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
55
|
+
|
56
|
+
begin
|
57
|
+
tmp = orb.string_to_object(OPTIONS[:ior])
|
58
|
+
|
59
|
+
assert 'No Nil object reference returned on invalid IOR', CORBA.is_nil(tmp)
|
60
|
+
|
61
|
+
assert 'No Nil object returned on invalid IOR', tmp.nil?
|
62
|
+
|
63
|
+
assert 'No Nil object reference returned on #_narrow of nil', CORBA.is_nil(Test::Hello._narrow(tmp))
|
64
|
+
|
65
|
+
assert 'No Nil object returned on #_narrow of nil', Test::Hello._narrow(tmp).nil?
|
66
|
+
|
67
|
+
o = orb.resolve_initial_references('RootPOA')
|
68
|
+
|
69
|
+
rootpoa = PortableServer::POA._narrow(o)
|
70
|
+
|
71
|
+
assert_not 'Failed to resolve RootPOA', CORBA.is_nil(rootpoa) || !rootpoa.is_a?(PortableServer::POA)
|
72
|
+
|
73
|
+
assert 'Not nil returned for RootPOA.the_parent', CORBA.is_nil(rootpoa.the_parent) && rootpoa.the_parent.nil?
|
74
|
+
|
75
|
+
ensure
|
76
|
+
orb.destroy()
|
77
|
+
end
|
78
|
+
|
@@ -0,0 +1,179 @@
|
|
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
|
+
TEST_ALL = 0
|
18
|
+
TEST_STATE = 1
|
19
|
+
TEST_OPERATION = 2
|
20
|
+
TEST_EXCEPTION = 3
|
21
|
+
|
22
|
+
OPTIONS = {
|
23
|
+
:use_implement => false,
|
24
|
+
:orb_debuglevel => 0,
|
25
|
+
:iorfile => 'file://server.ior',
|
26
|
+
:test => TEST_ALL
|
27
|
+
}
|
28
|
+
|
29
|
+
ARGV.options do |opts|
|
30
|
+
script_name = File.basename($0)
|
31
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
32
|
+
|
33
|
+
opts.separator ""
|
34
|
+
|
35
|
+
opts.on("--k IORFILE",
|
36
|
+
"Set IOR.",
|
37
|
+
"Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
|
38
|
+
opts.on("--d LVL",
|
39
|
+
"Set ORBDebugLevel value.",
|
40
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
41
|
+
opts.on("--use-implement",
|
42
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
43
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
44
|
+
|
45
|
+
opts.separator ""
|
46
|
+
|
47
|
+
opts.on("-h", "--help",
|
48
|
+
"Show this help message.") { puts opts; exit }
|
49
|
+
|
50
|
+
opts.parse!
|
51
|
+
end
|
52
|
+
|
53
|
+
if OPTIONS[:use_implement]
|
54
|
+
require 'corba'
|
55
|
+
CORBA.implement('test.idl', OPTIONS)
|
56
|
+
else
|
57
|
+
require 'testC'
|
58
|
+
end
|
59
|
+
|
60
|
+
def dump_node(node, indent)
|
61
|
+
return if node.nil?
|
62
|
+
|
63
|
+
if $VERBOSE
|
64
|
+
STDERR.print ' ' * indent
|
65
|
+
|
66
|
+
if node.is_a?(StringNode)
|
67
|
+
STDERR.puts("#{node} <StringNode> #{node.name}")
|
68
|
+
else
|
69
|
+
STDERR.puts("#{node} <BaseNode> #{node.name}")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
dump_node(node.left, indent + 1)
|
74
|
+
dump_node(node.right, indent + 1)
|
75
|
+
end
|
76
|
+
|
77
|
+
def dump_tree(tc)
|
78
|
+
if $VERBOSE
|
79
|
+
STDERR.puts "start tree dump #{tc}"
|
80
|
+
end
|
81
|
+
|
82
|
+
dump_node(tc.root, 1)
|
83
|
+
|
84
|
+
if $VERBOSE
|
85
|
+
STDERR.puts "end tree dump #{tc}"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_state(abs)
|
90
|
+
raise CORBA::BAD_PARAM.new unless abs.is_a?(TreeController)
|
91
|
+
dump_tree(abs)
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_operation(abs)
|
95
|
+
retval = abs.base_op('base_op')
|
96
|
+
if $VERBOSE
|
97
|
+
STDERR.puts retval
|
98
|
+
end
|
99
|
+
|
100
|
+
concrete = Foo::_narrow(abs)
|
101
|
+
|
102
|
+
retval = concrete.foo_op('foo_op')
|
103
|
+
if $VERBOSE
|
104
|
+
STDERR.puts retval
|
105
|
+
end
|
106
|
+
|
107
|
+
retval = concrete.base_op('base_op')
|
108
|
+
if $VERBOSE
|
109
|
+
STDERR.puts retval
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_exception(abs)
|
114
|
+
begin
|
115
|
+
retval = abs.base_op('bad_name')
|
116
|
+
if $VERBOSE
|
117
|
+
STDERR.puts retval
|
118
|
+
end
|
119
|
+
rescue BadInput => ex
|
120
|
+
if $VERBOSE
|
121
|
+
STDERR.puts ex.to_s
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
127
|
+
|
128
|
+
begin
|
129
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
130
|
+
|
131
|
+
assert_not 'Object reference is nil.', CORBA::is_nil(obj)
|
132
|
+
|
133
|
+
passer = Passer._narrow(obj)
|
134
|
+
|
135
|
+
if OPTIONS[:test] == TEST_STATE || OPTIONS[:test] == TEST_ALL
|
136
|
+
# make sure valuetype factories are registered
|
137
|
+
BaseNodeFactory.get_factory(orb)
|
138
|
+
StringNodeFactory.get_factory(orb)
|
139
|
+
TreeControllerFactory.get_factory(orb)
|
140
|
+
|
141
|
+
package = passer.pass_state()
|
142
|
+
if CORBA::is_nil(package)
|
143
|
+
STDERR.puts "ERROR: passer.pass_state returned nil 'out' arg (#{package})"
|
144
|
+
end
|
145
|
+
|
146
|
+
test_state(package)
|
147
|
+
end
|
148
|
+
|
149
|
+
if OPTIONS[:test] != TEST_STATE
|
150
|
+
package = passer.pass_ops()
|
151
|
+
if CORBA::is_nil(package)
|
152
|
+
STDERR.puts "ERROR: passer.pass_ops returned nil 'out' arg (#{package})"
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
if OPTIONS[:test] == TEST_OPERATION || OPTIONS[:test] == TEST_ALL
|
157
|
+
test_operation(package)
|
158
|
+
end
|
159
|
+
|
160
|
+
if OPTIONS[:test] == TEST_EXCEPTION || OPTIONS[:test] == TEST_ALL
|
161
|
+
test_exception(package)
|
162
|
+
end
|
163
|
+
|
164
|
+
if OPTIONS[:test] == TEST_ALL
|
165
|
+
package = passer.pass_nil()
|
166
|
+
unless CORBA::is_nil(package)
|
167
|
+
STDERR.puts "ERROR: passer.pass_state did NOT return nil 'out' arg (#{package})"
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
# shutdown passer service
|
172
|
+
|
173
|
+
passer.shutdown()
|
174
|
+
|
175
|
+
ensure
|
176
|
+
|
177
|
+
orb.destroy()
|
178
|
+
|
179
|
+
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:010000000f00000049444c3a7061737365723a312e30000001000000000000006c000000010102000d0000003137322e31362e372e3234380000cc051b00000014010f0052535486fe04522ec80e000000000001000000010000000002000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
|
@@ -0,0 +1,149 @@
|
|
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 Foo_i < POA::Foo
|
53
|
+
def base_op (inarg)
|
54
|
+
if inarg == 'base_op'
|
55
|
+
return 'good'
|
56
|
+
end
|
57
|
+
raise BadInput.new('expected "base_op"')
|
58
|
+
end
|
59
|
+
def foo_op (inarg)
|
60
|
+
if inarg == 'foo_op'
|
61
|
+
return 'good'
|
62
|
+
end
|
63
|
+
raise BadInput.new('expected "foo_op"')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
class Passer_i < POA::Passer
|
68
|
+
def initialize(orb, poa)
|
69
|
+
@orb = orb
|
70
|
+
@poa = poa
|
71
|
+
end
|
72
|
+
|
73
|
+
def pass_ops ()
|
74
|
+
foo = Foo_i.new
|
75
|
+
|
76
|
+
objid = @poa.activate_object(foo)
|
77
|
+
|
78
|
+
object = @poa.id_to_reference(objid)
|
79
|
+
|
80
|
+
[Foo::_narrow(object)]
|
81
|
+
end
|
82
|
+
|
83
|
+
def pass_state ()
|
84
|
+
tc = TreeController.new
|
85
|
+
|
86
|
+
# Create the root node.
|
87
|
+
sn = StringNode.new
|
88
|
+
sn.name = "RootNode"
|
89
|
+
tc.root = sn
|
90
|
+
|
91
|
+
# Create the left leaf.
|
92
|
+
l_dummy = StringNode.new
|
93
|
+
l_dummy.name = "LeftNode"
|
94
|
+
sn.left = l_dummy
|
95
|
+
|
96
|
+
# Create the right leaf.
|
97
|
+
r_dummy = StringNode.new
|
98
|
+
r_dummy.name = "RightNode"
|
99
|
+
sn.right = r_dummy
|
100
|
+
|
101
|
+
[tc]
|
102
|
+
end
|
103
|
+
|
104
|
+
def pass_nil ()
|
105
|
+
[nil]
|
106
|
+
end
|
107
|
+
|
108
|
+
def shutdown ()
|
109
|
+
@orb.shutdown()
|
110
|
+
end
|
111
|
+
end #of servant Passer_i
|
112
|
+
|
113
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
114
|
+
|
115
|
+
# make sure valuetype factories are registered
|
116
|
+
BaseNodeFactory.get_factory(orb)
|
117
|
+
StringNodeFactory.get_factory(orb)
|
118
|
+
TreeControllerFactory.get_factory(orb)
|
119
|
+
|
120
|
+
obj = orb.resolve_initial_references('RootPOA')
|
121
|
+
|
122
|
+
root_poa = PortableServer::POA._narrow(obj)
|
123
|
+
|
124
|
+
poa_man = root_poa.the_POAManager
|
125
|
+
|
126
|
+
poa_man.activate
|
127
|
+
|
128
|
+
passer = Passer_i.new(orb, root_poa)
|
129
|
+
|
130
|
+
obj = passer._this()
|
131
|
+
|
132
|
+
ior = orb.object_to_string(obj)
|
133
|
+
|
134
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
135
|
+
io.write ior
|
136
|
+
}
|
137
|
+
|
138
|
+
Signal.trap('INT') do
|
139
|
+
puts "SIGINT - shutting down ORB..."
|
140
|
+
orb.shutdown()
|
141
|
+
end
|
142
|
+
|
143
|
+
if Signal.list.has_key?('USR2')
|
144
|
+
Signal.trap('USR2', 'EXIT')
|
145
|
+
end
|
146
|
+
|
147
|
+
orb.run
|
148
|
+
|
149
|
+
exit 0
|
@@ -0,0 +1,53 @@
|
|
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
|
+
exception BadInput
|
13
|
+
{
|
14
|
+
string message;
|
15
|
+
};
|
16
|
+
|
17
|
+
abstract interface base
|
18
|
+
{
|
19
|
+
string base_op (in string inarg)
|
20
|
+
raises (BadInput);
|
21
|
+
};
|
22
|
+
|
23
|
+
interface foo : base
|
24
|
+
{
|
25
|
+
string foo_op (in string inarg)
|
26
|
+
raises (BadInput);
|
27
|
+
};
|
28
|
+
|
29
|
+
interface passer
|
30
|
+
{
|
31
|
+
void pass_ops (out base outarg);
|
32
|
+
void pass_state (out base outarg);
|
33
|
+
void pass_nil (out base outarg);
|
34
|
+
oneway void shutdown ();
|
35
|
+
};
|
36
|
+
|
37
|
+
valuetype BaseNode
|
38
|
+
{
|
39
|
+
public BaseNode left;
|
40
|
+
public BaseNode right;
|
41
|
+
};
|
42
|
+
|
43
|
+
valuetype StringNode : BaseNode
|
44
|
+
{
|
45
|
+
public string name;
|
46
|
+
};
|
47
|
+
|
48
|
+
valuetype TreeController supports base
|
49
|
+
{
|
50
|
+
public BaseNode root;
|
51
|
+
};
|
52
|
+
|
53
|
+
|