r2corba 1.6.1-x64-mingw-ucrt
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/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
|