r2corba 1.5.4 → 1.6.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 +3 -2
- data/ext/libr2tao/any.cpp +11 -10
- data/ext/libr2tao/exception.cpp +6 -8
- data/ext/libr2tao/exception.h +1 -1
- data/ext/libr2tao/longdouble.cpp +5 -9
- data/ext/libr2tao/object.cpp +37 -53
- data/ext/libr2tao/orb.cpp +46 -73
- data/ext/libr2tao/r2tao_ext.h +8 -19
- data/ext/libr2tao/required.cpp +3 -8
- data/ext/libr2tao/required.h +18 -34
- data/ext/libr2tao/values.cpp +97 -98
- data/ext/libr2tao/values.h +35 -37
- data/ext/librpoa/iortable.cpp +6 -7
- data/ext/librpoa/poa.cpp +29 -32
- data/ext/librpoa/servant.cpp +39 -113
- data/ext/librpoa/servant.h +18 -40
- data/lib/corba/cbase/ORB.rb +26 -23
- data/lib/corba/cbase/Request.rb +3 -3
- data/lib/corba/cbase/Streams.rb +2 -2
- data/lib/corba/cbase/Typecode.rb +6 -6
- data/lib/corba/cbase/Values.rb +4 -2
- data/lib/corba/cbase/exception.rb +6 -4
- data/lib/corba/cbase/poa.rb +1 -1
- data/lib/corba/cbase/policies.rb +2 -2
- data/lib/corba/cbase/require.rb +8 -1
- data/lib/corba/cmds/base.rb +1 -1
- data/lib/corba/common/Any.rb +3 -2
- data/lib/corba/common/IDL.rb +1 -1
- data/lib/corba/common/ORB.rb +22 -22
- data/lib/corba/common/Object.rb +14 -14
- data/lib/corba/common/Servant.rb +4 -4
- data/lib/corba/common/Stub.rb +6 -6
- data/lib/corba/common/Typecode.rb +69 -42
- data/lib/corba/common/Union.rb +5 -0
- data/lib/corba/common/Values.rb +1 -0
- data/lib/corba/common/const.rb +2 -2
- data/lib/corba/common/exception.rb +2 -1
- data/lib/corba/common/version.rb +2 -2
- data/lib/corba/idl/IDL.rb +1 -1
- data/lib/corba/jbase/Any.rb +28 -26
- data/lib/corba/jbase/ORB.rb +5 -5
- data/lib/corba/jbase/Object.rb +13 -13
- data/lib/corba/jbase/Request.rb +8 -8
- data/lib/corba/jbase/Servant.rb +10 -10
- data/lib/corba/jbase/ServerRequest.rb +7 -7
- data/lib/corba/jbase/Streams.rb +67 -3
- data/lib/corba/jbase/Typecode.rb +17 -16
- data/lib/corba/jbase/Values.rb +2 -0
- data/lib/corba/jbase/exception.rb +2 -1
- data/lib/corba/jbase/poa.rb +20 -20
- data/lib/corba/jbase/policies.rb +32 -32
- data/lib/corba/jbase/require.rb +4 -0
- data/lib/corba/poa.rb +1 -1
- data/lib/corba/policies.rb +1 -1
- data/lib/corba/require.rb +2 -2
- data/lib/corba/svcs/ins/cos_naming.rb +37 -28
- data/lib/corba/svcs/ins/ins.rb +51 -51
- data/lib/corba/svcs/ins/naming_service.rb +8 -8
- data/lib/corba.rb +1 -1
- data/lib/ridlbe/ruby/config.rb +37 -30
- data/lib/ridlbe/ruby/walker.rb +295 -272
- data/mkrf_conf_srcgem.rb +6 -6
- data/rakelib/bin.rake +1 -1
- data/rakelib/bin.rb +3 -3
- data/rakelib/build.rake +16 -16
- data/rakelib/config.rake +1 -1
- data/rakelib/config.rb +22 -22
- data/rakelib/ext.rake +7 -68
- data/rakelib/ext.rb +15 -15
- data/rakelib/ext_r2tao.rb +12 -55
- data/rakelib/gem.rake +25 -25
- data/rakelib/gem.rb +6 -6
- data/rakelib/package.rake +1 -1
- data/test/BiDirectional/client.rb +17 -17
- data/test/BiDirectional/run_test.rb +11 -11
- data/test/BiDirectional/server.rb +24 -25
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +17 -17
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +19 -19
- data/test/CORBA_Services/Naming/Corbaname/client.rb +15 -15
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/Corbaname/server.rb +30 -30
- data/test/CORBA_Services/Naming/Simple/client.rb +16 -16
- data/test/CORBA_Services/Naming/Simple/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/Simple/server.rb +19 -19
- data/test/Collocation/run_test.rb +10 -10
- data/test/Collocation/test.rb +27 -20
- data/test/Connect_Timeout/client.rb +16 -17
- data/test/Connect_Timeout/run_test.rb +10 -10
- data/test/DII/client.rb +30 -30
- data/test/DII/run_test.rb +11 -11
- data/test/DII/server.rb +16 -16
- data/test/DSI/client.rb +16 -16
- data/test/DSI/run_test.rb +11 -11
- data/test/DSI/server.rb +17 -17
- data/test/Exceptions/client.rb +21 -21
- data/test/Exceptions/run_test.rb +11 -11
- data/test/Exceptions/server.rb +16 -16
- data/test/Hello/client.rb +16 -16
- data/test/Hello/run_test.rb +11 -11
- data/test/Hello/server.rb +17 -17
- data/test/IDL_Test/client.rb +21 -21
- data/test/IDL_Test/run_test.rb +11 -11
- data/test/IDL_Test/server.rb +19 -19
- data/test/IORMap/client.rb +14 -14
- data/test/IORMap/run_test.rb +11 -11
- data/test/IORMap/server.rb +26 -26
- data/test/IORTable/client.rb +14 -14
- data/test/IORTable/run_test.rb +11 -11
- data/test/IORTable/server.rb +26 -26
- data/test/Implicit_Conversion/client.rb +20 -17
- data/test/Implicit_Conversion/run_test.rb +11 -11
- data/test/Implicit_Conversion/server.rb +16 -16
- data/test/Multi_Threading/Multiple_ORB/client.rb +14 -14
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +12 -12
- data/test/Multi_Threading/Multiple_ORB/server.rb +17 -17
- data/test/Multi_Threading/Simple/client.rb +17 -17
- data/test/Multi_Threading/Simple/run_test.rb +11 -11
- data/test/Multi_Threading/Simple/server.rb +16 -16
- data/test/Multi_Threading/Threads/client.rb +16 -16
- data/test/Multi_Threading/Threads/run_test.rb +11 -11
- data/test/Multi_Threading/Threads/server.rb +22 -22
- data/test/Multi_Threading/Threads/watchdog.rb +16 -16
- data/test/Multiple_Servant_Interfaces/client.rb +14 -14
- data/test/Multiple_Servant_Interfaces/run_test.rb +11 -11
- data/test/Multiple_Servant_Interfaces/server.rb +18 -18
- data/test/Nil/run_test.rb +10 -10
- data/test/Nil/test.rb +14 -15
- data/test/OBV/AbstractInterface/client.rb +14 -14
- data/test/OBV/AbstractInterface/run_test.rb +11 -11
- data/test/OBV/AbstractInterface/server.rb +20 -19
- data/test/OBV/Custom/OBV_impl.rb +2 -0
- data/test/OBV/Custom/client.rb +14 -14
- data/test/OBV/Custom/run_test.rb +11 -11
- data/test/OBV/Custom/server.rb +16 -16
- data/test/OBV/Simple/OBV_impl.rb +1 -0
- data/test/OBV/Simple/client.rb +14 -14
- data/test/OBV/Simple/run_test.rb +11 -11
- data/test/OBV/Simple/server.rb +16 -16
- data/test/OBV/Simple_Event/Event_impl.rb +1 -0
- data/test/OBV/Simple_Event/client.rb +14 -14
- data/test/OBV/Simple_Event/run_test.rb +11 -11
- data/test/OBV/Simple_Event/server.rb +16 -16
- data/test/OBV/Supports/client.rb +19 -19
- data/test/OBV/Supports/run_test.rb +11 -11
- data/test/OBV/Supports/server.rb +15 -15
- data/test/OBV/Supports/supports_impl.rb +3 -0
- data/test/OBV/Tree/client.rb +14 -14
- data/test/OBV/Tree/run_test.rb +11 -11
- data/test/OBV/Tree/server.rb +19 -19
- data/test/OBV/Truncatable/Truncatable_impl.rb +1 -1
- data/test/OBV/Truncatable/client.rb +57 -57
- data/test/OBV/Truncatable/run_test.rb +11 -11
- data/test/OBV/Truncatable/server.rb +15 -15
- data/test/OBV/ValueBox/client.rb +154 -153
- data/test/OBV/ValueBox/run_test.rb +11 -11
- data/test/OBV/ValueBox/server.rb +42 -42
- data/test/Object/client.rb +15 -15
- data/test/Object/run_test.rb +11 -11
- data/test/Object/server.rb +19 -19
- data/test/POA/run_test.rb +10 -10
- data/test/POA/test.rb +16 -16
- data/test/Param_Test/client.rb +51 -51
- data/test/Param_Test/run_test.rb +11 -11
- data/test/Param_Test/server.rb +59 -59
- data/test/Performance/Simple/client.rb +16 -16
- data/test/Performance/Simple/run_test.rb +11 -11
- data/test/Performance/Simple/server.rb +16 -16
- data/test/Policies/run_test.rb +10 -10
- data/test/Policies/test.rb +23 -24
- data/test/Timeout/client.rb +21 -21
- data/test/Timeout/run_test.rb +11 -11
- data/test/Timeout/server.rb +22 -22
- data/test/lib/assert.rb +0 -1
- data/test/lib/test.rb +28 -23
- data/test/test_runner.rb +21 -22
- metadata +6 -9
- data/ext/extload/extload.c +0 -60
- data/ext/librpoa/srvreq_fix.cpp +0 -282
- data/ext/librpoa/srvreq_fix.h +0 -148
@@ -49,6 +49,7 @@ module R2CORBA
|
|
49
49
|
@name_types = {}
|
50
50
|
super
|
51
51
|
end
|
52
|
+
|
52
53
|
def []=(id, tc)
|
53
54
|
synchronize do
|
54
55
|
@id_types[id] = tc
|
@@ -57,6 +58,7 @@ module R2CORBA
|
|
57
58
|
@name_types[tc.name] = types_for_name_
|
58
59
|
end
|
59
60
|
end
|
61
|
+
|
60
62
|
def [](id)
|
61
63
|
tc = nil
|
62
64
|
synchronize do
|
@@ -64,6 +66,7 @@ module R2CORBA
|
|
64
66
|
end
|
65
67
|
tc
|
66
68
|
end
|
69
|
+
|
67
70
|
def types_for_name(name)
|
68
71
|
tcs = nil
|
69
72
|
synchronize do
|
@@ -92,10 +95,10 @@ module R2CORBA
|
|
92
95
|
end
|
93
96
|
|
94
97
|
def TypeCode.from_native(ntc)
|
95
|
-
if [TK_NULL,TK_VOID,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
|
96
|
-
TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
|
97
|
-
TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,
|
98
|
-
TK_TYPECODE,TK_PRINCIPAL].include?(native_kind(ntc))
|
98
|
+
if [TK_NULL, TK_VOID, TK_ANY, TK_BOOLEAN, TK_SHORT, TK_LONG, TK_USHORT,
|
99
|
+
TK_WCHAR, TK_ULONG, TK_LONGLONG, TK_ULONGLONG, TK_OCTET,
|
100
|
+
TK_FLOAT, TK_DOUBLE, TK_LONGDOUBLE, TK_CHAR,
|
101
|
+
TK_TYPECODE, TK_PRINCIPAL].include?(native_kind(ntc))
|
99
102
|
## primitive typecode; wrap it
|
100
103
|
return TypeCode._wrap_native(ntc)
|
101
104
|
else
|
@@ -157,9 +160,9 @@ module R2CORBA
|
|
157
160
|
rtc = TypeCode::Valuetype.new(ntc)
|
158
161
|
end
|
159
162
|
when TK_NATIVE
|
160
|
-
raise CORBA::NO_IMPLEMENT.new('typecode #{native_kind(ntc)} not supported',0,CORBA::COMPLETED_NO)
|
163
|
+
raise CORBA::NO_IMPLEMENT.new('typecode #{native_kind(ntc)} not supported', 0, CORBA::COMPLETED_NO)
|
161
164
|
else
|
162
|
-
raise CORBA::MARSHAL.new("unknown kind [#{native_kind(ntc)}]",0,CORBA::COMPLETED_NO)
|
165
|
+
raise CORBA::MARSHAL.new("unknown kind [#{native_kind(ntc)}]", 0, CORBA::COMPLETED_NO)
|
163
166
|
end
|
164
167
|
return rtc
|
165
168
|
end
|
@@ -184,7 +187,7 @@ module R2CORBA
|
|
184
187
|
end
|
185
188
|
|
186
189
|
def equal?(tc)
|
187
|
-
raise ArgumentError,
|
190
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless tc.is_a?(CORBA::TypeCode)
|
188
191
|
begin
|
189
192
|
self.tc_.equal(tc.tc_)
|
190
193
|
rescue ::NativeException
|
@@ -193,7 +196,7 @@ module R2CORBA
|
|
193
196
|
end
|
194
197
|
|
195
198
|
def equivalent?(tc)
|
196
|
-
raise ArgumentError,
|
199
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless tc.is_a?(CORBA::TypeCode)
|
197
200
|
begin
|
198
201
|
self.tc_.equivalent(tc.tc_)
|
199
202
|
rescue ::NativeException
|
@@ -342,7 +345,7 @@ module R2CORBA
|
|
342
345
|
when TK_ANY
|
343
346
|
return CORBA::Any === val ? val : Any.to_any(val)
|
344
347
|
when TK_BOOLEAN
|
345
|
-
return val if (
|
348
|
+
return val if (val.is_a? TrueClass) || (val.is_a? FalseClass)
|
346
349
|
when TK_SHORT
|
347
350
|
return val.to_int if val.respond_to?(:to_int) && ShortRange === val.to_int
|
348
351
|
when TK_LONG
|
@@ -367,7 +370,7 @@ module R2CORBA
|
|
367
370
|
return val.respond_to?(:to_str) ? val.to_str : val.to_int.chr
|
368
371
|
end
|
369
372
|
else
|
370
|
-
return val if
|
373
|
+
return val if val.nil? || val.is_a?(self.get_type)
|
371
374
|
end
|
372
375
|
raise CORBA::MARSHAL.new(
|
373
376
|
"value does not match type: value = #{val}, value type == #{val.class.name}, type == #{get_type.name}",
|
@@ -397,19 +400,24 @@ module R2CORBA
|
|
397
400
|
@recursive_tc ||= TypeCode.typecode_for_id(self.id)
|
398
401
|
@recursive_tc || ::CORBA::TypeCode.new(TK_NULL)
|
399
402
|
end
|
403
|
+
|
400
404
|
def resolved_tc
|
401
405
|
recursed_tc.resolved_tc
|
402
406
|
end
|
407
|
+
|
403
408
|
def is_recursive_tc?
|
404
409
|
true
|
405
410
|
end
|
411
|
+
|
406
412
|
def get_type
|
407
413
|
@recursive_tc ||= TypeCode.typecode_for_id(self.id)
|
408
414
|
if @recursive_tc.nil? then nil; else @recursive_tc.get_type; end
|
409
415
|
end
|
416
|
+
|
410
417
|
def validate(val)
|
411
418
|
recursed_tc.validate(val)
|
412
419
|
end
|
420
|
+
|
413
421
|
def needs_conversion(val)
|
414
422
|
recursed_tc.needs_conversion(val)
|
415
423
|
end
|
@@ -431,7 +439,7 @@ module R2CORBA
|
|
431
439
|
val = ::String === val ? val : val.to_str
|
432
440
|
raise ::CORBA::MARSHAL.new(
|
433
441
|
"string size exceeds bound: #{self.length.to_s}",
|
434
|
-
1, ::CORBA::COMPLETED_NO) unless
|
442
|
+
1, ::CORBA::COMPLETED_NO) unless self.length == 0 || val.size <= self.length
|
435
443
|
val
|
436
444
|
end
|
437
445
|
|
@@ -464,9 +472,9 @@ module R2CORBA
|
|
464
472
|
end
|
465
473
|
raise ::CORBA::MARSHAL.new(
|
466
474
|
"widestring size exceeds bound: #{self.length.to_s}",
|
467
|
-
1, ::CORBA::COMPLETED_NO) unless
|
475
|
+
1, ::CORBA::COMPLETED_NO) unless self.length == 0 || val.size <= self.length
|
468
476
|
raise ::CORBA::MARSHAL.new(
|
469
|
-
|
477
|
+
'invalid widestring element(s)',
|
470
478
|
1, ::CORBA::COMPLETED_NO) if val.any? { |el| !(UShortRange === (el.respond_to?(:to_int) ? el.to_int : el)) }
|
471
479
|
val.any? { |el| !(::Integer === el) } ? val.collect { |el| el.to_int } : val
|
472
480
|
end
|
@@ -538,7 +546,7 @@ module R2CORBA
|
|
538
546
|
end
|
539
547
|
raise ::CORBA::MARSHAL.new(
|
540
548
|
"sequence size exceeds bound: #{self.length.to_s}",
|
541
|
-
1, ::CORBA::COMPLETED_NO) unless
|
549
|
+
1, ::CORBA::COMPLETED_NO) unless self.length == 0 || val.size <= self.length
|
542
550
|
if ::Array === val
|
543
551
|
if val.any? { |e| self.content_type.needs_conversion(e) }
|
544
552
|
val.collect { |e| self.content_type.validate(e) }
|
@@ -559,8 +567,8 @@ module R2CORBA
|
|
559
567
|
end
|
560
568
|
|
561
569
|
def inspect
|
562
|
-
"#{self.class.name}: "+
|
563
|
-
"length=#{if self.length.nil? then ""; else self.length.to_s; end}; "+
|
570
|
+
"#{self.class.name}: " +
|
571
|
+
"length=#{if self.length.nil? then ""; else self.length.to_s; end}; " +
|
564
572
|
"content=#{self.content_type.inspect}"
|
565
573
|
end
|
566
574
|
end
|
@@ -580,10 +588,10 @@ module R2CORBA
|
|
580
588
|
super(val)
|
581
589
|
raise ::CORBA::MARSHAL.new(
|
582
590
|
"array size exceeds bound: #{self.length.to_s}",
|
583
|
-
1, ::CORBA::COMPLETED_NO) unless val.nil? || val.size<=self.length
|
591
|
+
1, ::CORBA::COMPLETED_NO) unless val.nil? || val.size <= self.length
|
584
592
|
raise ::CORBA::MARSHAL.new(
|
585
593
|
"array size too small: #{self.length.to_s}",
|
586
|
-
1, ::CORBA::COMPLETED_NO) unless val.nil? || val.size>=self.length
|
594
|
+
1, ::CORBA::COMPLETED_NO) unless val.nil? || val.size >= self.length
|
587
595
|
val.any? { |e| self.content_type.needs_conversion(e) } ? val.collect { |e| self.content_type.validate(e) } : val.each { |e| self.content_type.validate(e) }
|
588
596
|
end
|
589
597
|
|
@@ -607,6 +615,7 @@ module R2CORBA
|
|
607
615
|
def get_type
|
608
616
|
@type || self.content_type.get_type
|
609
617
|
end
|
618
|
+
|
610
619
|
def validate(val)
|
611
620
|
self.content_type.validate(val)
|
612
621
|
end
|
@@ -625,6 +634,7 @@ module R2CORBA
|
|
625
634
|
def initialize(*args)
|
626
635
|
raise 'overload required'
|
627
636
|
end
|
637
|
+
|
628
638
|
def add_member(name, tc, access)
|
629
639
|
raise ArgumentError, 'expected CORBA::TypeCode' unless tc.is_a?(CORBA::TypeCode)
|
630
640
|
@members << [name, tc, access]
|
@@ -653,7 +663,7 @@ module R2CORBA
|
|
653
663
|
tc.members.each do |nm_, tc_, access_|
|
654
664
|
value_type::Intf.module_eval(%Q{attr_accessor :#{nm_}})
|
655
665
|
value_type::Intf.__send__(:private, nm_.intern)
|
656
|
-
value_type::Intf.__send__(:private, (nm_+'=').intern)
|
666
|
+
value_type::Intf.__send__(:private, (nm_ + '=').intern)
|
657
667
|
end
|
658
668
|
value_type
|
659
669
|
end
|
@@ -668,7 +678,7 @@ module R2CORBA
|
|
668
678
|
if needs_conversion(val)
|
669
679
|
vorg = val
|
670
680
|
val = vorg.class.new
|
671
|
-
@members.each { |name, tc| val.__send__((name+'=').intern, tc.validate(vorg.__send__(name.intern))) }
|
681
|
+
@members.each { |name, tc| val.__send__((name + '=').intern, tc.validate(vorg.__send__(name.intern))) }
|
672
682
|
else
|
673
683
|
@members.each { |name, tc| tc.validate(val.__send__(name.intern)) }
|
674
684
|
end
|
@@ -677,24 +687,26 @@ module R2CORBA
|
|
677
687
|
|
678
688
|
def needs_conversion(val)
|
679
689
|
return false if val.nil?
|
680
|
-
@members.any? { |name,tc| tc.needs_conversion(val.__send__(name.intern)) }
|
690
|
+
@members.any? { |name, tc| tc.needs_conversion(val.__send__(name.intern)) }
|
681
691
|
end
|
682
692
|
|
683
693
|
def member_count
|
684
694
|
@members.size
|
685
695
|
end
|
696
|
+
|
686
697
|
def member_name(index)
|
687
|
-
raise ::CORBA::TypeCode::Bounds.new if (index<0) || (index
|
698
|
+
raise ::CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
688
699
|
@members[index][0]
|
689
700
|
end
|
701
|
+
|
690
702
|
def member_type(index)
|
691
|
-
raise ::CORBA::TypeCode::Bounds.new if (index<0) || (index
|
703
|
+
raise ::CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
692
704
|
@members[index][1]
|
693
705
|
end
|
694
706
|
|
695
707
|
def inspect
|
696
708
|
s = "#{self.class.name}: #{name} - #{id}\n"
|
697
|
-
@members.each { |n, t| s += " #{n} = "+t.inspect+"\n" }
|
709
|
+
@members.each { |n, t| s += " #{n} = " + t.inspect + "\n" }
|
698
710
|
s
|
699
711
|
end
|
700
712
|
end # Valuetype
|
@@ -773,6 +785,7 @@ module R2CORBA
|
|
773
785
|
def initialize(*args)
|
774
786
|
raise 'overload required'
|
775
787
|
end
|
788
|
+
|
776
789
|
def add_member(name, tc)
|
777
790
|
raise ArgumentError, 'expected CORBA::TypeCode' unless tc.is_a?(CORBA::TypeCode)
|
778
791
|
@members << [name, tc]
|
@@ -785,7 +798,7 @@ module R2CORBA
|
|
785
798
|
@@tc_#{tc.name} ||= TypeCode.typecode_for_id('#{tc.id}')
|
786
799
|
end
|
787
800
|
def initialize(*param_)
|
788
|
-
#{tc.members.collect {|n,t| "@#{n}"}.join(', ')} = param_
|
801
|
+
#{tc.members.collect {|n, t| "@#{n}"}.join(', ')} = param_
|
789
802
|
end
|
790
803
|
end
|
791
804
|
#{tc.name}
|
@@ -807,7 +820,7 @@ module R2CORBA
|
|
807
820
|
if needs_conversion(val)
|
808
821
|
vorg = val
|
809
822
|
val = vorg.class.new
|
810
|
-
@members.each { |name, tc| val.__send__((name+'=').intern, tc.validate(vorg.__send__(name.intern))) }
|
823
|
+
@members.each { |name, tc| val.__send__((name + '=').intern, tc.validate(vorg.__send__(name.intern))) }
|
811
824
|
else
|
812
825
|
@members.each { |name, tc| tc.validate(val.__send__(name.intern)) }
|
813
826
|
end
|
@@ -815,24 +828,26 @@ module R2CORBA
|
|
815
828
|
end
|
816
829
|
|
817
830
|
def needs_conversion(val)
|
818
|
-
@members.any? { |name,tc| tc.needs_conversion(val.__send__(name.intern)) }
|
831
|
+
@members.any? { |name, tc| tc.needs_conversion(val.__send__(name.intern)) }
|
819
832
|
end
|
820
833
|
|
821
834
|
def member_count
|
822
835
|
@members.size
|
823
836
|
end
|
837
|
+
|
824
838
|
def member_name(index)
|
825
|
-
raise ::CORBA::TypeCode::Bounds.new if (index<0) || (index
|
839
|
+
raise ::CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
826
840
|
@members[index][0]
|
827
841
|
end
|
842
|
+
|
828
843
|
def member_type(index)
|
829
|
-
raise ::CORBA::TypeCode::Bounds.new if (index<0) || (index
|
844
|
+
raise ::CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
830
845
|
@members[index][1]
|
831
846
|
end
|
832
847
|
|
833
848
|
def inspect
|
834
849
|
s = "#{self.class.name}: #{name} - #{id}\n"
|
835
|
-
@members.each { |n, t| s += " #{n} = "+t.inspect+"\n" }
|
850
|
+
@members.each { |n, t| s += " #{n} = " + t.inspect + "\n" }
|
836
851
|
s
|
837
852
|
end
|
838
853
|
end # Struct
|
@@ -860,7 +875,7 @@ module R2CORBA
|
|
860
875
|
@@tc_#{tc.name} ||= TypeCode.typecode_for_id('#{tc.id}')
|
861
876
|
end
|
862
877
|
def initialize(*param_)
|
863
|
-
#{tc.members.collect {|n,t| "@#{n}"}.join(',')} = param_
|
878
|
+
#{tc.members.collect {|n, t| "@#{n}"}.join(',')} = param_
|
864
879
|
end
|
865
880
|
end
|
866
881
|
#{tc.name}
|
@@ -883,16 +898,20 @@ module R2CORBA
|
|
883
898
|
def initialize(*args)
|
884
899
|
raise 'overload required'
|
885
900
|
end
|
901
|
+
|
886
902
|
# because creating the native tc involves creating Any's we postpone until actually needed
|
887
903
|
def tc_
|
888
904
|
raise 'overload required'
|
889
905
|
end
|
906
|
+
|
890
907
|
def id
|
891
908
|
@id
|
892
909
|
end
|
910
|
+
|
893
911
|
def name
|
894
912
|
@name
|
895
913
|
end
|
914
|
+
|
896
915
|
def add_member(label, name, tc)
|
897
916
|
raise ArgumentError, 'expected CORBA::TypeCode' unless tc.is_a?(CORBA::TypeCode)
|
898
917
|
@switchtype.validate(label) unless label == :default
|
@@ -935,14 +954,14 @@ module R2CORBA
|
|
935
954
|
return val if val.nil?
|
936
955
|
super(val)
|
937
956
|
@switchtype.validate(val._disc) unless val._disc == :default
|
938
|
-
#raise CORBA::MARSHAL.new(
|
957
|
+
# raise CORBA::MARSHAL.new(
|
939
958
|
# "invalid discriminator value (#{val._disc.to_s}) for union #{name}",
|
940
959
|
# 1, CORBA::COMPLETED_NO) unless @labels.has_key?(val._disc)
|
941
960
|
if @labels.has_key?(val._disc) # no need to check for implicit defaults
|
942
961
|
if needs_conversion(val)
|
943
962
|
vorg = val
|
944
963
|
val = vorg.class.new
|
945
|
-
val.__send__((@members[@labels[vorg._disc]][1]+'=').intern,
|
964
|
+
val.__send__((@members[@labels[vorg._disc]][1] + '=').intern,
|
946
965
|
@members[@labels[vorg._disc]][2].validate(vorg._value))
|
947
966
|
else
|
948
967
|
@members[@labels[val._disc]][2].validate(val._value)
|
@@ -958,28 +977,33 @@ module R2CORBA
|
|
958
977
|
def member_count
|
959
978
|
@members.size
|
960
979
|
end
|
980
|
+
|
961
981
|
def member_name(index)
|
962
|
-
raise CORBA::TypeCode::Bounds.new if (index<0) || (index
|
982
|
+
raise CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
963
983
|
@members[index][1]
|
964
984
|
end
|
985
|
+
|
965
986
|
def member_type(index)
|
966
|
-
raise CORBA::TypeCode::Bounds.new if (index<0) || (index
|
987
|
+
raise CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
967
988
|
@members[index][2]
|
968
989
|
end
|
990
|
+
|
969
991
|
def member_label(index)
|
970
|
-
raise CORBA::TypeCode::Bounds.new if (index<0) || (index
|
992
|
+
raise CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
971
993
|
@members[index][0]
|
972
994
|
end
|
995
|
+
|
973
996
|
def discriminator_type
|
974
997
|
@switchtype
|
975
998
|
end
|
999
|
+
|
976
1000
|
def default_index
|
977
1001
|
if @labels.has_key? :default then @labels[:default]; else -1; end
|
978
1002
|
end
|
979
1003
|
|
980
1004
|
def label_index(val)
|
981
1005
|
val = @switchtype.validate(val) unless val == :default
|
982
|
-
#raise CORBA::MARSHAL.new(
|
1006
|
+
# raise CORBA::MARSHAL.new(
|
983
1007
|
# "invalid discriminator value (#{val}) for union #{name}",
|
984
1008
|
# 1, CORBA::COMPLETED_NO) unless val == :default || @labels.has_key?(val) || @labels.has_key?(:default)
|
985
1009
|
if val == :default then @labels[:default]; elsif @labels.has_key?(val) then @labels[val] else nil end
|
@@ -992,7 +1016,7 @@ module R2CORBA
|
|
992
1016
|
|
993
1017
|
def inspect
|
994
1018
|
s = "#{self.class.name}: #{name} - #{id}\n"
|
995
|
-
@members.each { |l, n, t| s += " case #{l.to_s}: #{n} = "+t.inspect+"\n" }
|
1019
|
+
@members.each { |l, n, t| s += " case #{l.to_s}: #{n} = " + t.inspect + "\n" }
|
996
1020
|
s
|
997
1021
|
end
|
998
1022
|
end # Union
|
@@ -1002,6 +1026,7 @@ module R2CORBA
|
|
1002
1026
|
def initialize(*args)
|
1003
1027
|
raise 'overload required'
|
1004
1028
|
end
|
1029
|
+
|
1005
1030
|
def get_type
|
1006
1031
|
::Integer
|
1007
1032
|
end
|
@@ -1021,8 +1046,9 @@ module R2CORBA
|
|
1021
1046
|
def member_count
|
1022
1047
|
@members.size
|
1023
1048
|
end
|
1049
|
+
|
1024
1050
|
def member_name(index)
|
1025
|
-
raise CORBA::TypeCode::Bounds.new if (index<0) || (index
|
1051
|
+
raise CORBA::TypeCode::Bounds.new if (index < 0) || (index >= @members.size)
|
1026
1052
|
@members[index]
|
1027
1053
|
end
|
1028
1054
|
end # Enum
|
@@ -1093,17 +1119,17 @@ module R2CORBA
|
|
1093
1119
|
end
|
1094
1120
|
|
1095
1121
|
def CORBA._tc_CCMObject
|
1096
|
-
@@tc_CCMObject ||= TypeCode::Component.new(
|
1122
|
+
@@tc_CCMObject ||= TypeCode::Component.new('IDL:omg.org/CORBA/CCMObject:1.0', 'CCMObject', CORBA::Object).freeze
|
1097
1123
|
end
|
1098
1124
|
|
1099
1125
|
def CORBA._tc_CCHome
|
1100
|
-
@@tc_CCHome ||= TypeCode::Home.new(
|
1126
|
+
@@tc_CCHome ||= TypeCode::Home.new('IDL:omg.org/CORBA/CCHome:1.0', 'CCHome', CORBA::Object).freeze
|
1101
1127
|
end
|
1102
1128
|
|
1103
1129
|
# define system exception related typecode constants
|
1104
1130
|
|
1105
1131
|
def CORBA._tc_CompletionStatus
|
1106
|
-
@@tc_CompletionStatus ||= TypeCode::Enum.new(
|
1132
|
+
@@tc_CompletionStatus ||= TypeCode::Enum.new('IDL:omg.org/CORBA/CompletionStatus:1.0', 'CompletionStatus',
|
1107
1133
|
CORBA::COMPLETED_TXT.collect {|t| "COMPLETED_#{t}"})
|
1108
1134
|
end
|
1109
1135
|
|
@@ -1111,6 +1137,7 @@ module R2CORBA
|
|
1111
1137
|
def to_d(precision)
|
1112
1138
|
BigDecimal(self.to_s(precision))
|
1113
1139
|
end
|
1140
|
+
|
1114
1141
|
def LongDouble._tc
|
1115
1142
|
CORBA._tc_longdouble
|
1116
1143
|
end
|
data/lib/corba/common/Union.rb
CHANGED
@@ -19,16 +19,20 @@ module R2CORBA
|
|
19
19
|
@discriminator = nil
|
20
20
|
@value = nil
|
21
21
|
end
|
22
|
+
|
22
23
|
def _is_at_default?
|
23
24
|
@discriminator == :default
|
24
25
|
end
|
26
|
+
|
25
27
|
def _value_tc
|
26
28
|
ix = self.class._tc.label_index(@discriminator)
|
27
29
|
self.class._tc.member_type(ix)
|
28
30
|
end
|
31
|
+
|
29
32
|
def _disc
|
30
33
|
@discriminator
|
31
34
|
end
|
35
|
+
|
32
36
|
def _disc=(val)
|
33
37
|
m_cur = self.class._tc.label_member(@discriminator) unless @discriminator.nil?
|
34
38
|
m_new = self.class._tc.label_member(val)
|
@@ -39,6 +43,7 @@ module R2CORBA
|
|
39
43
|
@discriminator = val
|
40
44
|
disc_
|
41
45
|
end
|
46
|
+
|
42
47
|
def _value
|
43
48
|
@value
|
44
49
|
end
|
data/lib/corba/common/Values.rb
CHANGED
data/lib/corba/common/const.rb
CHANGED
@@ -11,8 +11,8 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
module R2CORBA
|
13
13
|
module CORBA
|
14
|
-
BIG_ENDIAN, LTL_ENDIAN = 0,1
|
15
|
-
ENDIAN = (
|
14
|
+
BIG_ENDIAN, LTL_ENDIAN = 0, 1
|
15
|
+
ENDIAN = ('Ruby'.unpack('i')[0] == 2036495698) ? LTL_ENDIAN : BIG_ENDIAN
|
16
16
|
|
17
17
|
ARG_IN = 1
|
18
18
|
ARG_OUT = 2
|
@@ -13,7 +13,7 @@
|
|
13
13
|
module R2CORBA
|
14
14
|
module CORBA
|
15
15
|
COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE = (0..2).to_a
|
16
|
-
COMPLETED_TXT = [
|
16
|
+
COMPLETED_TXT = ['YES', 'NO', 'MAYBE'].freeze
|
17
17
|
class Exception < StandardError
|
18
18
|
end
|
19
19
|
|
@@ -29,6 +29,7 @@ module R2CORBA
|
|
29
29
|
def reason
|
30
30
|
self.message
|
31
31
|
end
|
32
|
+
|
32
33
|
def to_s
|
33
34
|
"CORBA::#{self.class::Name}(#{super}) [minor=#{@minor};completed=#{COMPLETED_TXT[@completed.to_i]}]"
|
34
35
|
end
|
data/lib/corba/common/version.rb
CHANGED
data/lib/corba/idl/IDL.rb
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
module R2CORBA
|
13
13
|
|
14
14
|
module CORBA
|
15
|
-
def CORBA.implement(idlfile, params={}, genbits = IDL::CLIENT_STUB, &block)
|
15
|
+
def CORBA.implement(idlfile, params = {}, genbits = IDL::CLIENT_STUB, &block)
|
16
16
|
IDL.implement(idlfile, params, genbits, &block)
|
17
17
|
end
|
18
18
|
end
|
data/lib/corba/jbase/Any.rb
CHANGED
@@ -15,21 +15,23 @@ module R2CORBA
|
|
15
15
|
module Dynamic
|
16
16
|
include_package 'org.omg.DynamicAny'
|
17
17
|
end
|
18
|
+
|
18
19
|
module Reflect
|
19
20
|
java_import java.lang.reflect.Array
|
20
21
|
end
|
21
22
|
end
|
23
|
+
|
22
24
|
class Any
|
23
|
-
def to_java(jorb=nil,jany=nil)
|
25
|
+
def to_java(jorb = nil, jany = nil)
|
24
26
|
rtc = self._tc
|
25
27
|
rval = self._value.nil? ? self._value : rtc.validate(self._value)
|
26
28
|
restc = rtc.resolved_tc
|
27
29
|
begin
|
28
30
|
if [TK_VALUE, TK_VALUE_BOX, TK_ABSTRACT_INTERFACE].include?(restc.kind) ||
|
29
|
-
(!rval.nil? && [TK_NULL,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
|
30
|
-
TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
|
31
|
-
TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
|
32
|
-
TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,TK_PRINCIPAL].include?(restc.kind))
|
31
|
+
(!rval.nil? && [TK_NULL, TK_ANY, TK_BOOLEAN, TK_SHORT, TK_LONG, TK_USHORT,
|
32
|
+
TK_WCHAR, TK_ULONG, TK_LONGLONG, TK_ULONGLONG, TK_OCTET,
|
33
|
+
TK_FLOAT, TK_DOUBLE, TK_LONGDOUBLE, TK_CHAR, TK_STRING, TK_WSTRING,
|
34
|
+
TK_VALUE, TK_VALUE_BOX, TK_TYPECODE, TK_OBJREF, TK_PRINCIPAL].include?(restc.kind))
|
33
35
|
jorb ||= CORBA::ORB._orb
|
34
36
|
jany ||= jorb.create_any()
|
35
37
|
case restc.kind
|
@@ -60,7 +62,7 @@ module R2CORBA
|
|
60
62
|
when TK_DOUBLE
|
61
63
|
jany.insert_double(rval)
|
62
64
|
when TK_LONGDOUBLE
|
63
|
-
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
|
65
|
+
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported', 0, CORBA::COMPLETED_NO)
|
64
66
|
when TK_FIXED
|
65
67
|
jany.insert_fixed(java.math.BigDecimal.new(rval.to_s))
|
66
68
|
when TK_CHAR
|
@@ -68,7 +70,7 @@ module R2CORBA
|
|
68
70
|
when TK_STRING
|
69
71
|
jany.insert_string(rval)
|
70
72
|
when TK_WSTRING
|
71
|
-
jany.insert_wstring(rval.inject('') {|s,b| s << b.chr})
|
73
|
+
jany.insert_wstring(rval.inject('') {|s, b| s << b.chr})
|
72
74
|
when TK_VALUE
|
73
75
|
jany.insert_Value(rval, rtc.tc_)
|
74
76
|
when TK_VALUE_BOX
|
@@ -94,15 +96,15 @@ module R2CORBA
|
|
94
96
|
jany.insert_Value(rval, rtc.tc_)
|
95
97
|
end
|
96
98
|
when TK_PRINCIPAL
|
97
|
-
raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
|
99
|
+
raise CORBA::NO_IMPLEMENT.new('Principal not supported', 0, CORBA::COMPLETED_NO)
|
98
100
|
## TODO: TK_NATIVE
|
99
101
|
else
|
100
|
-
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
|
102
|
+
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]", 0, CORBA::COMPLETED_NO)
|
101
103
|
end
|
102
104
|
return jany
|
103
105
|
else
|
104
106
|
dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
|
105
|
-
(jorb || CORBA::ORB._orb).resolve_initial_references(
|
107
|
+
(jorb || CORBA::ORB._orb).resolve_initial_references('DynAnyFactory'))
|
106
108
|
jdynany = dynFactory.create_dyn_any_from_type_code(rtc.tc_)
|
107
109
|
begin
|
108
110
|
unless rval.nil?
|
@@ -112,15 +114,15 @@ module R2CORBA
|
|
112
114
|
jdynany.set_as_ulong(rval)
|
113
115
|
when TK_ARRAY
|
114
116
|
jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
|
115
|
-
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) }
|
116
118
|
jdynany.set_elements(jelems)
|
117
119
|
when TK_SEQUENCE
|
118
120
|
jelems = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Any.java_class, rval.size)
|
119
|
-
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) }
|
120
122
|
jdynany.set_elements(jelems)
|
121
123
|
when TK_STRUCT, TK_EXCEPT
|
122
124
|
jmembers = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Dynamic::NameValuePair.java_class, restc.members.size)
|
123
|
-
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)) }
|
124
126
|
jdynany.set_members(jmembers)
|
125
127
|
when TK_UNION
|
126
128
|
if rval._is_at_default?
|
@@ -134,7 +136,7 @@ module R2CORBA
|
|
134
136
|
jdynany.member.from_any(Any.to_any(rval._value, rval._value_tc).to_java(jorb))
|
135
137
|
end
|
136
138
|
else
|
137
|
-
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
|
139
|
+
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]", 0, CORBA::COMPLETED_NO)
|
138
140
|
end
|
139
141
|
end
|
140
142
|
if jany.nil?
|
@@ -152,15 +154,15 @@ module R2CORBA
|
|
152
154
|
end
|
153
155
|
end # to_java
|
154
156
|
|
155
|
-
def Any.from_java(jany, jorb=nil, rtc=nil)
|
157
|
+
def Any.from_java(jany, jorb = nil, rtc = nil)
|
156
158
|
rtc ||= CORBA::TypeCode.from_native(jany.type)
|
157
159
|
rval = nil
|
158
160
|
begin
|
159
|
-
if [TK_NULL,TK_VOID,TK_ANY,TK_BOOLEAN,TK_SHORT,TK_LONG,TK_USHORT,
|
160
|
-
TK_WCHAR,TK_ULONG,TK_LONGLONG,TK_ULONGLONG,TK_OCTET,
|
161
|
-
TK_FLOAT,TK_DOUBLE,TK_LONGDOUBLE,TK_CHAR,TK_STRING,TK_WSTRING,
|
162
|
-
TK_VALUE, TK_VALUE_BOX,TK_TYPECODE,TK_OBJREF,
|
163
|
-
TK_ABSTRACT_INTERFACE,TK_PRINCIPAL].include?(rtc.resolved_tc.kind)
|
161
|
+
if [TK_NULL, TK_VOID, TK_ANY, TK_BOOLEAN, TK_SHORT, TK_LONG, TK_USHORT,
|
162
|
+
TK_WCHAR, TK_ULONG, TK_LONGLONG, TK_ULONGLONG, TK_OCTET,
|
163
|
+
TK_FLOAT, TK_DOUBLE, TK_LONGDOUBLE, TK_CHAR, TK_STRING, TK_WSTRING,
|
164
|
+
TK_VALUE, TK_VALUE_BOX, TK_TYPECODE, TK_OBJREF,
|
165
|
+
TK_ABSTRACT_INTERFACE, TK_PRINCIPAL].include?(rtc.resolved_tc.kind)
|
164
166
|
case rtc.resolved_tc.kind
|
165
167
|
when TK_NULL, TK_VOID
|
166
168
|
# leave as is
|
@@ -189,7 +191,7 @@ module R2CORBA
|
|
189
191
|
when TK_DOUBLE
|
190
192
|
rval = jany.extract_double()
|
191
193
|
when TK_LONGDOUBLE
|
192
|
-
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
|
194
|
+
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported', 0, CORBA::COMPLETED_NO)
|
193
195
|
when TK_FIXED
|
194
196
|
rval = BigDecimal(jany.extract_fixed().toString())
|
195
197
|
when TK_CHAR
|
@@ -217,14 +219,14 @@ module R2CORBA
|
|
217
219
|
jobj
|
218
220
|
end
|
219
221
|
when TK_PRINCIPAL
|
220
|
-
raise CORBA::NO_IMPLEMENT.new('Principal not supported',0,CORBA::COMPLETED_NO)
|
222
|
+
raise CORBA::NO_IMPLEMENT.new('Principal not supported', 0, CORBA::COMPLETED_NO)
|
221
223
|
## TODO: TK_NATIVE
|
222
224
|
else
|
223
|
-
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
|
225
|
+
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]", 0, CORBA::COMPLETED_NO)
|
224
226
|
end
|
225
227
|
else
|
226
228
|
dynFactory = CORBA::Native::Dynamic::DynAnyFactoryHelper.narrow(
|
227
|
-
(jorb || CORBA::ORB._orb).resolve_initial_references(
|
229
|
+
(jorb || CORBA::ORB._orb).resolve_initial_references('DynAnyFactory'))
|
228
230
|
jdynany = dynFactory.create_dyn_any(jany)
|
229
231
|
begin
|
230
232
|
restc = rtc.resolved_tc
|
@@ -239,7 +241,7 @@ module R2CORBA
|
|
239
241
|
jdynany.get_elements().each {|e| rval << Any.from_java(e, jorb, restc.content_type) }
|
240
242
|
when TK_STRUCT, TK_EXCEPT
|
241
243
|
rval = rtc.get_type.new
|
242
|
-
jdynany.get_members().each_with_index {|nvp,i| rval.__send__("#{nvp.id}=".intern, Any.from_java(nvp.value, jorb, restc.member_type(i))) }
|
244
|
+
jdynany.get_members().each_with_index {|nvp, i| rval.__send__("#{nvp.id}=".intern, Any.from_java(nvp.value, jorb, restc.member_type(i))) }
|
243
245
|
when TK_UNION
|
244
246
|
rval = rtc.get_type.new
|
245
247
|
if jdynany.get_discriminator().type().kind().value() == CORBA::TK_OCTET
|
@@ -255,7 +257,7 @@ module R2CORBA
|
|
255
257
|
rval.instance_variable_set('@value', Any.from_java(jdynany.member.to_any, jorb, restc.member_type(minx)))
|
256
258
|
end
|
257
259
|
else
|
258
|
-
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]",0,CORBA::COMPLETED_NO)
|
260
|
+
raise CORBA::MARSHAL.new("unknown kind [#{rtc.kind}]", 0, CORBA::COMPLETED_NO)
|
259
261
|
end
|
260
262
|
ensure
|
261
263
|
jdynany.destroy
|