r2corba 1.5.1-universal-java
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 +173 -0
- data/LICENSE +59 -0
- data/LICENSE.jacorb +660 -0
- data/README +62 -0
- data/THANKS +54 -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/jacorb/lib/antlr-2.7.2.jar +0 -0
- data/jacorb/lib/jacorb-3.5.jar +0 -0
- data/jacorb/lib/jacorb-omgapi-3.5.jar +0 -0
- data/jacorb/lib/jacorb-services-3.5.jar +0 -0
- data/jacorb/lib/slf4j-api-1.7.6.jar +0 -0
- data/jacorb/lib/slf4j-jdk14-1.7.6.jar +0 -0
- data/lib/corba.rb +16 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +237 -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/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/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 +112 -0
- data/lib/corba/jbase/Object.rb +99 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +248 -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 +89 -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/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 +151 -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 +544 -0
- data/rakelib/gem.rake +236 -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/gateway.ior +1 -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 +0 -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 +93 -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 +112 -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.log +20 -0
- data/test/test2.log +5000 -0
- data/test/test_runner.rb +193 -0
- metadata +349 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Request.rb - C++/TAO CORBA Request definitions
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
module R2CORBA
|
14
|
+
module CORBA
|
15
|
+
|
16
|
+
module Request
|
17
|
+
|
18
|
+
def add_in_arg(tc, val, nm='')
|
19
|
+
self._arguments << [nm, CORBA::ARG_IN, tc, val]
|
20
|
+
self._arguments.size
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_out_arg(tc, nm='')
|
24
|
+
self._arguments << [nm, CORBA::ARG_OUT, tc]
|
25
|
+
self._arguments.size
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_inout_arg(tc, val, nm='')
|
29
|
+
self._arguments << [nm, CORBA::ARG_INOUT, tc, val]
|
30
|
+
self._arguments.size
|
31
|
+
end
|
32
|
+
|
33
|
+
def arguments
|
34
|
+
self._arguments
|
35
|
+
end
|
36
|
+
|
37
|
+
def arguments=(*args)
|
38
|
+
if args.size == 1
|
39
|
+
raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? {|a| ::Array === a }
|
40
|
+
args = args.first
|
41
|
+
else
|
42
|
+
raise ArgumentError, 'invalid argument list' unless args.all? {|a| ::Array === a }
|
43
|
+
end
|
44
|
+
# clear current arguments
|
45
|
+
self._arguments.clear
|
46
|
+
# add new arguments
|
47
|
+
args.each do |nm, flag, tc, val|
|
48
|
+
case flag
|
49
|
+
when CORBA::ARG_IN
|
50
|
+
self.add_in_arg(tc, val, nm)
|
51
|
+
when CORBA::ARG_OUT
|
52
|
+
self.add_out_arg(tc, nm)
|
53
|
+
when CORBA::ARG_INOUT
|
54
|
+
self.add_inout_arg(tc, val, nm)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def exceptions
|
60
|
+
self._exceptions
|
61
|
+
end
|
62
|
+
|
63
|
+
def exceptions=(exl)
|
64
|
+
self._exceptions.clear
|
65
|
+
begin
|
66
|
+
self._exceptions.concat(exl)
|
67
|
+
rescue
|
68
|
+
raise CORBA::BAD_PARAM.new(0, CORBA::COMPLETED_NO)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def set_return_type(tc)
|
73
|
+
@_rettc = tc
|
74
|
+
end
|
75
|
+
|
76
|
+
def return_value
|
77
|
+
return nil if @_rettc.nil? || @_rettc.kind == CORBA::TK_VOID || @_rettc.kind == CORBA::TK_NULL
|
78
|
+
self._return_value(@_rettc)
|
79
|
+
end
|
80
|
+
|
81
|
+
def invoke
|
82
|
+
self._invoke({
|
83
|
+
:arg_list => self._arguments,
|
84
|
+
:result_type => @_rettc,
|
85
|
+
:exc_list => self._exceptions
|
86
|
+
})
|
87
|
+
end
|
88
|
+
|
89
|
+
def send_oneway
|
90
|
+
self._send_oneway(self._arguments)
|
91
|
+
end
|
92
|
+
|
93
|
+
def send_deferred
|
94
|
+
self._send_deferred({
|
95
|
+
:arg_list => self._arguments,
|
96
|
+
:result_type => @_rettc,
|
97
|
+
:exc_list => self._exceptions
|
98
|
+
})
|
99
|
+
end
|
100
|
+
|
101
|
+
def poll_response
|
102
|
+
begin
|
103
|
+
ret = self._poll_response
|
104
|
+
rescue ::NativeException
|
105
|
+
CORBA::Exception.native2r($!)
|
106
|
+
end
|
107
|
+
@_args = self._get_arguments(@_args || []) if ret
|
108
|
+
ret
|
109
|
+
end
|
110
|
+
|
111
|
+
def get_response
|
112
|
+
begin
|
113
|
+
ret = self._get_response
|
114
|
+
rescue ::NativeException
|
115
|
+
CORBA::Exception.native2r($!)
|
116
|
+
end
|
117
|
+
@_args = self._get_arguments(@_args || [])
|
118
|
+
ret
|
119
|
+
end
|
120
|
+
|
121
|
+
protected
|
122
|
+
|
123
|
+
def _arguments
|
124
|
+
@_args ||= []
|
125
|
+
end
|
126
|
+
|
127
|
+
def _exceptions
|
128
|
+
@_excl ||= []
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
end # CORBA
|
134
|
+
end # R2CORBA
|
@@ -0,0 +1,129 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Streams.rb - C++/TAO Definition of CORBA CDR Streams
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
|
14
|
+
module R2CORBA
|
15
|
+
module CORBA
|
16
|
+
module Portable
|
17
|
+
module InputStream
|
18
|
+
def read_member(tc)
|
19
|
+
tc = tc.resolved_tc # takes care of recursive typecodes
|
20
|
+
v = case tc.kind
|
21
|
+
when TK_ANY
|
22
|
+
read_any()
|
23
|
+
when TK_BOOLEAN
|
24
|
+
read_boolean()
|
25
|
+
when TK_SHORT
|
26
|
+
read_short()
|
27
|
+
when TK_LONG
|
28
|
+
read_long()
|
29
|
+
when TK_USHORT
|
30
|
+
read_ushort()
|
31
|
+
when TK_WCHAR
|
32
|
+
read_wchar()
|
33
|
+
when TK_ULONG
|
34
|
+
read_ulong()
|
35
|
+
when TK_LONGLONG
|
36
|
+
read_longlong()
|
37
|
+
when TK_ULONGLONG
|
38
|
+
read_ulonglong()
|
39
|
+
when TK_OCTET
|
40
|
+
read_octet()
|
41
|
+
when TK_FLOAT
|
42
|
+
read_float()
|
43
|
+
when TK_DOUBLE
|
44
|
+
read_double()
|
45
|
+
when TK_LONGDOUBLE
|
46
|
+
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
|
47
|
+
when TK_FIXED
|
48
|
+
read_fixed()
|
49
|
+
when TK_CHAR
|
50
|
+
read_char()
|
51
|
+
when TK_STRING
|
52
|
+
read_string()
|
53
|
+
when TK_WSTRING
|
54
|
+
read_wstring()
|
55
|
+
when TK_OBJREF
|
56
|
+
read_Object()
|
57
|
+
when TK_TYPECODE
|
58
|
+
read_TypeCode()
|
59
|
+
when TK_ARRAY, TK_SEQUENCE,
|
60
|
+
TK_ENUM, TK_STRUCT, TK_EXCEPT, TK_UNION,
|
61
|
+
TK_PRINCIPAL
|
62
|
+
read_construct(tc)
|
63
|
+
when TK_ABSTRACT_INTERFACE
|
64
|
+
read_Abstract()
|
65
|
+
when TK_VALUE, TK_VALUE_BOX, TK_EVENT
|
66
|
+
read_Value()
|
67
|
+
## TODO: TK_NATIVE
|
68
|
+
end
|
69
|
+
v
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
module OutputStream
|
74
|
+
def write_member(tc, value)
|
75
|
+
tc = tc.resolved_tc # takes care of recursive typecodes
|
76
|
+
case tc.kind
|
77
|
+
when TK_ANY
|
78
|
+
write_any(value)
|
79
|
+
when TK_BOOLEAN
|
80
|
+
write_boolean(value)
|
81
|
+
when TK_SHORT
|
82
|
+
write_short(value)
|
83
|
+
when TK_LONG
|
84
|
+
write_long(value)
|
85
|
+
when TK_USHORT
|
86
|
+
write_ushort(value)
|
87
|
+
when TK_WCHAR
|
88
|
+
write_wchar(value)
|
89
|
+
when TK_ULONG
|
90
|
+
write_ulong(value)
|
91
|
+
when TK_LONGLONG
|
92
|
+
write_longlong(value)
|
93
|
+
when TK_ULONGLONG
|
94
|
+
write_ulonglong(value)
|
95
|
+
when TK_OCTET
|
96
|
+
write_octet(value)
|
97
|
+
when TK_FLOAT
|
98
|
+
write_float(value)
|
99
|
+
when TK_DOUBLE
|
100
|
+
write_double(value)
|
101
|
+
when TK_LONGDOUBLE
|
102
|
+
raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
|
103
|
+
when TK_FIXED
|
104
|
+
write_fixed(value)
|
105
|
+
when TK_CHAR
|
106
|
+
write_char(value)
|
107
|
+
when TK_STRING
|
108
|
+
write_string(value)
|
109
|
+
when TK_WSTRING
|
110
|
+
write_wstring(value)
|
111
|
+
when TK_OBJREF
|
112
|
+
write_Object(value)
|
113
|
+
when TK_TYPECODE
|
114
|
+
write_TypeCode(value)
|
115
|
+
when TK_ARRAY, TK_SEQUENCE,
|
116
|
+
TK_ENUM, TK_STRUCT, TK_EXCEPT, TK_UNION,
|
117
|
+
TK_PRINCIPAL
|
118
|
+
write_construct(value, tc)
|
119
|
+
when TK_ABSTRACT_INTERFACE
|
120
|
+
write_Abstract(value)
|
121
|
+
when TK_VALUE, TK_VALUE_BOX, TK_EVENT
|
122
|
+
write_Value(value)
|
123
|
+
## TODO: TK_NATIVE
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Stub.rb - C++/TAO CORBA Stub definitions
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
module R2CORBA
|
14
|
+
module CORBA
|
15
|
+
module Stub
|
16
|
+
include R2CORBA::CORBA::Portable::Stub
|
17
|
+
end # Stub
|
18
|
+
end # CORBA
|
19
|
+
end # R2CORBA
|
@@ -0,0 +1,441 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# Typecode.rb - C++/TAO specific CORBA TypeCode definitions
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
|
14
|
+
module R2CORBA
|
15
|
+
module CORBA
|
16
|
+
class TypeCode
|
17
|
+
|
18
|
+
def kind
|
19
|
+
begin
|
20
|
+
self.tc_.kind
|
21
|
+
rescue ::NativeException
|
22
|
+
CORBA::Exception.native2r($!)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def member_label(index)
|
27
|
+
begin
|
28
|
+
self.tc_.member_label(index.to_i)
|
29
|
+
rescue ::NativeException
|
30
|
+
CORBA::Exception.native2r($!)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class Recursive < CORBA::TypeCode
|
35
|
+
|
36
|
+
def initialize(id)
|
37
|
+
begin
|
38
|
+
@tc_ = CORBA::Native::TypeCode.create_recursive_tc(id)
|
39
|
+
rescue ::NativeException
|
40
|
+
CORBA::Exception.native2r($!)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end # Recursive
|
45
|
+
|
46
|
+
class String < CORBA::TypeCode
|
47
|
+
|
48
|
+
def initialize(*args)
|
49
|
+
if CORBA::Native::TypeCode === args.first
|
50
|
+
@tc_ = args.first
|
51
|
+
else
|
52
|
+
begin
|
53
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_STRING, args.shift.to_i)
|
54
|
+
rescue ::NativeException
|
55
|
+
CORBA::Exception.native2r($!)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end # String
|
61
|
+
|
62
|
+
class WString < CORBA::TypeCode
|
63
|
+
|
64
|
+
def initialize(*args)
|
65
|
+
if CORBA::Native::TypeCode === args.first
|
66
|
+
@tc_ = args.first
|
67
|
+
else
|
68
|
+
begin
|
69
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_WSTRING, args.shift.to_i)
|
70
|
+
rescue ::NativeException
|
71
|
+
CORBA::Exception.native2r($!)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end # WString
|
77
|
+
|
78
|
+
class Fixed < CORBA::TypeCode
|
79
|
+
|
80
|
+
def initialize(*args)
|
81
|
+
if CORBA::Native::TypeCode === args.first
|
82
|
+
@tc_ = args.first
|
83
|
+
else
|
84
|
+
digits, scale = args
|
85
|
+
begin
|
86
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_FIXED, digits.to_i, scale.to_i)
|
87
|
+
rescue ::NativeException
|
88
|
+
CORBA::Exception.native2r($!)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end # Fixed
|
94
|
+
|
95
|
+
class Sequence < CORBA::TypeCode
|
96
|
+
|
97
|
+
def initialize(*args)
|
98
|
+
if CORBA::Native::TypeCode === args.first
|
99
|
+
@tc_ = args.first
|
100
|
+
else
|
101
|
+
element_tc, bound = args
|
102
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless element_tc.is_a?(CORBA::TypeCode)
|
103
|
+
begin
|
104
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_SEQUENCE, bound.to_i, element_tc.tc_)
|
105
|
+
rescue ::NativeException
|
106
|
+
CORBA::Exception.native2r($!)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
class Array < CORBA::TypeCode
|
114
|
+
|
115
|
+
def initialize(*args)
|
116
|
+
if CORBA::Native::TypeCode === args.first
|
117
|
+
@tc_ = args.first
|
118
|
+
else
|
119
|
+
content_tc = args.shift
|
120
|
+
length = args
|
121
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless content_tc.is_a?(CORBA::TypeCode)
|
122
|
+
if length.size>1
|
123
|
+
this_len = length.shift
|
124
|
+
content_tc = self.class.new(content_tc, *length)
|
125
|
+
else
|
126
|
+
this_len = length.first
|
127
|
+
end
|
128
|
+
begin
|
129
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_ARRAY, this_len.to_i, content_tc.tc_)
|
130
|
+
rescue ::NativeException
|
131
|
+
CORBA::Exception.native2r($!)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
end # Array
|
137
|
+
|
138
|
+
class IdentifiedTypeCode < CORBA::TypeCode
|
139
|
+
|
140
|
+
def initialize(id)
|
141
|
+
CORBA::TypeCode.register_id_type(id.to_s, self)
|
142
|
+
end
|
143
|
+
|
144
|
+
end # IdentifiedTypeCode
|
145
|
+
|
146
|
+
class Alias < IdentifiedTypeCode
|
147
|
+
|
148
|
+
def initialize(*args)
|
149
|
+
if CORBA::Native::TypeCode === args.first
|
150
|
+
@tc_ = args.first
|
151
|
+
@type = nil
|
152
|
+
super(@tc_.id)
|
153
|
+
else
|
154
|
+
id, name, orig_tc, type = args
|
155
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless orig_tc.is_a?(CORBA::TypeCode)
|
156
|
+
begin
|
157
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_ALIAS, id.to_s, name.to_s, orig_tc.tc_)
|
158
|
+
rescue ::NativeException
|
159
|
+
CORBA::Exception.native2r($!)
|
160
|
+
end
|
161
|
+
@type = type
|
162
|
+
super(id)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
end # Alias
|
167
|
+
|
168
|
+
class Valuetype < IdentifiedTypeCode
|
169
|
+
|
170
|
+
def initialize(*args)
|
171
|
+
if CORBA::Native::TypeCode === args.first
|
172
|
+
@tc_ = args.first
|
173
|
+
@type = nil
|
174
|
+
@members = []
|
175
|
+
@tc_.member_count.times do |i|
|
176
|
+
@members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
|
177
|
+
end
|
178
|
+
super(id)
|
179
|
+
else
|
180
|
+
id, name, modifier, base, members_, type_ = args
|
181
|
+
raise ArgumentError, 'expected CORBA::Typecode' unless base.nil? || base.is_a?(CORBA::TypeCode)
|
182
|
+
raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
|
183
|
+
if type_.nil? && !members_.is_a?(::Array)
|
184
|
+
type_ = members_
|
185
|
+
members_ = []
|
186
|
+
end
|
187
|
+
@type = type_
|
188
|
+
@members = []
|
189
|
+
members_.each { |n, tc, access| add_member(n, tc, access) }
|
190
|
+
n_members = @members.collect do |n, tc, access|
|
191
|
+
[n.to_s, tc.tc_, access == :public ? CORBA::PUBLIC_MEMBER : CORBA::PRIVATE_MEMBER]
|
192
|
+
end
|
193
|
+
@tc_ = _create_tc(id, name, modifier, base, n_members)
|
194
|
+
super(id)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
protected
|
199
|
+
|
200
|
+
def _create_tc(id,name,modifier,base,members)
|
201
|
+
begin
|
202
|
+
CORBA::Native::TypeCode.create_tc(TK_VALUE, id.to_s, name.to_s,
|
203
|
+
CORBA::VT_MODIFIERS[modifier],
|
204
|
+
base.nil? ? nil : base.tc_,
|
205
|
+
members)
|
206
|
+
rescue ::NativeException
|
207
|
+
CORBA::Exception.native2r($!)
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
end # Valuetype
|
212
|
+
|
213
|
+
class Eventtype < Valuetype
|
214
|
+
|
215
|
+
protected
|
216
|
+
|
217
|
+
def _create_tc(id,name,modifier,base,members)
|
218
|
+
begin
|
219
|
+
CORBA::Native::TypeCode.create_tc(TK_EVENT, id.to_s, name.to_s,
|
220
|
+
CORBA::VT_MODIFIERS[modifier],
|
221
|
+
base.nil? ? nil : base.tc_,
|
222
|
+
members)
|
223
|
+
rescue ::NativeException
|
224
|
+
CORBA::Exception.native2r($!)
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
end # Eventtype
|
229
|
+
|
230
|
+
class Valuebox < IdentifiedTypeCode
|
231
|
+
|
232
|
+
def initialize(*args)
|
233
|
+
if CORBA::Native::TypeCode === args.first
|
234
|
+
@tc_ = args.first
|
235
|
+
@type = nil
|
236
|
+
super(@tc_.id)
|
237
|
+
else
|
238
|
+
id, name, boxed_tc, type = args
|
239
|
+
raise ArgumentError, 'expected CORBA::TypeCode' unless boxed_tc.is_a?(CORBA::TypeCode)
|
240
|
+
begin
|
241
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_VALUE_BOX, id.to_s, name.to_s, boxed_tc.tc_)
|
242
|
+
rescue ::NativeException
|
243
|
+
CORBA::Exception.native2r($!)
|
244
|
+
end
|
245
|
+
@type = type
|
246
|
+
super(id)
|
247
|
+
## autoregister
|
248
|
+
CORBA::ORB._check_value_factory(@type::Factory) if @type < CORBA::Portable::BoxedValueBase
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
end # Valuebox
|
253
|
+
|
254
|
+
class ObjectRef < IdentifiedTypeCode
|
255
|
+
|
256
|
+
def initialize(*args)
|
257
|
+
if CORBA::Native::TypeCode === args.first
|
258
|
+
@tc_ = args.first
|
259
|
+
@type = CORBA::Object
|
260
|
+
super(@tc_.id)
|
261
|
+
else
|
262
|
+
id, name, type = args
|
263
|
+
begin
|
264
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_OBJREF, id.to_s, name.to_s)
|
265
|
+
rescue ::NativeException
|
266
|
+
CORBA::Exception.native2r($!)
|
267
|
+
end
|
268
|
+
@type = type
|
269
|
+
super(id)
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
end # ObjectRef
|
274
|
+
|
275
|
+
class AbstractInterface < IdentifiedTypeCode
|
276
|
+
|
277
|
+
def initialize(*args)
|
278
|
+
if CORBA::Native::TypeCode === args.first
|
279
|
+
@tc_ = args.first
|
280
|
+
@type = CORBA::AbstractBase
|
281
|
+
super(@tc_.id)
|
282
|
+
else
|
283
|
+
id, name, type = args
|
284
|
+
begin
|
285
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_ABSTRACT_INTERFACE, id.to_s, name.to_s)
|
286
|
+
rescue ::NativeException
|
287
|
+
CORBA::Exception.native2r($!)
|
288
|
+
end
|
289
|
+
@type = type
|
290
|
+
super(id)
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
end # AbstractInterface
|
295
|
+
|
296
|
+
class Struct < IdentifiedTypeCode
|
297
|
+
|
298
|
+
def initialize(*args)
|
299
|
+
if CORBA::Native::TypeCode === args.first
|
300
|
+
@tc_ = args.first
|
301
|
+
@type = nil
|
302
|
+
@members = []
|
303
|
+
@tc_.member_count.times do |i|
|
304
|
+
@members << [@tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
|
305
|
+
end
|
306
|
+
super(id)
|
307
|
+
else
|
308
|
+
id, name, members_, type_ = args
|
309
|
+
raise ArgumentError, 'expected members Array' unless members_.is_a?(::Array) || type_.nil?
|
310
|
+
if type_.nil? && !members_.is_a?(::Array)
|
311
|
+
type_ = members_
|
312
|
+
members_ = []
|
313
|
+
end
|
314
|
+
@type = type_
|
315
|
+
@members = []
|
316
|
+
members_.each { |n, tc| add_member(n, tc) }
|
317
|
+
n_members = @members.collect {|n, tc| [n.to_s(), tc.tc_] }
|
318
|
+
@tc_ = _create_tc(id, name, n_members)
|
319
|
+
super(id)
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
protected
|
324
|
+
|
325
|
+
def _create_tc(id,name,members)
|
326
|
+
begin
|
327
|
+
CORBA::Native::TypeCode.create_tc(TK_STRUCT, id.to_s, name.to_s, members)
|
328
|
+
rescue ::NativeException
|
329
|
+
CORBA::Exception.native2r($!)
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
end # Struct
|
334
|
+
|
335
|
+
class Except < Struct
|
336
|
+
|
337
|
+
protected
|
338
|
+
|
339
|
+
def _create_tc(id,name,members)
|
340
|
+
begin
|
341
|
+
CORBA::Native::TypeCode.create_tc(TK_EXCEPT, id.to_s, name.to_s, members)
|
342
|
+
rescue ::NativeException
|
343
|
+
CORBA::Exception.native2r($!)
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
end # Except
|
348
|
+
|
349
|
+
class Union < IdentifiedTypeCode
|
350
|
+
|
351
|
+
def initialize(*args)
|
352
|
+
if CORBA::Native::TypeCode === args.first
|
353
|
+
@tc_ = args.first
|
354
|
+
@type = nil
|
355
|
+
@switchtype = TypeCode.from_native(@tc_.discriminator_type)
|
356
|
+
@labels = {}
|
357
|
+
@members = []
|
358
|
+
def_inx = @tc_.default_index
|
359
|
+
@tc_.member_count.times do |i|
|
360
|
+
if def_inx < 0 || def_inx != i
|
361
|
+
ml_ = @tc_.member_label(i)
|
362
|
+
else
|
363
|
+
ml_ = :default
|
364
|
+
end
|
365
|
+
@labels[ml] = i
|
366
|
+
@members << [ml, @tc_.member_name(i), TypeCode.from_native(@tc_.member_type(i))]
|
367
|
+
end
|
368
|
+
super(id)
|
369
|
+
else
|
370
|
+
id, name, switchtype_, members_, type_, implicit_default_ = args
|
371
|
+
raise ::CORBA::BAD_PARAM unless members_.is_a? ::Array
|
372
|
+
raise ::CORBA::BAD_PARAM unless switchtype_.is_a?(CORBA::TypeCode)
|
373
|
+
@type = type_
|
374
|
+
@implicit_default = implicit_default_
|
375
|
+
@switchtype = switchtype_.resolved_tc
|
376
|
+
@labels = {}
|
377
|
+
@members = []
|
378
|
+
members_.each { |mlabel, mname, mtc|
|
379
|
+
add_member(mlabel, mname, mtc)
|
380
|
+
}
|
381
|
+
@id = id
|
382
|
+
@name = name
|
383
|
+
n_members = @members.collect do |ml, mn, mtc|
|
384
|
+
[ml, mn.to_s, mtc.tc_]
|
385
|
+
end
|
386
|
+
@tc = _create_tc(@id, @name, @switchtype, n_members)
|
387
|
+
super(id)
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
def tc_
|
392
|
+
@tc
|
393
|
+
end
|
394
|
+
|
395
|
+
protected
|
396
|
+
|
397
|
+
def _create_tc(id, name, disctc, members)
|
398
|
+
begin
|
399
|
+
CORBA::Native::TypeCode.create_tc(TK_UNION, id.to_s, name.to_s, disctc.tc_, members)
|
400
|
+
rescue ::NativeException
|
401
|
+
CORBA::Exception.native2r($!)
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
end # Union
|
406
|
+
|
407
|
+
class Enum < IdentifiedTypeCode
|
408
|
+
|
409
|
+
def initialize(*args)
|
410
|
+
if CORBA::Native::TypeCode === args.first
|
411
|
+
@tc_ = args.first
|
412
|
+
@range = (0..@tc_.member_count).freeze
|
413
|
+
@members = @range.to_a.collect {|i| @tc_.member_name(i) }
|
414
|
+
super(@tc_.id)
|
415
|
+
else
|
416
|
+
id, name, members_ = args
|
417
|
+
raise CORBA::BAD_PARAM unless members_.is_a? ::Array
|
418
|
+
@members = members_.collect {|m| m.to_s}
|
419
|
+
@range = (0...@members.size).freeze
|
420
|
+
begin
|
421
|
+
@tc_ = CORBA::Native::TypeCode.create_tc(TK_ENUM, id.to_s, name.to_s, @members)
|
422
|
+
rescue ::NativeException
|
423
|
+
CORBA::Exception.native2r($!)
|
424
|
+
end
|
425
|
+
super(id)
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
end # Enum
|
430
|
+
|
431
|
+
def TypeCode.get_primitive_tc(kind)
|
432
|
+
TypeCode._wrap_native(CORBA::Native::TypeCode.get_primitive_tc(kind.to_i))
|
433
|
+
end
|
434
|
+
|
435
|
+
# final initialization
|
436
|
+
self._init()
|
437
|
+
|
438
|
+
end # TypeCode
|
439
|
+
|
440
|
+
end ## module CORBA
|
441
|
+
end ## module R2CORBA
|