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,118 @@
|
|
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 < POA::Test::Hello
|
53
|
+
def initialize(orb)
|
54
|
+
@orb = orb
|
55
|
+
end
|
56
|
+
|
57
|
+
def get_string()
|
58
|
+
"[#{Thread.current}] Hello there!"
|
59
|
+
end
|
60
|
+
|
61
|
+
def shutdown()
|
62
|
+
@orb.shutdown()
|
63
|
+
end
|
64
|
+
end #of servant MyHello
|
65
|
+
|
66
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
67
|
+
|
68
|
+
obj = orb.resolve_initial_references('RootPOA')
|
69
|
+
|
70
|
+
root_poa = PortableServer::POA._narrow(obj)
|
71
|
+
|
72
|
+
poa_man = root_poa.the_POAManager
|
73
|
+
|
74
|
+
poa_man.activate
|
75
|
+
|
76
|
+
hello_srv = MyHello.new(orb)
|
77
|
+
|
78
|
+
hello_obj = hello_srv._this()
|
79
|
+
|
80
|
+
hello_ior = orb.object_to_string(hello_obj)
|
81
|
+
|
82
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
83
|
+
io.write hello_ior
|
84
|
+
}
|
85
|
+
|
86
|
+
Signal.trap('INT') do
|
87
|
+
puts "SIGINT - shutting down ORB..."
|
88
|
+
orb.shutdown()
|
89
|
+
end
|
90
|
+
|
91
|
+
if Signal.list.has_key?('USR2')
|
92
|
+
Signal.trap('USR2', 'EXIT')
|
93
|
+
end
|
94
|
+
|
95
|
+
if defined?(JRUBY_VERSION)
|
96
|
+
# JRuby based jR2CORBA behaves slightly different from MRI based R2CORBA
|
97
|
+
# because the underlying ORB (JacORB) uses an implicit threadpool based
|
98
|
+
# thread-per-request model; so running multiple threads with ORB#run
|
99
|
+
# does not bring anything here
|
100
|
+
orb.run
|
101
|
+
else
|
102
|
+
# TAO, the underlying ORB implementation for MRI base R2CORBA has support
|
103
|
+
# for several multithreading options; the simplest way to set up multithreaded
|
104
|
+
# request processing is starting ORB#run in multiple threads which results
|
105
|
+
# in each of those threads being 're-used' as request processing threads.
|
106
|
+
# NOTE: as MRI Ruby 1.8 threads are 'green' threads there is only 1 native
|
107
|
+
# thread from which the TAO ORB is run however many Ruby threads are
|
108
|
+
# started; the ORB#run method for this platform implements a special
|
109
|
+
# cooperative ORB event loop allowing multiple Ruby threads executing
|
110
|
+
# ORB#run to operate in parallel.
|
111
|
+
orb_trds = (0..1).collect do
|
112
|
+
Thread.new() do
|
113
|
+
orb.run
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
orb_trds.each {|t| t.join }
|
118
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
//
|
2
|
+
// $Id: Test.idl 199 2011-01-14 16:53:02Z martin $
|
3
|
+
//
|
4
|
+
|
5
|
+
/// Put the interfaces in a module, to avoid global namespace pollution
|
6
|
+
module Test
|
7
|
+
{
|
8
|
+
/// A very simple interface
|
9
|
+
interface Hello
|
10
|
+
{
|
11
|
+
/// Return a simple string
|
12
|
+
string get_string ();
|
13
|
+
|
14
|
+
/// A method to shutdown the ORB
|
15
|
+
/**
|
16
|
+
* This method is used to simplify the test shutdown process
|
17
|
+
*/
|
18
|
+
oneway void shutdown ();
|
19
|
+
};
|
20
|
+
|
21
|
+
interface Watchdog
|
22
|
+
{
|
23
|
+
void ping( in string name );
|
24
|
+
|
25
|
+
/// A method to shutdown the ORB
|
26
|
+
/**
|
27
|
+
* This method is used to simplify the test shutdown process
|
28
|
+
*/
|
29
|
+
oneway void shutdown ();
|
30
|
+
};
|
31
|
+
};
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# $Id: client.rb 279 2011-02-08 09:53:28Z martin $
|
6
|
+
#
|
7
|
+
# This program is free software; you can redistribute it and/or
|
8
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
9
|
+
# included with this program.
|
10
|
+
#
|
11
|
+
# Copyright (c) Remedy IT Expertise BV
|
12
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
13
|
+
#--------------------------------------------------------------------
|
14
|
+
|
15
|
+
require 'optparse'
|
16
|
+
require 'lib/assert.rb'
|
17
|
+
include TestUtil::Assertions
|
18
|
+
|
19
|
+
OPTIONS = {
|
20
|
+
:use_implement => false,
|
21
|
+
:orb_debuglevel => 0,
|
22
|
+
:iorfile => 'file://server.ior'
|
23
|
+
}
|
24
|
+
|
25
|
+
ARGV.options do |opts|
|
26
|
+
script_name = File.basename($0)
|
27
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
28
|
+
|
29
|
+
opts.separator ""
|
30
|
+
|
31
|
+
opts.on("--k IORFILE",
|
32
|
+
"Set IOR.",
|
33
|
+
"Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
|
34
|
+
opts.on("--d LVL",
|
35
|
+
"Set ORBDebugLevel value.",
|
36
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
37
|
+
opts.on("--use-implement",
|
38
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
39
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
40
|
+
|
41
|
+
opts.separator ""
|
42
|
+
|
43
|
+
opts.on("-h", "--help",
|
44
|
+
"Show this help message.") { puts opts; exit }
|
45
|
+
|
46
|
+
opts.parse!
|
47
|
+
end
|
48
|
+
|
49
|
+
if OPTIONS[:use_implement]
|
50
|
+
require 'corba'
|
51
|
+
CORBA.implement('Test.idl', OPTIONS)
|
52
|
+
else
|
53
|
+
require 'TestC.rb'
|
54
|
+
end
|
55
|
+
|
56
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
57
|
+
|
58
|
+
begin
|
59
|
+
|
60
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
61
|
+
|
62
|
+
hello_obj = Test::Hello._narrow(obj)
|
63
|
+
|
64
|
+
hello_strings = (1..10000).map {hello_obj.get_string}
|
65
|
+
|
66
|
+
puts "Client - got #{hello_strings.length} strings."
|
67
|
+
|
68
|
+
hello_obj.shutdown()
|
69
|
+
|
70
|
+
assert_not "ERROR: Object is reported nil!", CORBA::is_nil(hello_obj)
|
71
|
+
|
72
|
+
hello_obj._free_ref()
|
73
|
+
|
74
|
+
assert "ERROR: Object is reported non-nil!", CORBA::is_nil(hello_obj)
|
75
|
+
|
76
|
+
ensure
|
77
|
+
|
78
|
+
orb.destroy()
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,76 @@
|
|
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
|
+
watchdog_ior_file = 'watchdog.ior'
|
46
|
+
|
47
|
+
TestUtil.remove_file(ior_file)
|
48
|
+
TestUtil.remove_file(watchdog_ior_file)
|
49
|
+
|
50
|
+
wdog = Test.new
|
51
|
+
srv = Test.new
|
52
|
+
|
53
|
+
exit(255) if !wdog.run('watchdog.rb', "--o #{watchdog_ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
54
|
+
|
55
|
+
TestUtil.wait_for_file(watchdog_ior_file, 400)
|
56
|
+
|
57
|
+
exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
58
|
+
|
59
|
+
TestUtil.wait_for_file(ior_file, 400)
|
60
|
+
|
61
|
+
clt = Test.new
|
62
|
+
|
63
|
+
if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
64
|
+
srv.kill(100)
|
65
|
+
exit(255)
|
66
|
+
end
|
67
|
+
|
68
|
+
exrc = clt.wait(400)
|
69
|
+
|
70
|
+
if exrc ==0
|
71
|
+
srv.wait(400)
|
72
|
+
else
|
73
|
+
srv.wait_term(400)
|
74
|
+
end
|
75
|
+
|
76
|
+
exit(exrc)
|
@@ -0,0 +1 @@
|
|
1
|
+
IOR:010000001300000049444c3a546573742f48656c6c6f3a312e30000001000000000000006c000000010102000d0000003137322e31362e372e3234380000bc051b00000014010f0052535475fe04529ef70a000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
|
@@ -0,0 +1,119 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# $Id: server.rb 279 2011-02-08 09:53:28Z martin $
|
6
|
+
#
|
7
|
+
# This program is free software; you can redistribute it and/or
|
8
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
9
|
+
# included with this program.
|
10
|
+
#
|
11
|
+
# Copyright (c) Remedy IT Expertise BV
|
12
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
13
|
+
#--------------------------------------------------------------------
|
14
|
+
|
15
|
+
require 'optparse'
|
16
|
+
|
17
|
+
OPTIONS = {
|
18
|
+
:use_implement => false,
|
19
|
+
:orb_debuglevel => 0,
|
20
|
+
:iorfile => 'server.ior',
|
21
|
+
:watchdog_iorfile => 'file://watchdog.ior'
|
22
|
+
}
|
23
|
+
|
24
|
+
ARGV.options do |opts|
|
25
|
+
script_name = File.basename($0)
|
26
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
27
|
+
|
28
|
+
opts.separator ""
|
29
|
+
|
30
|
+
opts.on("--o IORFILE",
|
31
|
+
"Set IOR filename.",
|
32
|
+
"Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
|
33
|
+
opts.on("--w IORFILE",
|
34
|
+
"Set Watchdog IOR filename.",
|
35
|
+
"Default: 'file://watchdog.ior'") { |v| OPTIONS[:watchdog_iorfile]=v }
|
36
|
+
opts.on("--d LVL",
|
37
|
+
"Set ORBDebugLevel value.",
|
38
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
39
|
+
opts.on("--use-implement",
|
40
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
41
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
42
|
+
|
43
|
+
opts.separator ""
|
44
|
+
|
45
|
+
opts.on("-h", "--help",
|
46
|
+
"Show this help message.") { puts opts; exit }
|
47
|
+
|
48
|
+
opts.parse!
|
49
|
+
end
|
50
|
+
|
51
|
+
if OPTIONS[:use_implement]
|
52
|
+
require 'corba/poa'
|
53
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
54
|
+
else
|
55
|
+
require 'TestS.rb'
|
56
|
+
end
|
57
|
+
|
58
|
+
class MyHello < POA::Test::Hello
|
59
|
+
def initialize(orb, watchdog)
|
60
|
+
@orb = orb
|
61
|
+
@watchdog = watchdog
|
62
|
+
@count = 0
|
63
|
+
@stop = false
|
64
|
+
@wdt = Thread.new do
|
65
|
+
while !@stop
|
66
|
+
@watchdog.ping(self.object_id.to_s)
|
67
|
+
@count += 1
|
68
|
+
sleep 0.001
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def get_string()
|
74
|
+
return 'Hello, world!'
|
75
|
+
end
|
76
|
+
|
77
|
+
def shutdown()
|
78
|
+
@stop = true
|
79
|
+
@watchdog.shutdown()
|
80
|
+
puts %Q{Server - pinged watchdog #{@count} times.}
|
81
|
+
@wdt.join
|
82
|
+
@orb.shutdown()
|
83
|
+
end
|
84
|
+
end #of servant MyHello
|
85
|
+
|
86
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
87
|
+
|
88
|
+
obj = orb.resolve_initial_references('RootPOA')
|
89
|
+
|
90
|
+
root_poa = PortableServer::POA._narrow(obj)
|
91
|
+
|
92
|
+
poa_man = root_poa.the_POAManager
|
93
|
+
|
94
|
+
poa_man.activate
|
95
|
+
|
96
|
+
obj = orb.string_to_object(OPTIONS[:watchdog_iorfile])
|
97
|
+
|
98
|
+
watchdog_obj = Test::Watchdog._narrow(obj)
|
99
|
+
|
100
|
+
hello_srv = MyHello.new(orb, watchdog_obj)
|
101
|
+
|
102
|
+
hello_obj = hello_srv._this()
|
103
|
+
|
104
|
+
hello_ior = orb.object_to_string(hello_obj)
|
105
|
+
|
106
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
107
|
+
io.write hello_ior
|
108
|
+
}
|
109
|
+
|
110
|
+
Signal.trap('INT') do
|
111
|
+
puts "SIGINT - shutting down ORB..."
|
112
|
+
orb.shutdown()
|
113
|
+
end
|
114
|
+
|
115
|
+
if Signal.list.has_key?('USR2')
|
116
|
+
Signal.trap('USR2', 'EXIT')
|
117
|
+
end
|
118
|
+
|
119
|
+
orb.run
|
@@ -0,0 +1 @@
|
|
1
|
+
IOR:010000001600000049444c3a546573742f5761746368646f673a312e3000000001000000000000006c000000010102000d0000003137322e31362e372e3234380000b9051b00000014010f0052535474fe0452f36f06000000000001000000010000000002000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Runs a do-nothing Watchdog instance
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
OPTIONS = {
|
6
|
+
:use_implement => false,
|
7
|
+
:orb_debuglevel => 0,
|
8
|
+
:iorfile => 'watchdog.ior'
|
9
|
+
}
|
10
|
+
|
11
|
+
ARGV.options do |opts|
|
12
|
+
script_name = File.basename($0)
|
13
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
14
|
+
|
15
|
+
opts.separator ""
|
16
|
+
|
17
|
+
opts.on("--o IORFILE",
|
18
|
+
"Set IOR filename.",
|
19
|
+
"Default: 'watchdog.ior'") { |v| OPTIONS[:iorfile]=v }
|
20
|
+
opts.on("--d LVL",
|
21
|
+
"Set ORBDebugLevel value.",
|
22
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
23
|
+
opts.on("--use-implement",
|
24
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
25
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
26
|
+
|
27
|
+
opts.separator ""
|
28
|
+
|
29
|
+
opts.on("-h", "--help",
|
30
|
+
"Show this help message.") { puts opts; exit }
|
31
|
+
|
32
|
+
opts.parse!
|
33
|
+
end
|
34
|
+
|
35
|
+
if OPTIONS[:use_implement]
|
36
|
+
require 'corba/poa'
|
37
|
+
CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
38
|
+
else
|
39
|
+
require 'TestS.rb'
|
40
|
+
end
|
41
|
+
|
42
|
+
class MyWatchdog < POA::Test::Watchdog
|
43
|
+
def initialize(orb)
|
44
|
+
@orb = orb
|
45
|
+
@count = 0
|
46
|
+
end
|
47
|
+
|
48
|
+
def ping(name)
|
49
|
+
@count += 1
|
50
|
+
end
|
51
|
+
|
52
|
+
def shutdown()
|
53
|
+
puts %Q{Watchdog - received #{@count} pings}
|
54
|
+
@orb.shutdown()
|
55
|
+
end
|
56
|
+
end #of servant MyWatchdog
|
57
|
+
|
58
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
59
|
+
|
60
|
+
obj = orb.resolve_initial_references('RootPOA')
|
61
|
+
|
62
|
+
root_poa = PortableServer::POA._narrow(obj)
|
63
|
+
|
64
|
+
poa_man = root_poa.the_POAManager
|
65
|
+
|
66
|
+
poa_man.activate
|
67
|
+
|
68
|
+
srv = MyWatchdog.new(orb)
|
69
|
+
|
70
|
+
obj = srv._this()
|
71
|
+
|
72
|
+
ior = orb.object_to_string(obj)
|
73
|
+
|
74
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
75
|
+
io.write ior
|
76
|
+
}
|
77
|
+
|
78
|
+
Signal.trap('INT') do
|
79
|
+
puts "SIGINT - shutting down ORB..."
|
80
|
+
orb.shutdown()
|
81
|
+
end
|
82
|
+
|
83
|
+
if Signal.list.has_key?('USR2')
|
84
|
+
Signal.trap('USR2', 'EXIT')
|
85
|
+
end
|
86
|
+
|
87
|
+
orb.run
|
@@ -0,0 +1,34 @@
|
|
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
|
+
|
28
|
+
/// A very simple interface
|
29
|
+
interface Hello_2
|
30
|
+
{
|
31
|
+
/// Return a simple string
|
32
|
+
string get_string_2 ();
|
33
|
+
};
|
34
|
+
};
|
@@ -0,0 +1,70 @@
|
|
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 => 'file://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("--k IORFILE",
|
28
|
+
"Set IOR.",
|
29
|
+
"Default: 'file://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'
|
47
|
+
CORBA.implement('Test.idl', OPTIONS)
|
48
|
+
else
|
49
|
+
require 'TestC.rb'
|
50
|
+
end
|
51
|
+
|
52
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
53
|
+
|
54
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
55
|
+
|
56
|
+
hello_obj = Test::Hello._narrow(obj)
|
57
|
+
|
58
|
+
hello_2_obj = Test::Hello_2._narrow(obj)
|
59
|
+
|
60
|
+
the_string = hello_obj.get_string()
|
61
|
+
|
62
|
+
puts "string returned from Test::Hello <#{the_string}>"
|
63
|
+
|
64
|
+
the_string = hello_2_obj.get_string_2()
|
65
|
+
|
66
|
+
puts "string returned from Test::Hello_2 <#{the_string}>"
|
67
|
+
|
68
|
+
hello_obj.shutdown()
|
69
|
+
|
70
|
+
orb.destroy()
|
@@ -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:010000001300000049444c3a546573742f48656c6c6f3a312e30000001000000000000006c000000010102650d0000003137322e31362e372e3234380020c3051b00000014010f005253547dfe0452cf7b05000000000001000000010000005202000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
|