r2corba 1.4.1
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 +159 -0
- data/LICENSE +59 -0
- data/README +62 -0
- data/THANKS +52 -0
- data/bin/r2corba +8 -0
- data/bin/ridlc +11 -0
- data/bin/rins +7 -0
- data/ext/ext.mwc +6 -0
- data/ext/extload/extload.c +60 -0
- data/ext/libr2tao/any.cpp +1543 -0
- data/ext/libr2tao/exception.cpp +202 -0
- data/ext/libr2tao/exception.h +104 -0
- data/ext/libr2tao/longdouble.cpp +173 -0
- data/ext/libr2tao/longdouble.h +31 -0
- data/ext/libr2tao/object.cpp +1150 -0
- data/ext/libr2tao/object.h +38 -0
- data/ext/libr2tao/orb.cpp +1029 -0
- data/ext/libr2tao/orb.h +36 -0
- data/ext/libr2tao/r2tao_export.h +45 -0
- data/ext/libr2tao/r2tao_ext.h +38 -0
- data/ext/libr2tao/required.cpp +463 -0
- data/ext/libr2tao/required.h +187 -0
- data/ext/libr2tao/typecode.cpp +888 -0
- data/ext/libr2tao/typecode.h +45 -0
- data/ext/libr2tao/values.cpp +2938 -0
- data/ext/libr2tao/values.h +396 -0
- data/ext/librpoa/iortable.cpp +250 -0
- data/ext/librpoa/poa.cpp +1076 -0
- data/ext/librpoa/poa.h +24 -0
- data/ext/librpoa/rpoa_export.h +44 -0
- data/ext/librpoa/servant.cpp +1338 -0
- data/ext/librpoa/servant.h +116 -0
- data/ext/librpoa/srvreq_fix.cpp +283 -0
- data/ext/librpoa/srvreq_fix.h +149 -0
- data/ext/librpol/policies.cpp +763 -0
- data/ext/librpol/policies.h +15 -0
- data/ext/librpol/rpol_export.h +44 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +231 -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/IDL.rb +21 -0
- data/lib/corba/idl/IORTable.pidl +62 -0
- data/lib/corba/idl/TAO_Ext.pidl +46 -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 +99 -0
- data/lib/corba/jbase/Object.rb +98 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +247 -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 +86 -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/corba.rb +16 -0
- data/lib/ridlbe/ruby/config.rb +336 -0
- data/lib/ridlbe/ruby/require.rb +16 -0
- data/lib/ridlbe/ruby/walker.rb +1582 -0
- data/mkrf_conf_srcgem.rb +186 -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 +450 -0
- data/rakelib/ext.rake +242 -0
- data/rakelib/ext.rb +308 -0
- data/rakelib/ext_r2tao.rb +232 -0
- data/rakelib/gem.rake +212 -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.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/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/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/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.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.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.rb +131 -0
- data/test/Hello/Test.idl +27 -0
- data/test/Hello/client.rb +78 -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.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.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.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.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/Simple/Test.idl +27 -0
- data/test/Multi_Threading/Simple/client.rb +88 -0
- data/test/Multi_Threading/Simple/run_test.rb +69 -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.rb +119 -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.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.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.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.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.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.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.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.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.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 +103 -0
- data/test/Object/run_test.rb +69 -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.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.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.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_runner.rb +193 -0
- metadata +334 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# Union.rb - Definition of CORBA Union class as baseclass for all
|
|
3
|
+
# IDL defined unions
|
|
4
|
+
#
|
|
5
|
+
# Author: Martin Corino
|
|
6
|
+
#
|
|
7
|
+
# This program is free software; you can redistribute it and/or
|
|
8
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
|
9
|
+
# included with this program.
|
|
10
|
+
#
|
|
11
|
+
# Copyright (c) Remedy IT Expertise BV
|
|
12
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
|
13
|
+
#--------------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
module R2CORBA
|
|
16
|
+
module CORBA
|
|
17
|
+
module Portable
|
|
18
|
+
class Union
|
|
19
|
+
def initialize
|
|
20
|
+
@discriminator = nil
|
|
21
|
+
@value = nil
|
|
22
|
+
end
|
|
23
|
+
def _is_at_default?
|
|
24
|
+
@discriminator == :default
|
|
25
|
+
end
|
|
26
|
+
def _value_tc
|
|
27
|
+
ix = self.class._tc.label_index(@discriminator)
|
|
28
|
+
self.class._tc.member_type(ix)
|
|
29
|
+
end
|
|
30
|
+
def _disc
|
|
31
|
+
@discriminator
|
|
32
|
+
end
|
|
33
|
+
def _disc=(val)
|
|
34
|
+
m_cur = self.class._tc.label_member(@discriminator) unless @discriminator.nil?
|
|
35
|
+
m_new = self.class._tc.label_member(val)
|
|
36
|
+
raise ::CORBA::BAD_PARAM.new(
|
|
37
|
+
"discriminator value (#{val.to_s}) outside current member for union #{self.class._tc.name}",
|
|
38
|
+
1, ::CORBA::COMPLETED_NO) unless @discriminator.nil? || m_cur == m_new
|
|
39
|
+
disc_ = @discriminator
|
|
40
|
+
@discriminator = val
|
|
41
|
+
disc_
|
|
42
|
+
end
|
|
43
|
+
def _value
|
|
44
|
+
@value
|
|
45
|
+
end
|
|
46
|
+
protected
|
|
47
|
+
def _set_value(ix, val)
|
|
48
|
+
oldval = @value
|
|
49
|
+
@discriminator = self.class._tc.member_label(ix)
|
|
50
|
+
@value = val
|
|
51
|
+
oldval
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# Values.rb - Definition of CORBA Valuetype base classes for all
|
|
3
|
+
# IDL defined valuetypes
|
|
4
|
+
#
|
|
5
|
+
# Author: Martin Corino
|
|
6
|
+
#
|
|
7
|
+
# This program is free software; you can redistribute it and/or
|
|
8
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
|
9
|
+
# included with this program.
|
|
10
|
+
#
|
|
11
|
+
# Copyright (c) Remedy IT Expertise BV
|
|
12
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
|
13
|
+
#--------------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
module R2CORBA
|
|
16
|
+
module CORBA
|
|
17
|
+
module AbstractBase
|
|
18
|
+
Id = 'IDL:omg.org/CORBA/AbstractBase:1.0'.freeze
|
|
19
|
+
Ids = [Id].freeze
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
module AbstractValueBase
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
module ValueBase
|
|
26
|
+
def do_marshal(os)
|
|
27
|
+
self.marshal(os)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def do_unmarshal(is)
|
|
31
|
+
self.unmarshal(is)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class ValueFactory
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
module Portable
|
|
39
|
+
module BoxedValueBase
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
module CustomValueBase
|
|
43
|
+
def marshal(os)
|
|
44
|
+
raise CORBA::NO_IMPLEMENT
|
|
45
|
+
end
|
|
46
|
+
def unmarshal(is)
|
|
47
|
+
raise CORBA::NO_IMPLEMENT
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class ValueFactoryBase < CORBA::ValueFactory
|
|
52
|
+
def _create_default
|
|
53
|
+
raise CORBA::NO_IMPLEMENT
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def value_id
|
|
57
|
+
self.class.value_id # derived classes define this
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.register_factory(orb)
|
|
61
|
+
orb.register_value_factory(self.value_id, self.new)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def self.get_factory(orb)
|
|
65
|
+
f = orb.lookup_value_factory(self.value_id)
|
|
66
|
+
self.register_factory(orb) if f.nil?
|
|
67
|
+
f || orb.lookup_value_factory(self.value_id)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def self.unregister_factory(orb)
|
|
71
|
+
orb.unregister_value_factory(self.value_id)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end # Portable
|
|
75
|
+
|
|
76
|
+
VM_NONE = 0
|
|
77
|
+
VM_CUSTOM = 1
|
|
78
|
+
VM_ABSTRACT = 2
|
|
79
|
+
VM_TRUNCATABLE = 3
|
|
80
|
+
|
|
81
|
+
VT_MODIFIERS = {
|
|
82
|
+
:none => VM_NONE,
|
|
83
|
+
:abstract => VM_ABSTRACT,
|
|
84
|
+
:truncatable => VM_TRUNCATABLE,
|
|
85
|
+
:custom => VM_CUSTOM
|
|
86
|
+
}.freeze
|
|
87
|
+
|
|
88
|
+
PRIVATE_MEMBER = 0
|
|
89
|
+
PUBLIC_MEMBER = 1
|
|
90
|
+
|
|
91
|
+
end # CORBA
|
|
92
|
+
end # R2CORBA
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# const.rb - Common constants
|
|
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
|
+
BIG_ENDIAN, LTL_ENDIAN = 0,1
|
|
16
|
+
ENDIAN = ("Ruby".unpack("i")[0] == 2036495698)? LTL_ENDIAN: BIG_ENDIAN
|
|
17
|
+
|
|
18
|
+
ARG_IN = 1
|
|
19
|
+
ARG_OUT = 2
|
|
20
|
+
ARG_INOUT = 3
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# exception.rb - Common CORBA Exception 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
|
+
COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE = (0..2).to_a
|
|
17
|
+
COMPLETED_TXT = ["YES", "NO", "MAYBE"].freeze
|
|
18
|
+
class Exception < StandardError
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class UserException < CORBA::Exception
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class InternalError < StandardError
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class SystemException < CORBA::Exception
|
|
28
|
+
private_class_method :new
|
|
29
|
+
attr_accessor :minor, :completed
|
|
30
|
+
def reason
|
|
31
|
+
self.message
|
|
32
|
+
end
|
|
33
|
+
def to_s
|
|
34
|
+
"CORBA::#{self.class::Name}(#{super}) [minor=#{@minor};completed=#{COMPLETED_TXT[@completed.to_i]}]"
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def CORBA.define_system_exception(name)
|
|
39
|
+
self.module_eval %Q^
|
|
40
|
+
class #{name} < SystemException
|
|
41
|
+
public_class_method :new
|
|
42
|
+
def initialize(*args)
|
|
43
|
+
super(*args)
|
|
44
|
+
end
|
|
45
|
+
Id = "IDL:omg.org/CORBA/#{name}:1.0"
|
|
46
|
+
Name = "#{name}"
|
|
47
|
+
def self._tc
|
|
48
|
+
@@tc_ ||= TypeCode::SysExcept.new(self::Id, self::Name)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
^
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# SystemException derivatives
|
|
55
|
+
[
|
|
56
|
+
'UNKNOWN', 'BAD_PARAM', 'NO_MEMORY', 'IMP_LIMIT', 'COMM_FAILURE', 'INV_OBJREF',
|
|
57
|
+
'OBJECT_NOT_EXIST', 'NO_PERMISSION', 'INTERNAL', 'MARSHAL', 'INITIALIZE', 'NO_IMPLEMENT',
|
|
58
|
+
'BAD_TYPECODE', 'BAD_OPERATION', 'NO_RESOURCES', 'NO_RESPONSE', 'PERSIST_STORE',
|
|
59
|
+
'BAD_INV_ORDER', 'TRANSIENT', 'FREE_MEM', 'INV_IDENT', 'INV_FLAG', 'INTF_REPOS', 'BAD_CONTEXT',
|
|
60
|
+
'OBJ_ADAPTER', 'DATA_CONVERSION', 'INV_POLICY', 'REBIND', 'TIMEOUT',
|
|
61
|
+
'TRANSACTION_UNAVAILABLE', 'TRANSACTION_MODE', 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK',
|
|
62
|
+
'INVALID_TRANSACTION', 'CODESET_INCOMPATIBLE', 'BAD_QOS', 'INVALID_ACTIVITY',
|
|
63
|
+
'ACTIVITY_COMPLETED', 'ACTIVITY_REQUIRED', 'THREAD_CANCELLED'
|
|
64
|
+
].each do |s|
|
|
65
|
+
define_system_exception(s)
|
|
66
|
+
end
|
|
67
|
+
end # CORBA
|
|
68
|
+
end # R2CORBA
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# require.rb - R2CORBA 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
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
|
12
|
+
#--------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
[ 'version',
|
|
15
|
+
'const',
|
|
16
|
+
'IDL',
|
|
17
|
+
'exception',
|
|
18
|
+
'Stub',
|
|
19
|
+
'Struct',
|
|
20
|
+
'Union',
|
|
21
|
+
'Typecode',
|
|
22
|
+
'Values',
|
|
23
|
+
'Any',
|
|
24
|
+
'Object',
|
|
25
|
+
'ORB',
|
|
26
|
+
'Request'
|
|
27
|
+
].each { |f| require "corba/common/#{f}.rb" }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# version.rb - R2CORBA version constants
|
|
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
|
+
|
|
16
|
+
R2CORBA_MAJOR = 1.freeze
|
|
17
|
+
R2CORBA_MINOR = 4.freeze
|
|
18
|
+
R2CORBA_RELEASE = '1'.freeze
|
|
19
|
+
|
|
20
|
+
R2CORBA_VERSION = "#{R2CORBA_MAJOR}.#{R2CORBA_MINOR}.#{R2CORBA_RELEASE}".freeze
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# IDL.rb - R2CORBA inline IDL support
|
|
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
|
+
|
|
15
|
+
module CORBA
|
|
16
|
+
def CORBA.implement(idlfile, params={}, genbits = IDL::CLIENT_STUB, &block)
|
|
17
|
+
IDL.implement(idlfile, params, genbits, &block)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// -*- IDL -*-
|
|
2
|
+
// $Id$
|
|
3
|
+
|
|
4
|
+
#ifndef R2TAO_IORTABLE_IORTABLE_PIDL
|
|
5
|
+
#define R2TAO_IORTABLE_IORTABLE_PIDL
|
|
6
|
+
|
|
7
|
+
/// Define a module to avoid namespace pollution
|
|
8
|
+
module IORTable
|
|
9
|
+
{
|
|
10
|
+
local interface Locator;
|
|
11
|
+
|
|
12
|
+
/// The object key is already in the IORTable
|
|
13
|
+
exception AlreadyBound {};
|
|
14
|
+
|
|
15
|
+
/// Cannot find the object key in the IORTable
|
|
16
|
+
exception NotFound {};
|
|
17
|
+
|
|
18
|
+
/// Define the IORTable interface
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* Any TAO server can be configured as an corbaloc agent.
|
|
22
|
+
* Such agents forward requests generated using a simple
|
|
23
|
+
* ObjectKey in a corbaloc specifcation to the real location
|
|
24
|
+
* of the object.
|
|
25
|
+
* In TAO we implement this feature by dynamically (or
|
|
26
|
+
* statically) adding a new Object Adapter to the ORB, that
|
|
27
|
+
* handles any sort of request.
|
|
28
|
+
*/
|
|
29
|
+
local interface Table
|
|
30
|
+
{
|
|
31
|
+
/// Bind @a object_key to the @a IOR
|
|
32
|
+
void bind (in string object_key,
|
|
33
|
+
in string IOR)
|
|
34
|
+
raises (AlreadyBound);
|
|
35
|
+
|
|
36
|
+
/// Bind @a object_key to the @a IOR
|
|
37
|
+
void rebind (in string object_key,
|
|
38
|
+
in string IOR);
|
|
39
|
+
|
|
40
|
+
/// Remove the binding for @a object_key
|
|
41
|
+
void unbind (in string object_key)
|
|
42
|
+
raises (NotFound);
|
|
43
|
+
|
|
44
|
+
/// Set the locator, if no binding is set for an object_key we try
|
|
45
|
+
/// to use the locator to resolve it
|
|
46
|
+
void set_locator (in Locator the_locator);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/// Callback interface to locate object keys dynamically
|
|
50
|
+
/**
|
|
51
|
+
* The application can provide a callback interface to locate object
|
|
52
|
+
* keys dynamically.
|
|
53
|
+
*/
|
|
54
|
+
local interface Locator
|
|
55
|
+
{
|
|
56
|
+
/// Returns an IOR to use for @a object_key
|
|
57
|
+
string locate (in string object_key)
|
|
58
|
+
raises (NotFound);
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
#endif /* R2TAO_IORTABLE_IORTABLE_PIDL */
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// -*- IDL -*-
|
|
2
|
+
// $Id$
|
|
3
|
+
|
|
4
|
+
#ifndef R2TAO_TAO_EXT_IDL
|
|
5
|
+
#define R2TAO_TAO_EXT_IDL
|
|
6
|
+
|
|
7
|
+
#include "TimeBase.pidl"
|
|
8
|
+
|
|
9
|
+
#pragma prefix "tao"
|
|
10
|
+
|
|
11
|
+
module TAO
|
|
12
|
+
{
|
|
13
|
+
const CORBA::PolicyType CONNECTION_TIMEOUT_POLICY_TYPE = 0x54410008;
|
|
14
|
+
|
|
15
|
+
local interface ConnectionTimeoutPolicy : CORBA::Policy {
|
|
16
|
+
readonly attribute TimeBase::TimeT relative_expiry;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//
|
|
20
|
+
// Buffering constraint.
|
|
21
|
+
//
|
|
22
|
+
typedef unsigned short BufferingConstraintMode;
|
|
23
|
+
const BufferingConstraintMode BUFFER_FLUSH = 0x00;
|
|
24
|
+
|
|
25
|
+
// Note that timeout, message_count, and message_bytes can be or'd.
|
|
26
|
+
const BufferingConstraintMode BUFFER_TIMEOUT = 0x01;
|
|
27
|
+
const BufferingConstraintMode BUFFER_MESSAGE_COUNT = 0x02;
|
|
28
|
+
const BufferingConstraintMode BUFFER_MESSAGE_BYTES = 0x04;
|
|
29
|
+
|
|
30
|
+
struct BufferingConstraint
|
|
31
|
+
{
|
|
32
|
+
BufferingConstraintMode mode;
|
|
33
|
+
TimeBase::TimeT timeout;
|
|
34
|
+
unsigned long message_count;
|
|
35
|
+
unsigned long message_bytes;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const CORBA::PolicyType BUFFERING_CONSTRAINT_POLICY_TYPE = 0x54410001;
|
|
39
|
+
|
|
40
|
+
local interface BufferingConstraintPolicy : CORBA::Policy
|
|
41
|
+
{
|
|
42
|
+
readonly attribute BufferingConstraint buffering_constraint;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
#endif /* TAO_TAO_EXT_IDL */
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#--------------------------------------------------------------------
|
|
2
|
+
# require.rb - R2CORBA 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
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
|
12
|
+
#--------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
require 'corba/idl/IDL.rb'
|
|
15
|
+
require 'corba/idl/r2c_orb.rb'
|
|
16
|
+
|
|
17
|
+
## fake Ruby into believing 'orb.rb' has already been loaded
|
|
18
|
+
## which is what the IDL compiler will generate for
|
|
19
|
+
## '#include "orb.idl"'
|
|
20
|
+
$" << 'orb.rb'
|