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,195 @@
|
|
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
|
+
}
|
18
|
+
|
19
|
+
ORB_ARG = []
|
20
|
+
|
21
|
+
# extract -ORBxxx aguments
|
22
|
+
f_ = false
|
23
|
+
ARGV.collect! { |a|
|
24
|
+
if f_
|
25
|
+
f_ = false
|
26
|
+
ORB_ARG << a
|
27
|
+
nil
|
28
|
+
else
|
29
|
+
f_ = /^-ORB/ =~ a
|
30
|
+
ORB_ARG << a if f_
|
31
|
+
f_ ? nil : a
|
32
|
+
end
|
33
|
+
}.compact!
|
34
|
+
|
35
|
+
|
36
|
+
ARGV.options do |opts|
|
37
|
+
script_name = File.basename($0)
|
38
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
39
|
+
|
40
|
+
opts.separator ""
|
41
|
+
|
42
|
+
opts.on("--d LVL",
|
43
|
+
"Set ORBDebugLevel value.",
|
44
|
+
"Default: 0") { |dlvl| ORB_ARG << "-ORBDebugLevel" << dlvl }
|
45
|
+
opts.on("--use-implement",
|
46
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
47
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
48
|
+
|
49
|
+
opts.separator ""
|
50
|
+
|
51
|
+
opts.on("-h", "--help",
|
52
|
+
"Show this help message.") { puts opts; exit }
|
53
|
+
|
54
|
+
opts.parse!
|
55
|
+
end
|
56
|
+
|
57
|
+
if OPTIONS[:use_implement]
|
58
|
+
require 'corba/poa'
|
59
|
+
CORBA.implement('Diamond.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
60
|
+
else
|
61
|
+
require 'DiamondS.rb'
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
class Top < POA::Diamond::Top
|
66
|
+
def shape
|
67
|
+
"a point."
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class Left < POA::Diamond::Left
|
72
|
+
def shape
|
73
|
+
"the left line"
|
74
|
+
end
|
75
|
+
def color
|
76
|
+
"black"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class Right < POA::Diamond::Right
|
81
|
+
def shape
|
82
|
+
"the right line"
|
83
|
+
end
|
84
|
+
def color
|
85
|
+
"red"
|
86
|
+
end
|
87
|
+
def width
|
88
|
+
0
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
class Buttom < POA::Diamond::Buttom
|
93
|
+
def shape
|
94
|
+
"a diamond"
|
95
|
+
end
|
96
|
+
def color
|
97
|
+
"translucent"
|
98
|
+
end
|
99
|
+
def name
|
100
|
+
"Jubilee"
|
101
|
+
end
|
102
|
+
def width
|
103
|
+
100
|
104
|
+
end
|
105
|
+
def area(unit)
|
106
|
+
case unit
|
107
|
+
when Diamond::Buttom::MM
|
108
|
+
[100 * 100]
|
109
|
+
when Diamond::Buttom::CM
|
110
|
+
[10 * 10]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
class Collocation_Test
|
116
|
+
def initialize
|
117
|
+
@top_servant = Top.new
|
118
|
+
@left_servant = Left.new
|
119
|
+
@right_servant = Right.new
|
120
|
+
@diamond_servant = Buttom.new
|
121
|
+
end
|
122
|
+
|
123
|
+
def shutdown
|
124
|
+
@root_poa.destroy(1,1)
|
125
|
+
@orb.destroy
|
126
|
+
end
|
127
|
+
|
128
|
+
def init(args = [])
|
129
|
+
@orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
130
|
+
|
131
|
+
obj = @orb.resolve_initial_references('RootPOA')
|
132
|
+
|
133
|
+
@root_poa = PortableServer::POA._narrow(obj)
|
134
|
+
|
135
|
+
@poa_man = @root_poa.the_POAManager
|
136
|
+
|
137
|
+
id = @root_poa.activate_object(@top_servant)
|
138
|
+
|
139
|
+
@top_obj = @root_poa.id_to_reference(id)
|
140
|
+
|
141
|
+
id = @root_poa.activate_object(@diamond_servant)
|
142
|
+
|
143
|
+
@diamond_obj = @root_poa.id_to_reference(id)
|
144
|
+
|
145
|
+
id = @root_poa.activate_object(@left_servant)
|
146
|
+
|
147
|
+
@left_obj = @root_poa.id_to_reference(id)
|
148
|
+
|
149
|
+
id = @root_poa.activate_object(@right_servant)
|
150
|
+
|
151
|
+
@right_obj = @root_poa.id_to_reference(id)
|
152
|
+
|
153
|
+
puts "Diamond servant activated:\n#{@orb.object_to_string(@diamond_obj)}"
|
154
|
+
puts "Top servant activated:\n#{@orb.object_to_string(@top_obj)}"
|
155
|
+
puts "Left servant activated:\n#{@orb.object_to_string(@left_obj)}"
|
156
|
+
puts "Right servant activated:\n#{@orb.object_to_string(@right_obj)}"
|
157
|
+
end
|
158
|
+
|
159
|
+
def test_narrow
|
160
|
+
top = Diamond::Top._narrow(@diamond_obj)
|
161
|
+
left = Diamond::Left._narrow(@diamond_obj)
|
162
|
+
right = Diamond::Right._narrow(@diamond_obj)
|
163
|
+
buttom = Diamond::Buttom._narrow(@diamond_obj)
|
164
|
+
|
165
|
+
puts "Calling diamond_top.shape: #{top.shape}"
|
166
|
+
puts "Calling diamond_left.shape: #{left.shape}"
|
167
|
+
puts "Calling diamond_right.shape: #{right.shape}"
|
168
|
+
puts "Calling diamond_buttom.shape: #{buttom.shape}"
|
169
|
+
puts "Calling diamond_buttom.area(MM): #{buttom.area(Diamond::Buttom::MM)}"
|
170
|
+
puts "Calling diamond_buttom.area(CM): #{buttom.area(Diamond::Buttom::CM)}"
|
171
|
+
end
|
172
|
+
|
173
|
+
def run
|
174
|
+
@poa_man.activate
|
175
|
+
|
176
|
+
top = Diamond::Top._narrow(@top_obj)
|
177
|
+
left = Diamond::Left._narrow(@left_obj)
|
178
|
+
right = Diamond::Right._narrow(@right_obj)
|
179
|
+
puts "Calling top.shape: #{top.shape}"
|
180
|
+
puts "Calling left.shape: #{left.shape}"
|
181
|
+
puts "Calling right.shape: #{right.shape}"
|
182
|
+
|
183
|
+
test_narrow
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
test = Collocation_Test.new
|
188
|
+
|
189
|
+
test.init(ORB_ARG)
|
190
|
+
|
191
|
+
test.run
|
192
|
+
|
193
|
+
test.shutdown
|
194
|
+
|
195
|
+
exit(0)
|
@@ -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,111 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# 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 => 'corbaloc:iiop:192.3.47.5/10007/RandomObject'
|
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: 'corbaloc:iiop:192.3.47/10007/RandomObject'") { |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'
|
49
|
+
CORBA.implement('Test.idl', OPTIONS)
|
50
|
+
else
|
51
|
+
require 'TestC.rb'
|
52
|
+
end
|
53
|
+
require 'corba/policies.rb'
|
54
|
+
|
55
|
+
begin STDERR.puts 'Not supported on this platform'; exit(0); end unless defined?(TAO::CONNECTION_TIMEOUT_POLICY_TYPE)
|
56
|
+
|
57
|
+
Timeout_period = 1000000
|
58
|
+
|
59
|
+
def test_timeout(object)
|
60
|
+
# Start the timer
|
61
|
+
profile_timer = Time.now
|
62
|
+
|
63
|
+
begin
|
64
|
+
# First connection happens here..
|
65
|
+
hello = Test::Hello._narrow(object)
|
66
|
+
|
67
|
+
assert_not "Nil Test::Hello reference", CORBA::is_nil(hello)
|
68
|
+
|
69
|
+
the_string = hello.get_string()
|
70
|
+
|
71
|
+
puts "string returned <#{the_string}>"
|
72
|
+
|
73
|
+
hello.shutdown()
|
74
|
+
rescue CORBA::Exception
|
75
|
+
# Get the elampsed time
|
76
|
+
el = Time.now - profile_timer
|
77
|
+
|
78
|
+
# Give a 30% error margin for handling exceptions etc. It is a
|
79
|
+
# high margin, though!. But the timeout is too small and wider
|
80
|
+
# range would help.
|
81
|
+
# The elapsed time is in secs
|
82
|
+
assert "ERROR: Too long to timeout: #{el.to_s}", el <= 0.200
|
83
|
+
|
84
|
+
puts "Success, timeout: #{el.to_s}"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
90
|
+
|
91
|
+
begin
|
92
|
+
tmp = orb.string_to_object(OPTIONS[:ior])
|
93
|
+
|
94
|
+
object = orb.resolve_initial_references("PolicyCurrent")
|
95
|
+
|
96
|
+
policy_current = CORBA::PolicyCurrent::_narrow(object)
|
97
|
+
|
98
|
+
policy_list = []
|
99
|
+
policy_list << orb.create_policy(TAO::CONNECTION_TIMEOUT_POLICY_TYPE,
|
100
|
+
CORBA::Any.to_any(Timeout_period, TimeBase::TimeT._tc))
|
101
|
+
|
102
|
+
policy_current.set_policy_overrides(policy_list,
|
103
|
+
CORBA::ADD_OVERRIDE)
|
104
|
+
|
105
|
+
policy_list.each { |p| p.destroy() }
|
106
|
+
|
107
|
+
test_timeout(tmp)
|
108
|
+
ensure
|
109
|
+
orb.destroy()
|
110
|
+
end
|
111
|
+
|
@@ -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('client.rb', "#{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
|
47
|
+
exit(255)
|
48
|
+
end
|
49
|
+
|
50
|
+
exrc = clt.wait(400)
|
51
|
+
|
52
|
+
exit(exrc)
|
data/test/DII/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 echo (in string method, in string message);
|
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
|
+
};
|
data/test/DII/client.rb
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# 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
|
+
require 'corba'
|
48
|
+
|
49
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
50
|
+
|
51
|
+
begin
|
52
|
+
|
53
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
54
|
+
|
55
|
+
puts "***** Synchronous twoway DII"
|
56
|
+
req = obj._request("echo")
|
57
|
+
req.arguments = [
|
58
|
+
['method', CORBA::ARG_IN, CORBA::_tc_string, "sync twoway"],
|
59
|
+
['message', CORBA::ARG_IN, CORBA::_tc_string, "Hello world!"]
|
60
|
+
]
|
61
|
+
req.set_return_type(CORBA::_tc_string)
|
62
|
+
|
63
|
+
the_string = req.invoke()
|
64
|
+
|
65
|
+
puts "string returned <#{the_string}>"
|
66
|
+
puts
|
67
|
+
|
68
|
+
puts "***** Deferred twoway DII (using get_response())"
|
69
|
+
req = obj._request("echo")
|
70
|
+
req.arguments = [
|
71
|
+
['method', CORBA::ARG_IN, CORBA::_tc_string, "deferred twoway (1)"],
|
72
|
+
['message', CORBA::ARG_IN, CORBA::_tc_string, "Hello world!"]
|
73
|
+
]
|
74
|
+
req.set_return_type(CORBA::_tc_string)
|
75
|
+
|
76
|
+
req.send_deferred()
|
77
|
+
puts 'getting response...'
|
78
|
+
req.get_response()
|
79
|
+
|
80
|
+
puts "string returned <#{req.return_value}>"
|
81
|
+
puts
|
82
|
+
|
83
|
+
### DOESN'T WORK WITH TAO <= 1.5.9 BECAUSE OF BUG IN TAO
|
84
|
+
if !defined?(TAO) || TAO::MAJOR_VERSION>1 ||
|
85
|
+
(TAO::MAJOR_VERSION == 1 &&
|
86
|
+
(TAO::MINOR_VERSION > 5 ||
|
87
|
+
(TAO::MINOR_VERSION == 5 && TAO::BETA_VERSION>9)))
|
88
|
+
puts "***** Deferred twoway DII (using poll_response())"
|
89
|
+
req = obj._request("echo")
|
90
|
+
req.arguments = [
|
91
|
+
['method', CORBA::ARG_IN, CORBA::_tc_string, "deferred twoway (2)"],
|
92
|
+
['message', CORBA::ARG_IN, CORBA::_tc_string, "Hello world!"]
|
93
|
+
]
|
94
|
+
req.set_return_type(CORBA::_tc_string)
|
95
|
+
|
96
|
+
req.send_deferred()
|
97
|
+
begin
|
98
|
+
puts 'sleeping...'
|
99
|
+
sleep(0.01)
|
100
|
+
puts 'polling for response...'
|
101
|
+
end while !req.poll_response()
|
102
|
+
|
103
|
+
puts "string returned <#{req.return_value}>"
|
104
|
+
puts
|
105
|
+
end
|
106
|
+
|
107
|
+
puts "***** Oneway shutdown"
|
108
|
+
req = obj._request("shutdown")
|
109
|
+
req.send_oneway()
|
110
|
+
|
111
|
+
ensure
|
112
|
+
|
113
|
+
orb.destroy()
|
114
|
+
|
115
|
+
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)
|
data/test/DII/server.ior
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
IOR:010000001300000049444c3a546573742f48656c6c6f3a312e30000001000000000000006c000000010102650d0000003137322e31362e372e323438002079051b00000014010f0052535455fe0452176407000000000001000000010000005202000000000000000800000001032300004f41540100000018000000010000000100010001000000010001050901010000000000
|
data/test/DII/server.rb
ADDED
@@ -0,0 +1,95 @@
|
|
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 echo(method, message)
|
58
|
+
"#{method}: #{message}"
|
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
|
+
orb.run
|