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,271 @@
|
|
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('valuebox.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
|
48
|
+
else
|
49
|
+
require 'valueboxS'
|
50
|
+
end
|
51
|
+
|
52
|
+
class Test_impl < POA::Test
|
53
|
+
def initialize(orb)
|
54
|
+
@orb = orb
|
55
|
+
end
|
56
|
+
|
57
|
+
def ros(s)
|
58
|
+
s.slice(s.size-1,1) << s.slice(0,s.size-1)
|
59
|
+
end
|
60
|
+
|
61
|
+
def basic_op1(p1, p2)
|
62
|
+
p3 = p2 * 5
|
63
|
+
p2 = p2 * 3
|
64
|
+
retval = p1.nil?() ? nil : p1 * 3
|
65
|
+
[retval, p2, p3]
|
66
|
+
end
|
67
|
+
|
68
|
+
def basic_op2(p1, p2)
|
69
|
+
p3 = p2 * 5
|
70
|
+
p2 = p2 * 3
|
71
|
+
retval = p1 * 3
|
72
|
+
[retval, p2, p3]
|
73
|
+
end
|
74
|
+
|
75
|
+
def basic_op3(p1, p2)
|
76
|
+
p3 = p2 * 5
|
77
|
+
p2 = p2 * 3
|
78
|
+
retval = p1 * 3
|
79
|
+
[retval, p2, p3]
|
80
|
+
end
|
81
|
+
|
82
|
+
def string_op1(p1, p2)
|
83
|
+
p2 = ros(p2)
|
84
|
+
p3 = p2
|
85
|
+
retval = ros(p1)
|
86
|
+
[retval, p2, p3]
|
87
|
+
end
|
88
|
+
|
89
|
+
def string_op2(p1, p2)
|
90
|
+
p2 = ros(p2)
|
91
|
+
p3 = p2
|
92
|
+
retval = ros(p1)
|
93
|
+
[retval, p2, p3]
|
94
|
+
end
|
95
|
+
|
96
|
+
def seq_op1(p1, p2)
|
97
|
+
p3 = p2.collect {|e| e*5}
|
98
|
+
p2.collect! {|e| e*3}
|
99
|
+
retval = p1
|
100
|
+
[retval, p2, p3]
|
101
|
+
end
|
102
|
+
|
103
|
+
def seq_op2(p1, p2)
|
104
|
+
p3 = p2.collect {|e| e*5}
|
105
|
+
p2.collect! {|e| e*3}
|
106
|
+
[p2, p3]
|
107
|
+
end
|
108
|
+
|
109
|
+
def struct_op1(p1, p2)
|
110
|
+
p3 = Fixed_Struct1.new(p2.l*5,
|
111
|
+
Fixed_Struct1::Bstruct.new(p2.abstruct.s1*5,
|
112
|
+
p2.abstruct.s2*5))
|
113
|
+
p2.l = p2.l*3
|
114
|
+
p2.abstruct.s1 = p2.abstruct.s1*3
|
115
|
+
p2.abstruct.s2 = p2.abstruct.s2*3
|
116
|
+
|
117
|
+
retval = p1
|
118
|
+
[retval, p2, p3]
|
119
|
+
end
|
120
|
+
|
121
|
+
def struct_op2(p1, p2)
|
122
|
+
p3 = p1
|
123
|
+
|
124
|
+
p2.l = p2.l*3
|
125
|
+
p2.abstruct.s1 = p2.abstruct.s1*3
|
126
|
+
p2.abstruct.s2 = p2.abstruct.s2*3
|
127
|
+
|
128
|
+
[p2, p3]
|
129
|
+
end
|
130
|
+
|
131
|
+
def struct_op3(p1, p2)
|
132
|
+
p2.l = p2.l * 3
|
133
|
+
p2.str = ros(p2.str)
|
134
|
+
|
135
|
+
p3 = Variable_Struct1.new(p2.l, p2.str)
|
136
|
+
|
137
|
+
retval = p1
|
138
|
+
[retval, p2, p3]
|
139
|
+
end
|
140
|
+
|
141
|
+
def struct_op4(p1, p2)
|
142
|
+
p3 = p1
|
143
|
+
p2.l = p2.l * 3
|
144
|
+
p2.str = ros(p2.str)
|
145
|
+
|
146
|
+
[p2, p3]
|
147
|
+
end
|
148
|
+
|
149
|
+
def array_op1(p1, p2)
|
150
|
+
p2.collect! {|e| e*3}
|
151
|
+
p3 = p2
|
152
|
+
retval = p1
|
153
|
+
[retval, p2, p3]
|
154
|
+
end
|
155
|
+
|
156
|
+
def array_op2(p1, p2)
|
157
|
+
p2.collect! {|e| e*3}
|
158
|
+
p3 = p1
|
159
|
+
[p2, p3]
|
160
|
+
end
|
161
|
+
|
162
|
+
def array_op3(p1, p2)
|
163
|
+
p2.collect! {|e| ros(e)}
|
164
|
+
p3 = p2
|
165
|
+
retval = p1
|
166
|
+
[retval, p2, p3]
|
167
|
+
end
|
168
|
+
|
169
|
+
def array_op4(p1, p2)
|
170
|
+
p2.collect! {|e| ros(e)}
|
171
|
+
p3 = p1
|
172
|
+
[p2, p3]
|
173
|
+
end
|
174
|
+
|
175
|
+
def union_op1(p1, p2)
|
176
|
+
p3 = VBfixed_union1.new(Fixed_Union1.new)
|
177
|
+
retval = VBfixed_union1.new(Fixed_Union1.new)
|
178
|
+
case p1._disc
|
179
|
+
when 1
|
180
|
+
p3.value.m1 = p1.m1*3
|
181
|
+
retval.value.m1 = p1.m1*3
|
182
|
+
when 2
|
183
|
+
p3.value.m2 = p1.m2*3
|
184
|
+
retval.value.m2 = p1.m2*3
|
185
|
+
end
|
186
|
+
case p2._disc
|
187
|
+
when 1
|
188
|
+
p2.m1 = p2.m1*3
|
189
|
+
when 2
|
190
|
+
p2.m2 = p2.m2*3
|
191
|
+
end
|
192
|
+
[retval, p2, p3]
|
193
|
+
end
|
194
|
+
|
195
|
+
def union_op2(p1, p2)
|
196
|
+
p3 = p1
|
197
|
+
case p2._disc
|
198
|
+
when 1
|
199
|
+
p2.m1 = p2.m1*3
|
200
|
+
when 2
|
201
|
+
p2.m2 = p2.m2*3
|
202
|
+
end
|
203
|
+
[p2, p3]
|
204
|
+
end
|
205
|
+
|
206
|
+
def union_op3(p1, p2)
|
207
|
+
p3 = VBvariable_union1.new(Variable_Union1.new)
|
208
|
+
retval = VBvariable_union1.new(Variable_Union1.new)
|
209
|
+
case p1._disc
|
210
|
+
when 1
|
211
|
+
p3.value.m1 = p1.m1
|
212
|
+
retval.value.m1 = p1.m1
|
213
|
+
when 2
|
214
|
+
p3.value.m2 = p1.m2
|
215
|
+
retval.value.m2 = p1.m2
|
216
|
+
end
|
217
|
+
case p2._disc
|
218
|
+
when 1
|
219
|
+
p2.m1 = p2.m1*3
|
220
|
+
when 2
|
221
|
+
p2.m2 = ros(p2.m2)
|
222
|
+
end
|
223
|
+
[retval, p2, p3]
|
224
|
+
end
|
225
|
+
|
226
|
+
def union_op4(p1, p2)
|
227
|
+
p3 = p1
|
228
|
+
case p2._disc
|
229
|
+
when 1
|
230
|
+
p2.m1 = p2.m1*3
|
231
|
+
when 2
|
232
|
+
p2.m2 = ros(p2.m2)
|
233
|
+
end
|
234
|
+
[p2, p3]
|
235
|
+
end
|
236
|
+
|
237
|
+
def shutdown()
|
238
|
+
@orb.shutdown()
|
239
|
+
end
|
240
|
+
end #of servant Test_impl
|
241
|
+
|
242
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
243
|
+
|
244
|
+
obj = orb.resolve_initial_references('RootPOA')
|
245
|
+
|
246
|
+
root_poa = PortableServer::POA._narrow(obj)
|
247
|
+
|
248
|
+
poa_man = root_poa.the_POAManager
|
249
|
+
|
250
|
+
poa_man.activate
|
251
|
+
|
252
|
+
test_srv = Test_impl.new(orb)
|
253
|
+
|
254
|
+
test_obj = test_srv._this()
|
255
|
+
|
256
|
+
ior = orb.object_to_string(test_obj)
|
257
|
+
|
258
|
+
open(OPTIONS[:iorfile], 'w') { |io|
|
259
|
+
io.write ior
|
260
|
+
}
|
261
|
+
|
262
|
+
Signal.trap('INT') do
|
263
|
+
puts "SIGINT - shutting down ORB..."
|
264
|
+
orb.shutdown()
|
265
|
+
end
|
266
|
+
|
267
|
+
if Signal.list.has_key?('USR2')
|
268
|
+
Signal.trap('USR2', 'EXIT')
|
269
|
+
end
|
270
|
+
|
271
|
+
orb.run
|
@@ -0,0 +1,101 @@
|
|
1
|
+
|
2
|
+
#include "vb_basic.idl"
|
3
|
+
#include "vb_struct.idl"
|
4
|
+
#include "vb_union.idl"
|
5
|
+
|
6
|
+
//
|
7
|
+
// Boxed Strings
|
8
|
+
//
|
9
|
+
valuetype VBstring string;
|
10
|
+
valuetype VBwstring wstring;
|
11
|
+
|
12
|
+
//
|
13
|
+
// Boxed Sequences
|
14
|
+
//
|
15
|
+
typedef sequence<long> TDseqlong;
|
16
|
+
valuetype VBseqlong TDseqlong;
|
17
|
+
|
18
|
+
//
|
19
|
+
// Boxed array ("fixed")
|
20
|
+
//
|
21
|
+
typedef long LongArray[3];
|
22
|
+
valuetype VBlongarray LongArray;
|
23
|
+
|
24
|
+
//
|
25
|
+
// Boxed array ("variable")
|
26
|
+
//
|
27
|
+
typedef string StringArray[2];
|
28
|
+
valuetype VBstringarray StringArray;
|
29
|
+
|
30
|
+
interface Test
|
31
|
+
{
|
32
|
+
// Boxed basic types
|
33
|
+
VBlong basic_op1(in VBlong p1, inout VBlong p2, out VBlong p3);
|
34
|
+
|
35
|
+
vb_basic::M_VBlong basic_op2(in vb_basic::M_VBlong p1,
|
36
|
+
inout vb_basic::M_VBlong p2,
|
37
|
+
out vb_basic::M_VBlong p3);
|
38
|
+
|
39
|
+
long basic_op3 (in long p1, inout long p2, out long p3);
|
40
|
+
|
41
|
+
// Boxed string
|
42
|
+
VBstring string_op1(in VBstring p1, inout VBstring p2, out VBstring p3);
|
43
|
+
|
44
|
+
string string_op2(in string p1, inout string p2, out string p3);
|
45
|
+
|
46
|
+
// Boxed sequence
|
47
|
+
VBseqlong seq_op1(in VBseqlong p1, inout VBseqlong p2,
|
48
|
+
out VBseqlong p3);
|
49
|
+
|
50
|
+
void seq_op2(in TDseqlong p1, inout TDseqlong p2, out TDseqlong p3);
|
51
|
+
|
52
|
+
// Boxed struct
|
53
|
+
VBfixed_struct1 struct_op1(in VBfixed_struct1 p1,
|
54
|
+
inout VBfixed_struct1 p2,
|
55
|
+
out VBfixed_struct1 p3);
|
56
|
+
|
57
|
+
void struct_op2(in Fixed_Struct1 p1,
|
58
|
+
inout Fixed_Struct1 p2,
|
59
|
+
out Fixed_Struct1 p3);
|
60
|
+
|
61
|
+
VBvariable_struct1 struct_op3(in VBvariable_struct1 p1,
|
62
|
+
inout VBvariable_struct1 p2,
|
63
|
+
out VBvariable_struct1 p3);
|
64
|
+
|
65
|
+
void struct_op4(in Variable_Struct1 p1,
|
66
|
+
inout Variable_Struct1 p2,
|
67
|
+
out Variable_Struct1 p3);
|
68
|
+
|
69
|
+
// Boxed array (fixed)
|
70
|
+
VBlongarray array_op1 (in VBlongarray p1, inout VBlongarray p2,
|
71
|
+
out VBlongarray p3);
|
72
|
+
|
73
|
+
void array_op2 (in LongArray p1, inout LongArray p2, out LongArray p3);
|
74
|
+
|
75
|
+
// Boxed array (variable)
|
76
|
+
VBstringarray array_op3 (in VBstringarray p1, inout VBstringarray p2,
|
77
|
+
out VBstringarray p3);
|
78
|
+
|
79
|
+
void array_op4 (in StringArray p1, inout StringArray p2,
|
80
|
+
out StringArray p3);
|
81
|
+
|
82
|
+
// Boxed union
|
83
|
+
VBfixed_union1 union_op1(in VBfixed_union1 p1,
|
84
|
+
inout VBfixed_union1 p2,
|
85
|
+
out VBfixed_union1 p3);
|
86
|
+
|
87
|
+
void union_op2(in Fixed_Union1 p1,
|
88
|
+
inout Fixed_Union1 p2,
|
89
|
+
out Fixed_Union1 p3);
|
90
|
+
|
91
|
+
VBvariable_union1 union_op3(in VBvariable_union1 p1,
|
92
|
+
inout VBvariable_union1 p2,
|
93
|
+
out VBvariable_union1 p3);
|
94
|
+
|
95
|
+
void union_op4(in Variable_Union1 p1,
|
96
|
+
inout Variable_Union1 p2,
|
97
|
+
out Variable_Union1 p3);
|
98
|
+
|
99
|
+
// Shutdown the remote ORB
|
100
|
+
oneway void shutdown ();
|
101
|
+
};
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
//=========================================================================
|
3
|
+
// Valuebox of basic types
|
4
|
+
//=========================================================================
|
5
|
+
|
6
|
+
// Valuebox of all basic types defined at outermost scope:
|
7
|
+
|
8
|
+
enum Color { red, orange, yellow, green, blue, indigo, violet };
|
9
|
+
|
10
|
+
valuetype VBshort short;
|
11
|
+
valuetype VBlong long;
|
12
|
+
valuetype VBlonglong long long;
|
13
|
+
valuetype VBushort unsigned short;
|
14
|
+
valuetype VBulong unsigned long;
|
15
|
+
valuetype VBulonglong unsigned long long;
|
16
|
+
valuetype VBchar char;
|
17
|
+
valuetype VBwchar wchar;
|
18
|
+
valuetype VBboolean boolean;
|
19
|
+
valuetype VBoctet octet;
|
20
|
+
valuetype VBfloat float;
|
21
|
+
valuetype VBdouble double;
|
22
|
+
valuetype VBlongdouble long double;
|
23
|
+
valuetype VBenum Color;
|
24
|
+
|
25
|
+
// Typedefs of basic types
|
26
|
+
typedef short TDshort;
|
27
|
+
typedef long TDlong;
|
28
|
+
typedef long long TDlonglong;
|
29
|
+
typedef unsigned short TDushort;
|
30
|
+
typedef unsigned long TDulong;
|
31
|
+
typedef unsigned long long TDulonglong;
|
32
|
+
typedef char TDchar;
|
33
|
+
typedef wchar TDwchar;
|
34
|
+
typedef boolean TDboolean;
|
35
|
+
typedef octet TDoctet;
|
36
|
+
typedef float TDfloat;
|
37
|
+
typedef double TDdouble;
|
38
|
+
typedef long double TDlongdouble;
|
39
|
+
typedef Color TDenum;
|
40
|
+
|
41
|
+
// Value box of typedef of basic types
|
42
|
+
valuetype VBTDshort TDshort;
|
43
|
+
valuetype VBTDlong TDlong;
|
44
|
+
valuetype VBTDlonglong TDlonglong;
|
45
|
+
valuetype VBTDushort TDushort;
|
46
|
+
valuetype VBTDulong TDulong;
|
47
|
+
valuetype VBTDulonglong TDulonglong;
|
48
|
+
valuetype VBTDchar TDchar;
|
49
|
+
valuetype VBTDwchar TDwchar;
|
50
|
+
valuetype VBTDboolean TDboolean;
|
51
|
+
valuetype VBTDoctet TDoctet;
|
52
|
+
valuetype VBTDfloat TDfloat;
|
53
|
+
valuetype VBTDdouble TDdouble;
|
54
|
+
valuetype VBTDlongdouble TDlongdouble;
|
55
|
+
valuetype VBTDenum TDenum;
|
56
|
+
|
57
|
+
// Any and typedef of any
|
58
|
+
valuetype VBany any;
|
59
|
+
typedef any TDany;
|
60
|
+
valuetype VBTDany TDany;
|
61
|
+
|
62
|
+
module vb_basic
|
63
|
+
{
|
64
|
+
// Valuebox defined within a module scope
|
65
|
+
valuetype M_VBlong long;
|
66
|
+
|
67
|
+
interface Test
|
68
|
+
{
|
69
|
+
M_VBlong basic_op1(in M_VBlong p1, inout M_VBlong p2,
|
70
|
+
out M_VBlong p3);
|
71
|
+
};
|
72
|
+
};
|
73
|
+
|
74
|
+
// Valuebox of an interface
|
75
|
+
valuetype VBinterface vb_basic::Test;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
|
2
|
+
//=========================================================================
|
3
|
+
// Valuebox of structs
|
4
|
+
//=========================================================================
|
5
|
+
|
6
|
+
// "Fixed" struct
|
7
|
+
struct Fixed_Struct1
|
8
|
+
{ long l;
|
9
|
+
struct Bstruct {short s1; short s2; } abstruct;
|
10
|
+
};
|
11
|
+
|
12
|
+
// "Variable" struct
|
13
|
+
struct Variable_Struct1
|
14
|
+
{ long l;
|
15
|
+
string str;
|
16
|
+
};
|
17
|
+
|
18
|
+
typedef Variable_Struct1 TDvariable_struct1;
|
19
|
+
|
20
|
+
interface InterfaceFwd;
|
21
|
+
|
22
|
+
interface Interface1
|
23
|
+
{
|
24
|
+
long getval(in short s);
|
25
|
+
};
|
26
|
+
|
27
|
+
enum Pet { dog, cat, fish, rhinoceros };
|
28
|
+
typedef short short_array[15];
|
29
|
+
|
30
|
+
union Union1 switch(long)
|
31
|
+
{
|
32
|
+
case 1: long m1;
|
33
|
+
case 2: Pet m2;
|
34
|
+
};
|
35
|
+
|
36
|
+
typedef sequence<long> LongSeq;
|
37
|
+
typedef octet oct_array[10];
|
38
|
+
typedef sequence <Pet> PetSeq;
|
39
|
+
// Use all possible types inside a struct
|
40
|
+
struct Variable_Struct2
|
41
|
+
{
|
42
|
+
long len; // predefined type
|
43
|
+
any whatever; // predefined type
|
44
|
+
Pet apet; // enum
|
45
|
+
oct_array octet_array; // array
|
46
|
+
short_array td_array; // typedefed array
|
47
|
+
Interface1 intf1; // interface
|
48
|
+
InterfaceFwd intf2; // interface fwd
|
49
|
+
string str; // string
|
50
|
+
wstring wstr; // string
|
51
|
+
LongSeq ls; // typedef sequence
|
52
|
+
PetSeq sqq; // sequence
|
53
|
+
struct NestedStruct1 { short s; string str2; } ns1; // structure
|
54
|
+
Variable_Struct1 NestedStruct2;
|
55
|
+
TDvariable_struct1 NestedStruct3;
|
56
|
+
Union1 un; // union
|
57
|
+
};
|
58
|
+
|
59
|
+
valuetype VBfixed_struct1 Fixed_Struct1;
|
60
|
+
|
61
|
+
valuetype VBvariable_struct1 Variable_Struct1;
|
62
|
+
|
63
|
+
valuetype VBvariable_struct2 Variable_Struct2;
|
64
|
+
|
65
|
+
interface InterfaceFwd
|
66
|
+
{
|
67
|
+
long getval(in short s);
|
68
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
//=========================================================================
|
3
|
+
// Valuebox of unions
|
4
|
+
//=========================================================================
|
5
|
+
|
6
|
+
union Fixed_Union1 switch(long)
|
7
|
+
{
|
8
|
+
case 1: long m1;
|
9
|
+
case 2: short m2;
|
10
|
+
};
|
11
|
+
|
12
|
+
union Variable_Union1 switch(long)
|
13
|
+
{
|
14
|
+
case 1: long m1;
|
15
|
+
case 2: string m2;
|
16
|
+
};
|
17
|
+
|
18
|
+
|
19
|
+
valuetype VBfixed_union1 Fixed_Union1;
|
20
|
+
|
21
|
+
valuetype VBvariable_union1 Variable_Union1;
|
@@ -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,103 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Author: Martin Corino
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
7
|
+
# included with this program.
|
8
|
+
#
|
9
|
+
# Copyright (c) Remedy IT Expertise BV
|
10
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
11
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
require 'optparse'
|
14
|
+
require 'lib/assert.rb'
|
15
|
+
include TestUtil::Assertions
|
16
|
+
|
17
|
+
OPTIONS = {
|
18
|
+
:use_implement => false,
|
19
|
+
:orb_debuglevel => 0,
|
20
|
+
:iorfile => 'file://server.ior'
|
21
|
+
}
|
22
|
+
|
23
|
+
ARGV.options do |opts|
|
24
|
+
script_name = File.basename($0)
|
25
|
+
opts.banner = "Usage: ruby #{script_name} [options]"
|
26
|
+
|
27
|
+
opts.separator ""
|
28
|
+
|
29
|
+
opts.on("--k IORFILE",
|
30
|
+
"Set IOR.",
|
31
|
+
"Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
|
32
|
+
opts.on("--d LVL",
|
33
|
+
"Set ORBDebugLevel value.",
|
34
|
+
"Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
|
35
|
+
opts.on("--use-implement",
|
36
|
+
"Load IDL through CORBA.implement() instead of precompiled code.",
|
37
|
+
"Default: off") { |v| OPTIONS[:use_implement]=v }
|
38
|
+
|
39
|
+
opts.separator ""
|
40
|
+
|
41
|
+
opts.on("-h", "--help",
|
42
|
+
"Show this help message.") { puts opts; exit }
|
43
|
+
|
44
|
+
opts.parse!
|
45
|
+
end
|
46
|
+
|
47
|
+
if OPTIONS[:use_implement]
|
48
|
+
require 'corba'
|
49
|
+
CORBA.implement('Test.idl', OPTIONS)
|
50
|
+
else
|
51
|
+
require 'TestC.rb'
|
52
|
+
end
|
53
|
+
|
54
|
+
orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
|
55
|
+
|
56
|
+
begin
|
57
|
+
|
58
|
+
obj = orb.string_to_object(OPTIONS[:iorfile])
|
59
|
+
|
60
|
+
id = obj._repository_id # fetches id remotely as obj has not been narrowed
|
61
|
+
# yet and thus there is no type known yet
|
62
|
+
|
63
|
+
assert 'incorrect repository id returned (1)', id == Test::Hello._tc.id
|
64
|
+
|
65
|
+
STDERR.puts "Got Object reference for [#{id}]"
|
66
|
+
|
67
|
+
hello_obj = Test::Hello._narrow(obj)
|
68
|
+
|
69
|
+
id = obj._repository_id # returns locally known id as obj has been narrowed
|
70
|
+
# and thus type is known
|
71
|
+
|
72
|
+
assert 'incorrect repository id returned (2)', id == Test::Hello._tc.id
|
73
|
+
|
74
|
+
the_string = hello_obj.get_string()
|
75
|
+
|
76
|
+
puts "string returned <#{the_string}>"
|
77
|
+
|
78
|
+
obj = hello_obj._get_component
|
79
|
+
|
80
|
+
id = obj._repository_id # fetches id remotely which is doctored by
|
81
|
+
# overridden servant method
|
82
|
+
|
83
|
+
assert 'original repository id returned', id != Test::Hello._tc.id
|
84
|
+
|
85
|
+
STDERR.puts "Got Object reference for [#{id}]"
|
86
|
+
|
87
|
+
# since _is_a? is also overridden we still get a match on the original id
|
88
|
+
assert '_is_a? returned FALSE', obj._is_a?(Test::Hello._tc.id)
|
89
|
+
|
90
|
+
hello2_obj = Test::Hello._narrow(obj)
|
91
|
+
|
92
|
+
id = obj._repository_id # returns locally known id as obj has been narrowed
|
93
|
+
# and thus type is known
|
94
|
+
|
95
|
+
assert 'incorrect repository id returned (3)', id == Test::Hello._tc.id
|
96
|
+
|
97
|
+
hello2_obj.shutdown()
|
98
|
+
|
99
|
+
ensure
|
100
|
+
|
101
|
+
orb.destroy()
|
102
|
+
|
103
|
+
end
|