r2corba 1.6.1-x64-mingw-ucrt
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGES +173 -0
- data/LICENSE +59 -0
- data/README.rdoc +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/ext/.keep +0 -0
- data/lib/corba/cbase/IORMap.rb +32 -0
- data/lib/corba/cbase/ORB.rb +239 -0
- data/lib/corba/cbase/Request.rb +133 -0
- data/lib/corba/cbase/Streams.rb +128 -0
- data/lib/corba/cbase/Stub.rb +18 -0
- data/lib/corba/cbase/Typecode.rb +440 -0
- data/lib/corba/cbase/Values.rb +130 -0
- data/lib/corba/cbase/exception.rb +67 -0
- data/lib/corba/cbase/poa.rb +22 -0
- data/lib/corba/cbase/policies.rb +77 -0
- data/lib/corba/cbase/post_require.rb +13 -0
- data/lib/corba/cbase/require.rb +36 -0
- data/lib/corba/cmds/base.rb +84 -0
- data/lib/corba/cmds/test.rb +29 -0
- data/lib/corba/common/Any.rb +91 -0
- data/lib/corba/common/IDL.rb +100 -0
- data/lib/corba/common/ORB.rb +367 -0
- data/lib/corba/common/Object.rb +211 -0
- data/lib/corba/common/Request.rb +19 -0
- data/lib/corba/common/Servant.rb +107 -0
- data/lib/corba/common/Struct.rb +21 -0
- data/lib/corba/common/Stub.rb +78 -0
- data/lib/corba/common/Typecode.rb +1147 -0
- data/lib/corba/common/Union.rb +60 -0
- data/lib/corba/common/Values.rb +92 -0
- data/lib/corba/common/const.rb +21 -0
- data/lib/corba/common/exception.rb +68 -0
- data/lib/corba/common/require.rb +34 -0
- data/lib/corba/common/version.rb +21 -0
- data/lib/corba/idl/BiDirPolicyC.rb +62 -0
- data/lib/corba/idl/CosNamingC.rb +460 -0
- data/lib/corba/idl/CosNamingS.rb +308 -0
- data/lib/corba/idl/IDL.rb +20 -0
- data/lib/corba/idl/IORTable.pidl +61 -0
- data/lib/corba/idl/IORTableC.rb +116 -0
- data/lib/corba/idl/MessagingC.rb +903 -0
- data/lib/corba/idl/POAC.rb +929 -0
- data/lib/corba/idl/TAO_Ext.pidl +45 -0
- data/lib/corba/idl/TAO_ExtC.rb +178 -0
- data/lib/corba/idl/r2c_orb.rb +571 -0
- data/lib/corba/idl/require.rb +19 -0
- data/lib/corba/jbase/Any.rb +274 -0
- data/lib/corba/jbase/IORMap.rb +35 -0
- data/lib/corba/jbase/ORB.rb +111 -0
- data/lib/corba/jbase/Object.rb +98 -0
- data/lib/corba/jbase/Request.rb +225 -0
- data/lib/corba/jbase/Servant.rb +247 -0
- data/lib/corba/jbase/ServerRequest.rb +127 -0
- data/lib/corba/jbase/Streams.rb +734 -0
- data/lib/corba/jbase/Stub.rb +37 -0
- data/lib/corba/jbase/Typecode.rb +520 -0
- data/lib/corba/jbase/Values.rb +174 -0
- data/lib/corba/jbase/exception.rb +106 -0
- data/lib/corba/jbase/poa.rb +228 -0
- data/lib/corba/jbase/policies.rb +299 -0
- data/lib/corba/jbase/post_require.rb +13 -0
- data/lib/corba/jbase/require.rb +92 -0
- data/lib/corba/naming.rb +13 -0
- data/lib/corba/naming_service.rb +14 -0
- data/lib/corba/poa.rb +14 -0
- data/lib/corba/policies.rb +17 -0
- data/lib/corba/require.rb +16 -0
- data/lib/corba/svcs/ins/cos_naming.rb +432 -0
- data/lib/corba/svcs/ins/ins.rb +525 -0
- data/lib/corba/svcs/ins/naming_service.rb +118 -0
- data/lib/corba.rb +15 -0
- data/lib/ridlbe/ruby/config.rb +340 -0
- data/lib/ridlbe/ruby/orb.pidlc +0 -0
- data/lib/ridlbe/ruby/require.rb +15 -0
- data/lib/ridlbe/ruby/walker.rb +1605 -0
- data/mkrf_conf_bingem.rb +149 -0
- data/rakelib/bin.rake +79 -0
- data/rakelib/bin.rb +145 -0
- data/rakelib/build.rake +87 -0
- data/rakelib/config.rake +51 -0
- data/rakelib/config.rb +542 -0
- data/rakelib/ext.rake +183 -0
- data/rakelib/ext.rb +277 -0
- data/rakelib/ext_r2tao.rb +208 -0
- data/rakelib/gem.rake +251 -0
- data/rakelib/gem.rb +145 -0
- data/rakelib/package.rake +25 -0
- data/rakelib/test.rake +22 -0
- data/test/BiDirectional/Test.idl +33 -0
- data/test/BiDirectional/client.rb +131 -0
- data/test/BiDirectional/run_test.rb +67 -0
- data/test/BiDirectional/server.rb +167 -0
- data/test/CORBA_Services/Naming/BindingIterator/Test.idl +26 -0
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +120 -0
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +81 -0
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +108 -0
- data/test/CORBA_Services/Naming/Corbaname/Test.idl +26 -0
- data/test/CORBA_Services/Naming/Corbaname/client.rb +84 -0
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +87 -0
- data/test/CORBA_Services/Naming/Corbaname/server.rb +134 -0
- data/test/CORBA_Services/Naming/Simple/Test.idl +26 -0
- data/test/CORBA_Services/Naming/Simple/client.rb +83 -0
- data/test/CORBA_Services/Naming/Simple/run_test.rb +81 -0
- data/test/CORBA_Services/Naming/Simple/server.rb +108 -0
- data/test/Collocation/Diamond.idl +38 -0
- data/test/Collocation/run_test.rb +51 -0
- data/test/Collocation/test.rb +201 -0
- data/test/Connect_Timeout/Test.idl +26 -0
- data/test/Connect_Timeout/client.rb +109 -0
- data/test/Connect_Timeout/run_test.rb +51 -0
- data/test/DII/Test.idl +26 -0
- data/test/DII/client.rb +114 -0
- data/test/DII/run_test.rb +68 -0
- data/test/DII/server.rb +94 -0
- data/test/DSI/Test.idl +26 -0
- data/test/DSI/client.rb +65 -0
- data/test/DSI/run_test.rb +68 -0
- data/test/DSI/server.rb +105 -0
- data/test/Exceptions/Test.idl +47 -0
- data/test/Exceptions/client.rb +117 -0
- data/test/Exceptions/run_test.rb +68 -0
- data/test/Exceptions/server.rb +130 -0
- data/test/Hello/Test.idl +26 -0
- data/test/Hello/client.rb +77 -0
- data/test/Hello/run_test.rb +70 -0
- data/test/Hello/server.rb +94 -0
- data/test/IDL_Test/Test.idl +116 -0
- data/test/IDL_Test/Test_inc.idl +17 -0
- data/test/IDL_Test/client.rb +103 -0
- data/test/IDL_Test/run_test.rb +68 -0
- data/test/IDL_Test/server.rb +103 -0
- data/test/IORMap/Test.idl +26 -0
- data/test/IORMap/client.rb +72 -0
- data/test/IORMap/run_test.rb +68 -0
- data/test/IORMap/server.rb +113 -0
- data/test/IORTable/Test.idl +26 -0
- data/test/IORTable/client.rb +74 -0
- data/test/IORTable/run_test.rb +68 -0
- data/test/IORTable/server.rb +129 -0
- data/test/Implicit_Conversion/Test.idl +30 -0
- data/test/Implicit_Conversion/client.rb +112 -0
- data/test/Implicit_Conversion/run_test.rb +68 -0
- data/test/Implicit_Conversion/server.rb +98 -0
- data/test/Multi_Threading/Multiple_ORB/Test.idl +26 -0
- data/test/Multi_Threading/Multiple_ORB/client.rb +81 -0
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +70 -0
- data/test/Multi_Threading/Multiple_ORB/server.rb +107 -0
- data/test/Multi_Threading/Simple/Test.idl +26 -0
- data/test/Multi_Threading/Simple/client.rb +92 -0
- data/test/Multi_Threading/Simple/run_test.rb +68 -0
- data/test/Multi_Threading/Simple/server.rb +117 -0
- data/test/Multi_Threading/Threads/Test.idl +27 -0
- data/test/Multi_Threading/Threads/client.rb +77 -0
- data/test/Multi_Threading/Threads/run_test.rb +75 -0
- data/test/Multi_Threading/Threads/server.rb +116 -0
- data/test/Multi_Threading/Threads/watchdog.rb +87 -0
- data/test/Multiple_Servant_Interfaces/Test.idl +33 -0
- data/test/Multiple_Servant_Interfaces/client.rb +69 -0
- data/test/Multiple_Servant_Interfaces/run_test.rb +68 -0
- data/test/Multiple_Servant_Interfaces/server.rb +101 -0
- data/test/Nil/Test.idl +26 -0
- data/test/Nil/run_test.rb +51 -0
- data/test/Nil/test.rb +80 -0
- data/test/OBV/AbstractInterface/client.rb +178 -0
- data/test/OBV/AbstractInterface/run_test.rb +68 -0
- data/test/OBV/AbstractInterface/server.rb +149 -0
- data/test/OBV/AbstractInterface/test.idl +52 -0
- data/test/OBV/Custom/OBV.idl +18 -0
- data/test/OBV/Custom/OBV_impl.rb +41 -0
- data/test/OBV/Custom/client.rb +85 -0
- data/test/OBV/Custom/run_test.rb +68 -0
- data/test/OBV/Custom/server.rb +99 -0
- data/test/OBV/Simple/OBV.idl +15 -0
- data/test/OBV/Simple/OBV_impl.rb +26 -0
- data/test/OBV/Simple/client.rb +85 -0
- data/test/OBV/Simple/run_test.rb +68 -0
- data/test/OBV/Simple/server.rb +99 -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 +85 -0
- data/test/OBV/Simple_Event/run_test.rb +68 -0
- data/test/OBV/Simple_Event/server.rb +99 -0
- data/test/OBV/Supports/client.rb +115 -0
- data/test/OBV/Supports/run_test.rb +68 -0
- data/test/OBV/Supports/server.rb +102 -0
- data/test/OBV/Supports/supports.idl +32 -0
- data/test/OBV/Supports/supports_impl.rb +59 -0
- data/test/OBV/Tree/client.rb +115 -0
- data/test/OBV/Tree/run_test.rb +68 -0
- data/test/OBV/Tree/server.rb +116 -0
- data/test/OBV/Tree/test.idl +31 -0
- data/test/OBV/Truncatable/Extra.idl +26 -0
- data/test/OBV/Truncatable/Truncatable.idl +105 -0
- data/test/OBV/Truncatable/Truncatable_impl.rb +85 -0
- data/test/OBV/Truncatable/client.rb +278 -0
- data/test/OBV/Truncatable/run_test.rb +68 -0
- data/test/OBV/Truncatable/server.rb +88 -0
- data/test/OBV/ValueBox/client.rb +497 -0
- data/test/OBV/ValueBox/run_test.rb +68 -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 +26 -0
- data/test/Object/client.rb +111 -0
- data/test/Object/run_test.rb +68 -0
- data/test/Object/server.rb +125 -0
- data/test/POA/Test.idl +27 -0
- data/test/POA/run_test.rb +51 -0
- data/test/POA/test.rb +111 -0
- data/test/Param_Test/Test.idl +182 -0
- data/test/Param_Test/client.rb +276 -0
- data/test/Param_Test/run_test.rb +68 -0
- data/test/Param_Test/server.rb +295 -0
- data/test/Performance/Simple/Test.idl +26 -0
- data/test/Performance/Simple/client.rb +89 -0
- data/test/Performance/Simple/run_test.rb +68 -0
- data/test/Performance/Simple/server.rb +94 -0
- data/test/Policies/Test.idl +26 -0
- data/test/Policies/run_test.rb +51 -0
- data/test/Policies/test.rb +142 -0
- data/test/Timeout/client.rb +206 -0
- data/test/Timeout/run_test.rb +68 -0
- data/test/Timeout/server.rb +108 -0
- data/test/Timeout/test.idl +18 -0
- data/test/lib/assert.rb +41 -0
- data/test/lib/test.rb +546 -0
- data/test/test_runner.rb +191 -0
- metadata +318 -0
@@ -0,0 +1,340 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# config.rb - IDL language mapping configuration for Ruby
|
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
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
module IDL
|
14
|
+
|
15
|
+
class StrOStream
|
16
|
+
def initialize()
|
17
|
+
@str = ''
|
18
|
+
end
|
19
|
+
|
20
|
+
def clear
|
21
|
+
@str = ''
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_s
|
25
|
+
@str
|
26
|
+
end
|
27
|
+
|
28
|
+
def <<(s)
|
29
|
+
@str << s
|
30
|
+
end
|
31
|
+
end # class StrOStream
|
32
|
+
|
33
|
+
class RIDL
|
34
|
+
private
|
35
|
+
def RIDL.merge_params(params)
|
36
|
+
opts = IDL::OPTIONS.dup
|
37
|
+
params.each do |k, v|
|
38
|
+
case opts[k]
|
39
|
+
when Array
|
40
|
+
opts[k] = opts[k] + (Array === v ? v : [v])
|
41
|
+
when Hash
|
42
|
+
opts[k] = opts[k].merge(v) if Hash === v
|
43
|
+
else
|
44
|
+
opts[k] = v
|
45
|
+
end
|
46
|
+
end
|
47
|
+
opts
|
48
|
+
end
|
49
|
+
|
50
|
+
def RIDL.parse0(src, params)
|
51
|
+
params = merge_params(params)
|
52
|
+
IDL.verbose_level = params[:verbose]
|
53
|
+
parser = ::IDL::Parser.new(params)
|
54
|
+
parser.parse(src)
|
55
|
+
s = ::IDL::StrOStream.new
|
56
|
+
s.clear
|
57
|
+
IDL::Ruby.process_input(parser, params, s)
|
58
|
+
s
|
59
|
+
end
|
60
|
+
|
61
|
+
def RIDL.parse(src, params)
|
62
|
+
s = parse0(src, params)
|
63
|
+
s.to_s
|
64
|
+
end
|
65
|
+
public
|
66
|
+
def RIDL.eval(src, params = {})
|
67
|
+
params[:idl_eval] = true
|
68
|
+
params[:expand_includes] = true
|
69
|
+
params[:client_stubs] = true if params[:client_stubs].nil?
|
70
|
+
params[:stubs_only] ||= false
|
71
|
+
s = parse0(src, params)
|
72
|
+
Kernel.eval(s.to_s, ::TOPLEVEL_BINDING)
|
73
|
+
s = nil
|
74
|
+
end
|
75
|
+
|
76
|
+
def RIDL.fparse(fname, params = {})
|
77
|
+
params[:client_stubs] = true if params[:client_stubs].nil?
|
78
|
+
params[:stubs_only] ||= false
|
79
|
+
f = File.open(fname, 'r')
|
80
|
+
self.parse(f, params)
|
81
|
+
ensure
|
82
|
+
f.close
|
83
|
+
end
|
84
|
+
|
85
|
+
def RIDL.feval(fname, params = {})
|
86
|
+
File.open(fname, 'r') { |io| self.eval(io, params) }
|
87
|
+
end
|
88
|
+
end # module RIDL
|
89
|
+
|
90
|
+
module Ruby
|
91
|
+
COPYRIGHT = "Copyright (c) 2007-#{Time.now.year} Remedy IT Expertise BV, The Netherlands".freeze
|
92
|
+
TITLE = 'RIDL Ruby backend'.freeze
|
93
|
+
VERSION = {
|
94
|
+
:major => 2,
|
95
|
+
:minor => 0,
|
96
|
+
:release => 1
|
97
|
+
}
|
98
|
+
|
99
|
+
## Configure Ruby backend
|
100
|
+
#
|
101
|
+
Backend.configure('ruby', File.dirname(__FILE__), TITLE, COPYRIGHT, VERSION) do |becfg|
|
102
|
+
|
103
|
+
# setup backend option handling
|
104
|
+
#
|
105
|
+
becfg.on_setup do |optlist, ridl_params|
|
106
|
+
# defaults
|
107
|
+
ridl_params[:stub_pfx] = 'C'
|
108
|
+
ridl_params[:srv_pfx] = 'S'
|
109
|
+
ridl_params[:stubs_only] = false
|
110
|
+
ridl_params[:client_stubs] = true
|
111
|
+
ridl_params[:expand_includes] = false
|
112
|
+
ridl_params[:libinit] = true
|
113
|
+
ridl_params[:class_interfaces] = []
|
114
|
+
|
115
|
+
# ruby specific option switches
|
116
|
+
|
117
|
+
unless ridl_params[:preprocess] # same switch defined for IDL preprocessing mode
|
118
|
+
optlist.for_switch '--output=FILE', :type => String,
|
119
|
+
:description => ['Specifies filename to generate output in.',
|
120
|
+
'Default: File.basename(idlfile, \'.idl\')+<postfix>+<ext>'] do |swcfg|
|
121
|
+
swcfg.on_exec do |arg, params|
|
122
|
+
params[:output] = arg
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
optlist.for_switch '-o PATH', :type => String,
|
129
|
+
:description => ['Specifies output directory.',
|
130
|
+
'Default: ./'] do |swcfg|
|
131
|
+
swcfg.on_exec do |arg, params|
|
132
|
+
params[:outputdir] = arg
|
133
|
+
end
|
134
|
+
end
|
135
|
+
optlist.for_switch '--stubs-only',
|
136
|
+
:description => ['Only generate client stubs, no servant code.',
|
137
|
+
'Default: off'] do |swcfg|
|
138
|
+
swcfg.on_exec do |arg, params|
|
139
|
+
params[:client_stubs] = true
|
140
|
+
params[:stubs_only] = true
|
141
|
+
end
|
142
|
+
end
|
143
|
+
optlist.for_switch '--no-stubs',
|
144
|
+
:description => ['Do not generate client stubs, only servant code.',
|
145
|
+
'Default: off'] do |swcfg|
|
146
|
+
swcfg.on_exec do |arg, params|
|
147
|
+
params[:client_stubs] = false
|
148
|
+
params[:stubs_only] = false
|
149
|
+
end
|
150
|
+
end
|
151
|
+
optlist.for_switch '--stub-pfx=POSTFIX', :type => String,
|
152
|
+
:description => ['Specifies postfix for generated client stub source filename.',
|
153
|
+
'Filenames are formed like: <idl basename><postfix>.<language extension>',
|
154
|
+
"Default: #{ridl_params[:stub_pfx]}"] do |swcfg|
|
155
|
+
swcfg.on_exec do |arg, params|
|
156
|
+
params[:stub_pfx] = arg
|
157
|
+
end
|
158
|
+
end
|
159
|
+
optlist.for_switch '--skel-pfx=POSTFIX', :type => String,
|
160
|
+
:description => ['Specifies postfix for generated servant skeleton source filename.',
|
161
|
+
'Filenames are formed like: <idl basename><postfix>.<language extension>',
|
162
|
+
"Default: #{ridl_params[:srv_pfx]}"] do |swcfg|
|
163
|
+
swcfg.on_exec do |arg, params|
|
164
|
+
params[:srv_pfx] = arg
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
optlist.for_switch '--skel-directory=PATH', :type => String,
|
169
|
+
:description => ['Specifies output directory for servant files.',
|
170
|
+
'Default: outputdir or ./'] do |swcfg|
|
171
|
+
swcfg.on_exec do |arg, params|
|
172
|
+
params[:skel_outputdir] = arg
|
173
|
+
end
|
174
|
+
end
|
175
|
+
optlist.for_switch '--expand-includes',
|
176
|
+
:description => ['Generate code for included IDL inline.',
|
177
|
+
'Default: off'] do |swcfg|
|
178
|
+
swcfg.on_exec do |arg, params|
|
179
|
+
params[:expand_includes] = true
|
180
|
+
end
|
181
|
+
end
|
182
|
+
optlist.for_switch '--no-libinit',
|
183
|
+
:description => ['Do not generate library initialization code as preamble.',
|
184
|
+
'Default: on'] do |swcfg|
|
185
|
+
swcfg.on_exec do |arg, params|
|
186
|
+
params[:libinit] = false
|
187
|
+
end
|
188
|
+
end
|
189
|
+
optlist.for_switch '--interface-as-class=INTF', :type => String,
|
190
|
+
:description => ['Generate a Ruby class for interface INTF instead of a module in client stubs.',
|
191
|
+
'Default: module'] do |swcfg|
|
192
|
+
swcfg.on_exec do |arg, params|
|
193
|
+
params[:class_interfaces] << arg
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
# process input / generate code
|
199
|
+
# arguments:
|
200
|
+
# in parser - parser object with full AST from parsed source
|
201
|
+
# in options - initialized option hash
|
202
|
+
#
|
203
|
+
becfg.on_process_input do |parser, options|
|
204
|
+
IDL::Ruby.process_input(parser, options)
|
205
|
+
end # becfg.on_process_input
|
206
|
+
|
207
|
+
end # Backend.configure
|
208
|
+
|
209
|
+
def self.process_input(parser, options, outstream = nil)
|
210
|
+
# has a user defined output filename been set
|
211
|
+
fixed_output = !options[:output].nil?
|
212
|
+
|
213
|
+
# determine output file path for client stub code
|
214
|
+
unless fixed_output || options[:idlfile].nil?
|
215
|
+
options[:output] = options[:outputdir] + '/' + File.basename(options[:idlfile], '.idl') + options[:stub_pfx] + '.rb'
|
216
|
+
end
|
217
|
+
# generate client stubs if requested
|
218
|
+
if options[:client_stubs]
|
219
|
+
# open output file
|
220
|
+
co = outstream || (if options[:output].nil?
|
221
|
+
GenFile.new(nil, :output_file => $stdout)
|
222
|
+
else
|
223
|
+
GenFile.new(options[:output])
|
224
|
+
end)
|
225
|
+
begin
|
226
|
+
# process StubWriter
|
227
|
+
parser.visit_nodes(::IDL::RubyStubWriter.new(co, options))
|
228
|
+
rescue => ex
|
229
|
+
IDL.log(0, ex)
|
230
|
+
IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
|
231
|
+
exit 1
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
# determin output file path for servant code and open file
|
236
|
+
unless options[:stubs_only]
|
237
|
+
so = outstream || (unless fixed_output || options[:idlfile].nil?
|
238
|
+
options[:srv_output] = if fixed_output
|
239
|
+
options[:output]
|
240
|
+
else
|
241
|
+
options[:outputdir] + '/' + File.basename(options[:idlfile], '.idl') + options[:srv_pfx] + '.rb'
|
242
|
+
end
|
243
|
+
if fixed_output && options[:client_stubs]
|
244
|
+
co
|
245
|
+
else
|
246
|
+
GenFile.new(options[:srv_output])
|
247
|
+
end
|
248
|
+
else
|
249
|
+
GenFile.new(nil, :output_file => $stdout)
|
250
|
+
end)
|
251
|
+
begin
|
252
|
+
# process ServantWriter
|
253
|
+
parser.visit_nodes(::IDL::RubyServantWriter.new(so, options))
|
254
|
+
rescue => ex
|
255
|
+
IDL.log(0, ex)
|
256
|
+
IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
|
257
|
+
exit 1
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
module LeafMixin
|
263
|
+
|
264
|
+
RESERVED_RUBY_CONST = %w(Array Bignum Binding Class Continuation Dir Exception FalseClass File
|
265
|
+
Fixnum Float Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Process
|
266
|
+
Range Regexp String Struct Symbol Thread ThreadGroup Time TrueClass UnboundMethod Comparable
|
267
|
+
Enumerable Errno FileTest GC Kernel Marshal Math ObjectSpace Signal)
|
268
|
+
|
269
|
+
RESERVED_RUBY_MEMBER = %w(untaint id instance_variable_get inspect taint public_methods
|
270
|
+
__send__ to_a display instance_eval extend clone protected_methods hash freeze type
|
271
|
+
instance_variable_set methods instance_variables to_s method dup private_methods object_id
|
272
|
+
send __id__ singleton_methods proc readline global_variables singleton_method_removed callcc
|
273
|
+
syscall fail untrace_var load srand puts catch chomp initialize_copy format scan print abort
|
274
|
+
fork gsub trap test select initialize method_missing lambda readlines local_variables
|
275
|
+
singleton_method_undefined system open caller eval set_trace_func require rand
|
276
|
+
singleton_method_added throw gets binding raise warn getc exec trace_var irb_binding at_exit
|
277
|
+
split putc loop chop sprintf p remove_instance_variable exit printf sleep sub autoload)
|
278
|
+
|
279
|
+
def ruby_lm_name
|
280
|
+
unless @lm_name
|
281
|
+
ret = @name.checked_name.dup
|
282
|
+
case self
|
283
|
+
when IDL::AST::Port,
|
284
|
+
IDL::AST::StateMember,
|
285
|
+
IDL::AST::Initializer,
|
286
|
+
IDL::AST::Parameter,
|
287
|
+
IDL::AST::Operation,
|
288
|
+
IDL::AST::Attribute,
|
289
|
+
IDL::AST::Member,
|
290
|
+
IDL::AST::UnionMember
|
291
|
+
# member names
|
292
|
+
ret = ret[0, 1].downcase + ret[1, ret.size].to_s
|
293
|
+
ret = 'r_' + ret if IDL::Ruby::LeafMixin::RESERVED_RUBY_MEMBER.include?(ret)
|
294
|
+
else
|
295
|
+
# class/module names
|
296
|
+
ret = ret[0, 1].upcase + ret[1, ret.size].to_s
|
297
|
+
is_scoped = @enclosure && !@enclosure.scopes.empty?
|
298
|
+
ret = 'R_' + ret if !is_scoped && IDL::Ruby::LeafMixin::RESERVED_RUBY_CONST.include?(ret)
|
299
|
+
end
|
300
|
+
@lm_name = ret
|
301
|
+
end
|
302
|
+
@lm_name
|
303
|
+
end
|
304
|
+
|
305
|
+
def rubyname
|
306
|
+
lm_name
|
307
|
+
end
|
308
|
+
|
309
|
+
def scoped_rubyname
|
310
|
+
scoped_lm_name
|
311
|
+
end
|
312
|
+
end # module LeafMixin
|
313
|
+
|
314
|
+
IDL::AST::Leaf.class_eval do
|
315
|
+
include LeafMixin
|
316
|
+
|
317
|
+
alias :base_lm_name :lm_name
|
318
|
+
alias :lm_name :ruby_lm_name
|
319
|
+
end
|
320
|
+
|
321
|
+
module ScannerMixin
|
322
|
+
|
323
|
+
RUBYKW = %w(__FILE__ and def end in or self unless __LINE__ begin defined? ensure module redo
|
324
|
+
super until BEGIN break do false next rescue then when END case else for nil retry true while
|
325
|
+
alias class elsif if not return undef yield).collect! { |w| w.to_sym }
|
326
|
+
|
327
|
+
def chk_identifier(ident)
|
328
|
+
# prefix Ruby keywords with 'r_'
|
329
|
+
RUBYKW.include?(ident.to_sym) ? 'r_' + ident : ident
|
330
|
+
end
|
331
|
+
|
332
|
+
end # module ScannerMixin
|
333
|
+
|
334
|
+
IDL::Scanner.class_eval do
|
335
|
+
include ScannerMixin
|
336
|
+
end
|
337
|
+
|
338
|
+
end # module Ruby
|
339
|
+
|
340
|
+
end # module IDL
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# require.rb - IDL language mapping loader
|
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
|
+
#--------------------------------------------------------------------
|
12
|
+
|
13
|
+
(Dir.glob(File.join(File.dirname(__FILE__), '*.rb')) - [__FILE__]).each do |f|
|
14
|
+
require f
|
15
|
+
end
|