r2corba 1.6.2 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +5 -5
- data/ext/libr2tao/orb.cpp +4 -4
- data/ext/libr2tao/values.cpp +14 -14
- data/ext/libr2tao/values.h +21 -57
- data/lib/corba/cbase/ORB.rb +9 -8
- data/lib/corba/cbase/Request.rb +10 -12
- data/lib/corba/cbase/Streams.rb +20 -20
- data/lib/corba/cbase/Typecode.rb +12 -41
- data/lib/corba/cbase/Values.rb +1 -4
- data/lib/corba/cbase/exception.rb +0 -2
- data/lib/corba/cbase/poa.rb +2 -2
- data/lib/corba/cbase/policies.rb +9 -8
- data/lib/corba/cbase/require.rb +1 -1
- data/lib/corba/cmds/base.rb +1 -2
- data/lib/corba/common/Any.rb +2 -3
- data/lib/corba/common/IDL.rb +3 -7
- data/lib/corba/common/ORB.rb +19 -19
- data/lib/corba/common/Object.rb +32 -22
- data/lib/corba/common/Request.rb +0 -2
- data/lib/corba/common/Servant.rb +4 -9
- data/lib/corba/common/Stub.rb +9 -7
- data/lib/corba/common/Typecode.rb +44 -27
- data/lib/corba/common/Values.rb +4 -5
- data/lib/corba/common/require.rb +1 -3
- data/lib/corba/common/version.rb +2 -4
- data/lib/corba/idl/IDL.rb +0 -2
- data/lib/corba/idl/require.rb +2 -2
- data/lib/corba/jbase/Any.rb +34 -35
- data/lib/corba/jbase/ORB.rb +5 -6
- data/lib/corba/jbase/Object.rb +10 -10
- data/lib/corba/jbase/Request.rb +8 -9
- data/lib/corba/jbase/Servant.rb +32 -36
- data/lib/corba/jbase/ServerRequest.rb +10 -8
- data/lib/corba/jbase/Streams.rb +80 -78
- data/lib/corba/jbase/Stub.rb +1 -1
- data/lib/corba/jbase/Typecode.rb +18 -46
- data/lib/corba/jbase/Values.rb +0 -1
- data/lib/corba/jbase/exception.rb +2 -1
- data/lib/corba/jbase/poa.rb +18 -17
- data/lib/corba/jbase/policies.rb +42 -45
- data/lib/corba/jbase/require.rb +3 -3
- data/lib/corba/naming_service.rb +1 -1
- data/lib/corba/poa.rb +1 -1
- data/lib/corba/policies.rb +2 -2
- data/lib/corba/svcs/ins/cos_naming.rb +29 -18
- data/lib/corba/svcs/ins/ins.rb +38 -38
- data/lib/corba/svcs/ins/naming_service.rb +6 -6
- data/lib/corba.rb +1 -1
- data/lib/ridlbe/ruby/config.rb +2 -8
- data/lib/ridlbe/ruby/walker.rb +94 -108
- data/rakelib/config.rb +9 -6
- data/rakelib/ext.rake +1 -1
- data/rakelib/ext_r2tao.rb +1 -1
- data/rakelib/gem.rake +0 -30
- data/test/BiDirectional/client.rb +7 -7
- data/test/BiDirectional/run_test.rb +2 -2
- data/test/BiDirectional/server.rb +13 -13
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +9 -9
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +2 -2
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +6 -6
- data/test/CORBA_Services/Naming/Corbaname/client.rb +6 -6
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +2 -2
- data/test/CORBA_Services/Naming/Corbaname/server.rb +8 -8
- data/test/CORBA_Services/Naming/Simple/client.rb +6 -6
- data/test/CORBA_Services/Naming/Simple/run_test.rb +2 -2
- data/test/CORBA_Services/Naming/Simple/server.rb +6 -6
- data/test/Collocation/run_test.rb +2 -2
- data/test/Collocation/test.rb +1 -1
- data/test/Connect_Timeout/client.rb +7 -7
- data/test/Connect_Timeout/run_test.rb +2 -2
- data/test/DII/client.rb +10 -10
- data/test/DII/run_test.rb +2 -2
- data/test/DII/server.rb +7 -7
- data/test/DSI/client.rb +6 -6
- data/test/DSI/run_test.rb +2 -2
- data/test/DSI/server.rb +9 -9
- data/test/Exceptions/client.rb +6 -6
- data/test/Exceptions/run_test.rb +2 -2
- data/test/Exceptions/server.rb +7 -7
- data/test/Hello/client.rb +7 -7
- data/test/Hello/run_test.rb +2 -2
- data/test/Hello/server.rb +7 -7
- data/test/IDL_Test/client.rb +9 -9
- data/test/IDL_Test/run_test.rb +2 -2
- data/test/IDL_Test/server.rb +7 -7
- data/test/IORMap/client.rb +7 -7
- data/test/IORMap/run_test.rb +2 -2
- data/test/IORMap/server.rb +9 -9
- data/test/IORTable/client.rb +7 -7
- data/test/IORTable/run_test.rb +2 -2
- data/test/IORTable/server.rb +10 -10
- data/test/Implicit_Conversion/client.rb +5 -5
- data/test/Implicit_Conversion/run_test.rb +2 -2
- data/test/Implicit_Conversion/server.rb +7 -7
- data/test/Multi_Threading/Multiple_ORB/client.rb +6 -6
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +2 -2
- data/test/Multi_Threading/Multiple_ORB/server.rb +5 -5
- data/test/Multi_Threading/Simple/client.rb +6 -6
- data/test/Multi_Threading/Simple/run_test.rb +2 -2
- data/test/Multi_Threading/Simple/server.rb +8 -8
- data/test/Multi_Threading/Threads/client.rb +6 -6
- data/test/Multi_Threading/Threads/run_test.rb +2 -2
- data/test/Multi_Threading/Threads/server.rb +9 -9
- data/test/Multi_Threading/Threads/watchdog.rb +7 -7
- data/test/Multiple_Servant_Interfaces/client.rb +7 -7
- data/test/Multiple_Servant_Interfaces/run_test.rb +2 -2
- data/test/Multiple_Servant_Interfaces/server.rb +7 -7
- data/test/Nil/run_test.rb +2 -2
- data/test/Nil/test.rb +4 -4
- data/test/OBV/AbstractInterface/client.rb +9 -9
- data/test/OBV/AbstractInterface/run_test.rb +2 -2
- data/test/OBV/AbstractInterface/server.rb +7 -7
- data/test/OBV/Custom/client.rb +5 -5
- data/test/OBV/Custom/run_test.rb +2 -2
- data/test/OBV/Custom/server.rb +7 -7
- data/test/OBV/Simple/client.rb +5 -5
- data/test/OBV/Simple/run_test.rb +2 -2
- data/test/OBV/Simple/server.rb +7 -7
- data/test/OBV/Simple_Event/client.rb +5 -5
- data/test/OBV/Simple_Event/run_test.rb +2 -2
- data/test/OBV/Simple_Event/server.rb +7 -7
- data/test/OBV/Supports/client.rb +17 -17
- data/test/OBV/Supports/run_test.rb +2 -2
- data/test/OBV/Supports/server.rb +7 -7
- data/test/OBV/Tree/client.rb +6 -6
- data/test/OBV/Tree/run_test.rb +2 -2
- data/test/OBV/Tree/server.rb +7 -7
- data/test/OBV/Truncatable/client.rb +5 -5
- data/test/OBV/Truncatable/run_test.rb +2 -2
- data/test/OBV/Truncatable/server.rb +6 -6
- data/test/OBV/ValueBox/client.rb +20 -20
- data/test/OBV/ValueBox/run_test.rb +2 -2
- data/test/OBV/ValueBox/server.rb +8 -8
- data/test/Object/client.rb +6 -6
- data/test/Object/run_test.rb +2 -2
- data/test/Object/server.rb +9 -9
- data/test/POA/run_test.rb +2 -2
- data/test/POA/test.rb +4 -4
- data/test/Param_Test/client.rb +6 -6
- data/test/Param_Test/run_test.rb +2 -2
- data/test/Param_Test/server.rb +6 -6
- data/test/Performance/Simple/client.rb +6 -6
- data/test/Performance/Simple/run_test.rb +2 -2
- data/test/Performance/Simple/server.rb +7 -7
- data/test/Policies/run_test.rb +2 -2
- data/test/Policies/test.rb +4 -4
- data/test/Timeout/client.rb +11 -11
- data/test/Timeout/run_test.rb +2 -2
- data/test/Timeout/server.rb +9 -9
- data/test/lib/test.rb +5 -5
- data/test/test_runner.rb +8 -7
- metadata +2 -2
data/lib/corba/common/require.rb
CHANGED
@@ -11,14 +11,12 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
|
13
13
|
module R2CORBA
|
14
|
-
|
15
14
|
# from Ruby 2.4 Fixnum and Bignum are deprecated
|
16
15
|
FIXNUM_KLASS = (1.class == ::Integer ? ::Integer : ::Fixnum)
|
17
16
|
BIGNUM_KLASS = (1.class == ::Integer ? ::Integer : ::Bignum)
|
18
|
-
|
19
17
|
end
|
20
18
|
|
21
|
-
[
|
19
|
+
['version',
|
22
20
|
'const',
|
23
21
|
'IDL',
|
24
22
|
'exception',
|
data/lib/corba/common/version.rb
CHANGED
@@ -11,11 +11,9 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
|
13
13
|
module R2CORBA
|
14
|
-
|
15
14
|
R2CORBA_MAJOR = 1
|
16
|
-
R2CORBA_MINOR =
|
17
|
-
R2CORBA_RELEASE =
|
15
|
+
R2CORBA_MINOR = 7
|
16
|
+
R2CORBA_RELEASE = 1
|
18
17
|
|
19
18
|
R2CORBA_VERSION = "#{R2CORBA_MAJOR}.#{R2CORBA_MINOR}.#{R2CORBA_RELEASE}".freeze
|
20
|
-
|
21
19
|
end
|
data/lib/corba/idl/IDL.rb
CHANGED
@@ -10,11 +10,9 @@
|
|
10
10
|
# Copyright (c) Remedy IT Expertise BV
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
module R2CORBA
|
13
|
-
|
14
13
|
module CORBA
|
15
14
|
def CORBA.implement(idlfile, params = {}, genbits = IDL::CLIENT_STUB, &block)
|
16
15
|
IDL.implement(idlfile, params, genbits, &block)
|
17
16
|
end
|
18
17
|
end
|
19
|
-
|
20
18
|
end
|
data/lib/corba/idl/require.rb
CHANGED
@@ -10,8 +10,8 @@
|
|
10
10
|
# Copyright (c) Remedy IT Expertise BV
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
|
13
|
-
require 'corba/idl/IDL
|
14
|
-
require 'corba/idl/r2c_orb
|
13
|
+
require 'corba/idl/IDL'
|
14
|
+
require 'corba/idl/r2c_orb'
|
15
15
|
|
16
16
|
## fake Ruby into believing 'orb.rb' has already been loaded
|
17
17
|
## which is what the IDL compiler will generate for
|
data/lib/corba/jbase/Any.rb
CHANGED
@@ -33,7 +33,7 @@ module R2CORBA
|
|
33
33
|
TK_FLOAT, TK_DOUBLE, TK_LONGDOUBLE, TK_CHAR, TK_STRING, TK_WSTRING,
|
34
34
|
TK_VALUE, TK_VALUE_BOX, TK_TYPECODE, TK_OBJREF, TK_PRINCIPAL].include?(restc.kind))
|
35
35
|
jorb ||= CORBA::ORB._orb
|
36
|
-
jany ||= jorb.create_any
|
36
|
+
jany ||= jorb.create_any
|
37
37
|
case restc.kind
|
38
38
|
when TK_NULL
|
39
39
|
# leave any as is
|
@@ -70,7 +70,7 @@ module R2CORBA
|
|
70
70
|
when TK_STRING
|
71
71
|
jany.insert_string(rval)
|
72
72
|
when TK_WSTRING
|
73
|
-
jany.insert_wstring(rval.inject('') {|s, b| s << b.chr})
|
73
|
+
jany.insert_wstring(rval.inject('') { |s, b| s << b.chr })
|
74
74
|
when TK_VALUE
|
75
75
|
jany.insert_Value(rval, rtc.tc_)
|
76
76
|
when TK_VALUE_BOX
|
@@ -114,15 +114,15 @@ module R2CORBA
|
|
114
114
|
jdynany.set_as_ulong(rval)
|
115
115
|
when TK_ARRAY
|
116
116
|
jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
|
117
|
-
rval.each_with_index {|e, i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
|
117
|
+
rval.each_with_index { |e, i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
|
118
118
|
jdynany.set_elements(jelems)
|
119
119
|
when TK_SEQUENCE
|
120
120
|
jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
|
121
|
-
rval.each_with_index {|e, i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
|
121
|
+
rval.each_with_index { |e, i| jelems[i] = Any.to_any(e, restc.content_type).to_java(jorb) }
|
122
122
|
jdynany.set_elements(jelems)
|
123
123
|
when TK_STRUCT, TK_EXCEPT
|
124
124
|
jmembers = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Dynamic::NameValuePair.java_class, restc.members.size)
|
125
|
-
rtc.members.each_with_index {|(mn, mt), i| jmembers[i] = CORBA::Native::Dynamic::NameValuePair.new(mn, Any.to_any(rval.__send__(mn.intern), mt).to_java(jorb)) }
|
125
|
+
rtc.members.each_with_index { |(mn, mt), i| jmembers[i] = CORBA::Native::Dynamic::NameValuePair.new(mn, Any.to_any(rval.__send__(mn.intern), mt).to_java(jorb)) }
|
126
126
|
jdynany.set_members(jmembers)
|
127
127
|
when TK_UNION
|
128
128
|
if rval._is_at_default?
|
@@ -142,7 +142,7 @@ module R2CORBA
|
|
142
142
|
if jany.nil?
|
143
143
|
jany = jdynany.to_any
|
144
144
|
else
|
145
|
-
jany.read_value(jdynany.to_any.create_input_stream
|
145
|
+
jany.read_value(jdynany.to_any.create_input_stream, rtc.tc_)
|
146
146
|
end
|
147
147
|
ensure
|
148
148
|
jdynany.destroy
|
@@ -167,52 +167,52 @@ module R2CORBA
|
|
167
167
|
when TK_NULL, TK_VOID
|
168
168
|
# leave as is
|
169
169
|
when TK_ANY
|
170
|
-
rval = Any.from_java(jany.extract_any
|
170
|
+
rval = Any.from_java(jany.extract_any, jorb)
|
171
171
|
when TK_BOOLEAN
|
172
|
-
rval = jany.extract_boolean
|
172
|
+
rval = jany.extract_boolean
|
173
173
|
when TK_SHORT
|
174
|
-
rval = jany.extract_short
|
174
|
+
rval = jany.extract_short
|
175
175
|
when TK_LONG
|
176
|
-
rval = jany.extract_long
|
176
|
+
rval = jany.extract_long
|
177
177
|
when TK_USHORT
|
178
|
-
rval = [jany.extract_ushort
|
178
|
+
rval = [jany.extract_ushort].pack('s').unpack('S').first
|
179
179
|
when TK_WCHAR
|
180
|
-
rval = jany.extract_wchar
|
180
|
+
rval = jany.extract_wchar
|
181
181
|
when TK_ULONG
|
182
|
-
rval = [jany.extract_ulong
|
182
|
+
rval = [jany.extract_ulong].pack('l').unpack('L').first
|
183
183
|
when TK_LONGLONG
|
184
|
-
rval = jany.extract_longlong
|
184
|
+
rval = jany.extract_longlong
|
185
185
|
when TK_ULONGLONG
|
186
|
-
rval = [jany.extract_ulonglong
|
186
|
+
rval = [jany.extract_ulonglong].pack('q').unpack('Q').first
|
187
187
|
when TK_OCTET
|
188
|
-
rval = [jany.extract_octet
|
188
|
+
rval = [jany.extract_octet].pack('c').unpack('C').first
|
189
189
|
when TK_FLOAT
|
190
|
-
rval = jany.extract_float
|
190
|
+
rval = jany.extract_float
|
191
191
|
when TK_DOUBLE
|
192
|
-
rval = jany.extract_double
|
192
|
+
rval = jany.extract_double
|
193
193
|
when TK_LONGDOUBLE
|
194
194
|
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported', 0, CORBA::COMPLETED_NO)
|
195
195
|
when TK_FIXED
|
196
|
-
rval = BigDecimal(jany.extract_fixed
|
196
|
+
rval = BigDecimal(jany.extract_fixed.toString)
|
197
197
|
when TK_CHAR
|
198
|
-
rval = jany.extract_char
|
198
|
+
rval = jany.extract_char.chr
|
199
199
|
when TK_STRING
|
200
|
-
rval = jany.extract_string
|
200
|
+
rval = jany.extract_string
|
201
201
|
when TK_WSTRING
|
202
|
-
rval = jany.extract_wstring
|
202
|
+
rval = jany.extract_wstring
|
203
203
|
when TK_VALUE
|
204
|
-
rval = jany.extract_Value
|
204
|
+
rval = jany.extract_Value
|
205
205
|
when TK_VALUE_BOX
|
206
206
|
rtc.get_type::Factory._check_factory(jorb || CORBA::ORB._orb) # make sure valuebox factory has been registered
|
207
|
-
rval = jany.extract_Value
|
207
|
+
rval = jany.extract_Value
|
208
208
|
rval = rval.value unless rval.nil?
|
209
209
|
when TK_TYPECODE
|
210
|
-
rval = CORBA::TypeCode.from_native(jany.extract_TypeCode
|
210
|
+
rval = CORBA::TypeCode.from_native(jany.extract_TypeCode)
|
211
211
|
when TK_OBJREF
|
212
|
-
rval = CORBA::Object._wrap_native(jany.extract_Object
|
212
|
+
rval = CORBA::Object._wrap_native(jany.extract_Object)
|
213
213
|
rval = rtc.get_type._narrow(rval) if rval
|
214
214
|
when TK_ABSTRACT_INTERFACE
|
215
|
-
jobj = jany.create_input_stream
|
215
|
+
jobj = jany.create_input_stream.read_abstract_interface
|
216
216
|
rval = if jobj.is_a?(CORBA::Native::Object)
|
217
217
|
rtc.get_type._narrow(CORBA::Object._wrap_native(jobj))
|
218
218
|
else
|
@@ -232,24 +232,24 @@ module R2CORBA
|
|
232
232
|
restc = rtc.resolved_tc
|
233
233
|
case restc.kind
|
234
234
|
when TK_ENUM
|
235
|
-
rval = jdynany.get_as_ulong
|
235
|
+
rval = jdynany.get_as_ulong
|
236
236
|
when TK_ARRAY
|
237
237
|
rval = rtc.get_type.new
|
238
|
-
jdynany.get_elements
|
238
|
+
jdynany.get_elements.each { |e| rval << Any.from_java(e, jorb, restc.content_type) }
|
239
239
|
when TK_SEQUENCE
|
240
240
|
rval = rtc.get_type.new
|
241
|
-
jdynany.get_elements
|
241
|
+
jdynany.get_elements.each { |e| rval << Any.from_java(e, jorb, restc.content_type) }
|
242
242
|
when TK_STRUCT, TK_EXCEPT
|
243
243
|
rval = rtc.get_type.new
|
244
|
-
jdynany.get_members
|
244
|
+
jdynany.get_members.each_with_index { |nvp, i| rval.__send__("#{nvp.id}=".intern, Any.from_java(nvp.value, jorb, restc.member_type(i))) }
|
245
245
|
when TK_UNION
|
246
246
|
rval = rtc.get_type.new
|
247
|
-
if jdynany.get_discriminator
|
248
|
-
rdisc = jdynany.get_discriminator
|
247
|
+
if jdynany.get_discriminator.type.kind.value == CORBA::TK_OCTET
|
248
|
+
rdisc = jdynany.get_discriminator.get_octet
|
249
249
|
# Octet 0 designates default member
|
250
250
|
rdisc = rdisc == 0 ? :default : rdisc
|
251
251
|
else
|
252
|
-
rdisc = Any.from_java(jdynany.get_discriminator
|
252
|
+
rdisc = Any.from_java(jdynany.get_discriminator.to_any, jorb, restc.discriminator_type)
|
253
253
|
end
|
254
254
|
rval.instance_variable_set('@discriminator', rdisc)
|
255
255
|
unless jdynany.has_no_active_member
|
@@ -268,7 +268,6 @@ module R2CORBA
|
|
268
268
|
end
|
269
269
|
return rval
|
270
270
|
end # from_java
|
271
|
-
|
272
271
|
end # Any
|
273
272
|
end # CORBA
|
274
273
|
end # R2CORBA
|
data/lib/corba/jbase/ORB.rb
CHANGED
@@ -12,9 +12,7 @@
|
|
12
12
|
|
13
13
|
module R2CORBA
|
14
14
|
module CORBA
|
15
|
-
|
16
15
|
module ORB
|
17
|
-
|
18
16
|
class << self
|
19
17
|
protected
|
20
18
|
def _singleton_orb_init
|
@@ -39,21 +37,24 @@ module R2CORBA
|
|
39
37
|
a1, a2, a3 = args
|
40
38
|
if Array === a1
|
41
39
|
raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size > 3
|
40
|
+
|
42
41
|
argv = a1
|
43
42
|
orb_id = (Hash === a2 ? nil : a2)
|
44
43
|
prop = (Hash === a2 ? a2 : a3)
|
45
44
|
elsif args.size == 1 || Hash === a2
|
46
45
|
raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size > 2
|
46
|
+
|
47
47
|
orb_id = a1
|
48
48
|
prop = a2
|
49
49
|
else
|
50
50
|
argv = args
|
51
51
|
end
|
52
52
|
raise ArgumentError, "Invalid argument #{prop.class}; expected Hash" unless prop.nil? || Hash === prop
|
53
|
+
|
53
54
|
jprop = Java::JavaUtil::Properties.new
|
54
55
|
jprop.setProperty('ORBid', orb_id) if orb_id
|
55
56
|
prop.each { |k, v| jprop.setProperty(k.to_s, v.to_s) } if prop
|
56
|
-
@@cached_orb = CORBA::Native::ORB.init(argv.collect {|a| a.to_s }.to_java(:string), jprop)
|
57
|
+
@@cached_orb = CORBA::Native::ORB.init(argv.collect { |a| a.to_s }.to_java(:string), jprop)
|
57
58
|
end
|
58
59
|
@@wrapper_klass.new(n_orb)
|
59
60
|
end
|
@@ -84,7 +85,7 @@ module R2CORBA
|
|
84
85
|
rescue ::NativeException
|
85
86
|
CORBA::Exception.native2r($!)
|
86
87
|
end
|
87
|
-
end).join
|
88
|
+
end).join
|
88
89
|
else
|
89
90
|
# need to start a shutdown *with* waiting in a thread because JacORB
|
90
91
|
# occasionally fails with a comm error when #shutdown(false) is called
|
@@ -104,8 +105,6 @@ module R2CORBA
|
|
104
105
|
def ior_map
|
105
106
|
@iormap ||= R2CORBA::IORMap.new(self)
|
106
107
|
end
|
107
|
-
|
108
108
|
end
|
109
|
-
|
110
109
|
end # CORBA
|
111
110
|
end # R2CORBA
|
data/lib/corba/jbase/Object.rb
CHANGED
@@ -11,11 +11,9 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
module R2CORBA
|
13
13
|
module CORBA
|
14
|
-
|
15
14
|
module Object
|
16
|
-
|
17
15
|
# ret InterfaceDef
|
18
|
-
def _get_interface
|
16
|
+
def _get_interface
|
19
17
|
raise ::CORBA::NO_IMPLEMENT
|
20
18
|
# ifdef_obj = self.objref_._get_interface_def rescue CORBA::Exception.native2r($!)
|
21
19
|
# (ifdef_obj = CORBA::Native::InterfaceDefHelper.narrow(ifdef_obj) rescue CORBA::Exception.native2r($!)) unless ifdef_obj.nil?
|
@@ -24,10 +22,11 @@ module R2CORBA
|
|
24
22
|
# ::String logical_type_id
|
25
23
|
# ret boolean
|
26
24
|
def _is_a?(logical_type_id)
|
27
|
-
raise CORBA::INV_OBJREF.new if self._is_nil?
|
25
|
+
raise CORBA::INV_OBJREF.new if self._is_nil?
|
28
26
|
## JacORB's LocalObjects throw NO_IMPLEMENT on _is_a?() and _ids() is also not always defined
|
29
27
|
return true if self.objref_.is_a?(CORBA::Native::LocalObject) &&
|
30
|
-
(!self.objref_.respond_to?(:_ids) || self.objref_._ids
|
28
|
+
(!self.objref_.respond_to?(:_ids) || self.objref_._ids.include?(logical_type_id))
|
29
|
+
|
31
30
|
begin
|
32
31
|
self.objref_._is_a(logical_type_id)
|
33
32
|
rescue ::NativeException
|
@@ -36,10 +35,11 @@ module R2CORBA
|
|
36
35
|
end
|
37
36
|
|
38
37
|
# ret ::String
|
39
|
-
def _repository_id
|
40
|
-
raise CORBA::INV_OBJREF.new if self._is_nil?
|
38
|
+
def _repository_id
|
39
|
+
raise CORBA::INV_OBJREF.new if self._is_nil?
|
41
40
|
## if this object ref has already been narrowed
|
42
41
|
return self._interface_repository_id if self.respond_to?(:_interface_repository_id)
|
42
|
+
|
43
43
|
## ask the remote side
|
44
44
|
## have to do this ourselves since JacORB only resolves this locally (never calling remote)
|
45
45
|
req = self._request('_repository_id')
|
@@ -49,8 +49,9 @@ module R2CORBA
|
|
49
49
|
|
50
50
|
unless CORBA::Native::Portable::ObjectImpl.public_instance_methods.include?(:_get_component)
|
51
51
|
# ret ::CORBA::Object
|
52
|
-
def _get_component
|
53
|
-
raise CORBA::INV_OBJREF.new if self._is_nil?
|
52
|
+
def _get_component
|
53
|
+
raise CORBA::INV_OBJREF.new if self._is_nil?
|
54
|
+
|
54
55
|
## ask the remote side
|
55
56
|
## have to do this ourselves since JacORB does not support this remote method on Object
|
56
57
|
## and we can't use #invoke since this should work without narrowing
|
@@ -92,7 +93,6 @@ module R2CORBA
|
|
92
93
|
CORBA::Exception.native2r($!)
|
93
94
|
end
|
94
95
|
end
|
95
|
-
|
96
96
|
end # Object
|
97
97
|
end # CORBA
|
98
98
|
end # R2CORBA
|
data/lib/corba/jbase/Request.rb
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
module R2CORBA
|
13
13
|
module CORBA
|
14
|
-
|
15
14
|
module Request
|
16
15
|
@@wrapper_klass = Class.new do
|
17
16
|
include CORBA::Request
|
@@ -25,12 +24,13 @@ module R2CORBA
|
|
25
24
|
|
26
25
|
def self._wrap_native(nreq, target)
|
27
26
|
raise ArgumentError, 'Expected org.omg.CORBA.Request' unless nreq.nil? || nreq.is_a?(Native::Request)
|
28
|
-
|
27
|
+
|
28
|
+
nreq.nil? ? nreq : @@wrapper_klass.new(nreq, target)
|
29
29
|
end
|
30
30
|
|
31
31
|
def operation
|
32
32
|
begin
|
33
|
-
self.req_.operation
|
33
|
+
self.req_.operation
|
34
34
|
rescue ::NativeException
|
35
35
|
CORBA::Exception.native2r($!)
|
36
36
|
end
|
@@ -80,10 +80,11 @@ module R2CORBA
|
|
80
80
|
|
81
81
|
def arguments=(*args)
|
82
82
|
if args.size == 1
|
83
|
-
raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? {|a| ::Array === a }
|
83
|
+
raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? { |a| ::Array === a }
|
84
|
+
|
84
85
|
args = args.first
|
85
86
|
else
|
86
|
-
raise ArgumentError, 'invalid argument list' unless args.all? {|a| ::Array === a }
|
87
|
+
raise ArgumentError, 'invalid argument list' unless args.all? { |a| ::Array === a }
|
87
88
|
end
|
88
89
|
# clear current arguments
|
89
90
|
begin
|
@@ -153,7 +154,7 @@ module R2CORBA
|
|
153
154
|
rescue ::NativeException
|
154
155
|
CORBA::Exception.native2r($!)
|
155
156
|
end
|
156
|
-
jex = self.req_.env
|
157
|
+
jex = self.req_.env.exception
|
157
158
|
unless jex.nil?
|
158
159
|
STDERR.puts "#{jex}\n#{jex.backtrace.join("\n")}" if $VERBOSE
|
159
160
|
if jex.is_a?(CORBA::Native::SystemException)
|
@@ -161,7 +162,7 @@ module R2CORBA
|
|
161
162
|
elsif jex.is_a?(CORBA::Native::UnknownUserException)
|
162
163
|
CORBA::UserException._raise(jex)
|
163
164
|
else
|
164
|
-
raise CORBA::UNKNOWN.new(jex.getMessage
|
165
|
+
raise CORBA::UNKNOWN.new(jex.getMessage, 0, CORBA::COMPLETED_MAYBE)
|
165
166
|
end
|
166
167
|
end
|
167
168
|
self.result
|
@@ -218,8 +219,6 @@ module R2CORBA
|
|
218
219
|
return *rc
|
219
220
|
end
|
220
221
|
end
|
221
|
-
|
222
222
|
end
|
223
|
-
|
224
223
|
end # CORBA
|
225
224
|
end # R2CORBA
|
data/lib/corba/jbase/Servant.rb
CHANGED
@@ -11,11 +11,8 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
|
13
13
|
module R2CORBA
|
14
|
-
|
15
14
|
module PortableServer
|
16
|
-
|
17
15
|
module DSI
|
18
|
-
|
19
16
|
class Servant < PortableServer::Native::DynamicImplementation
|
20
17
|
def self.new_instance(rsrv)
|
21
18
|
srv = PortableServer::DSI::Servant.new
|
@@ -33,38 +30,39 @@ module R2CORBA
|
|
33
30
|
@rsrv
|
34
31
|
end
|
35
32
|
|
36
|
-
def detach_rbServant
|
33
|
+
def detach_rbServant
|
37
34
|
@rsrv = nil
|
38
35
|
end
|
39
36
|
|
40
37
|
def invoke(jsrvreq)
|
41
38
|
begin
|
42
39
|
raise CORBA::NO_IMPLEMENT.new('', 0, CORBA::COMPLETED_NO) unless @rsrv
|
43
|
-
|
40
|
+
|
41
|
+
rsrvreq = CORBA::ServerRequest._wrap_native(jsrvreq, self._orb)
|
44
42
|
begin
|
45
|
-
case rsrvreq.srvreq_.operation
|
43
|
+
case rsrvreq.srvreq_.operation
|
46
44
|
when '_is_a'
|
47
|
-
rsrvreq.describe({:
|
45
|
+
rsrvreq.describe({arg_list: [['', CORBA::ARG_IN, CORBA._tc_string]], result_type: CORBA._tc_boolean})
|
48
46
|
rc = self._is_a(*rsrvreq.arguments)
|
49
|
-
jany = rsrvreq.orb_.create_any
|
47
|
+
jany = rsrvreq.orb_.create_any
|
50
48
|
jany.insert_boolean(rc == true)
|
51
49
|
jsrvreq.set_result(jany)
|
52
50
|
when '_non_existent'
|
53
|
-
rsrvreq.describe({:
|
51
|
+
rsrvreq.describe({arg_list: [], result_type: CORBA._tc_boolean})
|
54
52
|
rc = self._non_existent(*rsrvreq.arguments)
|
55
|
-
jany = rsrvreq.orb_.create_any
|
53
|
+
jany = rsrvreq.orb_.create_any
|
56
54
|
jany.insert_boolean(rc == true)
|
57
55
|
jsrvreq.set_result(jany)
|
58
56
|
when '_repository_id'
|
59
|
-
rsrvreq.describe({:
|
57
|
+
rsrvreq.describe({arg_list: [], result_type: CORBA._tc_string})
|
60
58
|
rc = self._repository_id(*rsrvreq.arguments)
|
61
|
-
jany = rsrvreq.orb_.create_any
|
59
|
+
jany = rsrvreq.orb_.create_any
|
62
60
|
jany.insert_string(rc)
|
63
61
|
jsrvreq.set_result(jany)
|
64
62
|
when '_component'
|
65
|
-
rsrvreq.describe({:
|
63
|
+
rsrvreq.describe({arg_list: [], result_type: CORBA._tc_Object})
|
66
64
|
rc = self._get_component(*rsrvreq.arguments)
|
67
|
-
jany = rsrvreq.orb_.create_any
|
65
|
+
jany = rsrvreq.orb_.create_any
|
68
66
|
jany.insert_Object(rc)
|
69
67
|
jsrvreq.set_result(jany)
|
70
68
|
else
|
@@ -75,14 +73,14 @@ module R2CORBA
|
|
75
73
|
end
|
76
74
|
rescue CORBA::UserException => ex_
|
77
75
|
STDERR.puts "#{ex_}\n#{ex_.backtrace.join("\n")}" if $VERBOSE
|
78
|
-
if rsrvreq.exc_list_.nil? || rsrvreq.exc_list_.any? {|extc| extc.id == ex_.class._tc.id }
|
79
|
-
jsrvreq.set_exception(CORBA::Any.to_any(ex_).to_java(self._orb
|
76
|
+
if rsrvreq.exc_list_.nil? || rsrvreq.exc_list_.any? { |extc| extc.id == ex_.class._tc.id }
|
77
|
+
jsrvreq.set_exception(CORBA::Any.to_any(ex_).to_java(self._orb))
|
80
78
|
else
|
81
79
|
STDERR.puts "#{ex_}\n#{ex_.backtrace.join("\n")}" unless $VERBOSE
|
82
80
|
if jsrvreq.respond_to?(:setSystemException) # JacORB special
|
83
81
|
jsrvreq.setSystemException(CORBA::Native::UNKNOWN.new("#{ex_}", 0, CORBA::Native::CompletionStatus.from_int(CORBA::COMPLETED_MAYBE)))
|
84
82
|
else
|
85
|
-
jsrvreq.set_exception(CORBA::Any.to_any(CORBA::UNKNOWN.new("#{ex_}", 0, CORBA::COMPLETED_MAYBE)).to_java(self._orb
|
83
|
+
jsrvreq.set_exception(CORBA::Any.to_any(CORBA::UNKNOWN.new("#{ex_}", 0, CORBA::COMPLETED_MAYBE)).to_java(self._orb))
|
86
84
|
end
|
87
85
|
end
|
88
86
|
rescue CORBA::SystemException => ex_
|
@@ -91,14 +89,14 @@ module R2CORBA
|
|
91
89
|
jex_klass = CORBA::Native.const_get(ex_.class::Name)
|
92
90
|
jsrvreq.setSystemException(jex_klass.new(ex_.reason, ex_.minor, CORBA::Native::CompletionStatus.from_int(ex_.completed)))
|
93
91
|
else
|
94
|
-
jsrvreq.set_exception(CORBA::Any.to_any(ex_).to_java(self._orb
|
92
|
+
jsrvreq.set_exception(CORBA::Any.to_any(ex_).to_java(self._orb))
|
95
93
|
end
|
96
94
|
rescue Exception => ex_
|
97
95
|
STDERR.puts "#{ex_}\n#{ex_.backtrace.join("\n")}"
|
98
96
|
if jsrvreq.respond_to?(:setSystemException) # JacORB special
|
99
97
|
jsrvreq.setSystemException(CORBA::Native::UNKNOWN.new("#{ex_}", 0, CORBA::Native::CompletionStatus.from_int(CORBA::COMPLETED_MAYBE)))
|
100
98
|
else
|
101
|
-
jsrvreq.set_exception(CORBA::Any.to_any(CORBA::UNKNOWN.new("#{ex_}", 0, CORBA::COMPLETED_MAYBE)).to_java(self._orb
|
99
|
+
jsrvreq.set_exception(CORBA::Any.to_any(CORBA::UNKNOWN.new("#{ex_}", 0, CORBA::COMPLETED_MAYBE)).to_java(self._orb))
|
102
100
|
end
|
103
101
|
end
|
104
102
|
end
|
@@ -108,7 +106,7 @@ module R2CORBA
|
|
108
106
|
return [].to_java(:string)
|
109
107
|
elsif @rsrv.respond_to?(:_ids)
|
110
108
|
return @rsrv._ids.to_java(:string)
|
111
|
-
elsif @rsrv.class.constants.any? {|c| c.to_sym == :Ids }
|
109
|
+
elsif @rsrv.class.constants.any? { |c| c.to_sym == :Ids }
|
112
110
|
return @rsrv.class::Ids.to_java(:string)
|
113
111
|
elsif @rsrv.respond_to?(:_primary_interface)
|
114
112
|
return [@rsrv._primary_interface(oid, poa)].to_java(:string)
|
@@ -141,7 +139,7 @@ module R2CORBA
|
|
141
139
|
end
|
142
140
|
end
|
143
141
|
|
144
|
-
def _non_existent
|
142
|
+
def _non_existent
|
145
143
|
if @rsrv.nil?
|
146
144
|
return true
|
147
145
|
elsif @rsrv.respond_to?(:_non_existent)
|
@@ -151,7 +149,7 @@ module R2CORBA
|
|
151
149
|
end
|
152
150
|
end
|
153
151
|
|
154
|
-
def _get_component
|
152
|
+
def _get_component
|
155
153
|
if @rsrv.nil?
|
156
154
|
return nil
|
157
155
|
elsif @rsrv.respond_to?(:_get_component)
|
@@ -163,7 +161,7 @@ module R2CORBA
|
|
163
161
|
end
|
164
162
|
protected
|
165
163
|
def invoke_SI(rsrvreq)
|
166
|
-
opsym = rsrvreq.srvreq_.operation
|
164
|
+
opsym = rsrvreq.srvreq_.operation.to_sym
|
167
165
|
opsig = @rsrv.get_operation_signature(opsym)
|
168
166
|
# explicitly define empty (but not nil) exceptionlist if not yet specified
|
169
167
|
opsig[:exc_list] = [] if (Hash === opsig) && !opsig.has_key?(:exc_list)
|
@@ -174,17 +172,17 @@ module R2CORBA
|
|
174
172
|
unless rsrvreq.result_type_.nil?
|
175
173
|
result_value = (rsrvreq.arg_out_ > 0 ? results.shift : results) unless rsrvreq.result_type_.kind == CORBA::TK_VOID
|
176
174
|
if rsrvreq.arg_out_ > 0
|
177
|
-
rsrvreq.nvlist_.count
|
175
|
+
rsrvreq.nvlist_.count.times do |i|
|
178
176
|
jnv = rsrvreq.nvlist_.item(i)
|
179
177
|
if [CORBA::ARG_OUT, CORBA::ARG_INOUT].include?(jnv.flags)
|
180
178
|
rval = results.shift
|
181
179
|
rtc = rsrvreq.arg_list_[i][2]
|
182
|
-
CORBA::Any.to_any(rval, rtc).to_java(self._orb
|
180
|
+
CORBA::Any.to_any(rval, rtc).to_java(self._orb, jnv.value)
|
183
181
|
end
|
184
182
|
end
|
185
183
|
end
|
186
184
|
unless rsrvreq.result_type_.kind == CORBA::TK_VOID
|
187
|
-
rsrvreq.srvreq_.set_result(CORBA::Any.to_any(result_value, rsrvreq.result_type_).to_java(self._orb
|
185
|
+
rsrvreq.srvreq_.set_result(CORBA::Any.to_any(result_value, rsrvreq.result_type_).to_java(self._orb))
|
188
186
|
end
|
189
187
|
end
|
190
188
|
end
|
@@ -194,22 +192,21 @@ module R2CORBA
|
|
194
192
|
unless rsrvreq.result_type_.nil?
|
195
193
|
result_value = (rsrvreq.arg_out_ > 0 ? results.shift : results) unless rsrvreq.result_type_.kind == CORBA::TK_VOID
|
196
194
|
if rsrvreq.arg_out_ > 0
|
197
|
-
rsrvreq.nvlist_.count
|
195
|
+
rsrvreq.nvlist_.count.times do |i|
|
198
196
|
jnv = rsrvreq.nvlist_.item(i)
|
199
197
|
if [CORBA::ARG_OUT, CORBA::ARG_INOUT].include?(jnv.flags)
|
200
198
|
rval = results.shift
|
201
199
|
rtc = rsrvreq.arg_list_[i][2]
|
202
|
-
CORBA::Any.to_any(rval, rtc).to_java(self._orb
|
200
|
+
CORBA::Any.to_any(rval, rtc).to_java(self._orb, jnv.value)
|
203
201
|
end
|
204
202
|
end
|
205
203
|
end
|
206
204
|
unless rsrvreq.result_type_.kind == CORBA::TK_VOID
|
207
|
-
rsrvreq.srvreq_.set_result(CORBA::Any.to_any(result_value, rsrvreq.result_type_).to_java(self._orb
|
205
|
+
rsrvreq.srvreq_.set_result(CORBA::Any.to_any(result_value, rsrvreq.result_type_).to_java(self._orb))
|
208
206
|
end
|
209
207
|
end
|
210
208
|
end
|
211
209
|
end # Servant
|
212
|
-
|
213
210
|
end # DSI
|
214
211
|
|
215
212
|
class Servant
|
@@ -217,23 +214,24 @@ module R2CORBA
|
|
217
214
|
@srvref_ ||= PortableServer::DSI::Servant.new_instance(self)
|
218
215
|
end
|
219
216
|
|
220
|
-
def _default_POA
|
217
|
+
def _default_POA
|
221
218
|
begin
|
222
|
-
return PortableServer::POA._narrow(CORBA::Object._wrap_native(self.srvref_._default_POA
|
219
|
+
return PortableServer::POA._narrow(CORBA::Object._wrap_native(self.srvref_._default_POA))
|
223
220
|
rescue ::NativeException
|
224
221
|
CORBA::Exception.native2r($!)
|
225
222
|
end
|
226
223
|
end
|
227
224
|
|
228
|
-
def _this
|
225
|
+
def _this
|
229
226
|
unless @srvref_.nil?
|
230
227
|
begin
|
231
|
-
return CORBA::Object._wrap_native(self.srvref_._this_object
|
228
|
+
return CORBA::Object._wrap_native(self.srvref_._this_object)
|
232
229
|
rescue NativeException
|
233
230
|
# not in call context or not associated with ORB yet
|
234
231
|
end
|
235
232
|
end
|
236
233
|
raise CORBA::BAD_INV_ORDER.new('no ORB initialized', 0, CORBA::COMPLETED_NO) if CORBA::ORB._orb.nil?
|
234
|
+
|
237
235
|
begin
|
238
236
|
return CORBA::Object._wrap_native(self.srvref_._this_object(CORBA::ORB._orb))
|
239
237
|
rescue ::NativeException
|
@@ -241,7 +239,5 @@ module R2CORBA
|
|
241
239
|
end
|
242
240
|
end
|
243
241
|
end # Servant
|
244
|
-
|
245
242
|
end # PortableServer
|
246
|
-
|
247
243
|
end # R2CORBA
|