zeroc-ice 3.6.5 → 3.7.0
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 +4 -4
- data/BZIP2_LICENSE +42 -0
- data/ICE_LICENSE +17 -17
- data/LICENSE +12 -12
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +150 -53
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +2 -12
- data/ext/Connection.cpp +89 -68
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +16 -45
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -5
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +4 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/Operation.cpp +33 -44
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +22 -57
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +5 -5
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +244 -171
- data/ext/Types.h +118 -66
- data/ext/Util.cpp +13 -9
- data/ext/Util.h +10 -10
- data/ext/ValueFactoryManager.cpp +445 -0
- data/ext/ValueFactoryManager.h +100 -0
- data/ext/extconf.rb +47 -45
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/Application.h +77 -60
- data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
- data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
- data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
- data/ext/ice/cpp/include/Ice/Config.h +7 -36
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
- data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
- data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Exception.h +66 -56
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
- data/ext/ice/cpp/include/Ice/Format.h +6 -1
- data/ext/ice/cpp/include/Ice/Functional.h +33 -33
- data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
- data/ext/ice/cpp/include/Ice/Handle.h +6 -11
- data/ext/ice/cpp/include/Ice/Ice.h +9 -5
- data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
- data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
- data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
- data/ext/ice/cpp/include/Ice/Object.h +105 -56
- data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
- data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
- data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
- data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
- data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +13 -18
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
- data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
- data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
- data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
- data/ext/ice/cpp/include/Ice/Value.h +104 -0
- data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
- data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
- data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
- data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
- data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
- data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
- data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
- data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
- data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
- data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
- data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
- data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
- data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
- data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
- data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
- data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
- data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
- data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
- data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
- data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
- data/ext/ice/cpp/src/Ice/ACM.h +9 -2
- data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
- data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
- data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
- data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
- data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
- data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
- data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
- data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
- data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Connector.h +4 -3
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
- data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
- data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
- data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
- data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
- data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
- data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
- data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
- data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
- data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
- data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
- data/ext/ice/cpp/src/Ice/Instance.h +30 -18
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
- data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
- data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
- data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
- data/ext/ice/cpp/src/Ice/Network.h +100 -23
- data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
- data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
- data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
- data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
- data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
- data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
- data/ext/ice/cpp/src/Ice/Reference.h +27 -22
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
- data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
- data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
- data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
- data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
- data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
- data/ext/ice/cpp/src/Ice/Selector.h +100 -147
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
- data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
- data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
- data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
- data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
- data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
- data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
- data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
- data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
- data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
- data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
- data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
- data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
- data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
- data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
- data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
- data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
- data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
- data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
- data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
- data/ext/ice/cpp/src/Slice/MD5.h +1 -1
- data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
- data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
- data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
- data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
- data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
- data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
- data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
- data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
- data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
- data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
- data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
- data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
- data/ext/ice/cpp/src/Slice/Util.h +54 -0
- data/ext/ice/mcpp/Makefile +5 -2
- data/ice.gemspec +2 -7
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +7 -46
- data/lib/Glacier2/PermissionsVerifier.rb +24 -95
- data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
- data/lib/Glacier2/Router.rb +32 -74
- data/lib/Glacier2/RouterF.rb +3 -3
- data/lib/Glacier2/SSLInfo.rb +4 -7
- data/lib/Glacier2/Session.rb +88 -307
- data/lib/Ice.rb +83 -52
- data/lib/Ice/BuiltinSequences.rb +4 -4
- data/lib/Ice/Communicator.rb +56 -58
- data/lib/Ice/CommunicatorF.rb +3 -3
- data/lib/Ice/Connection.rb +153 -162
- data/lib/Ice/ConnectionF.rb +3 -3
- data/lib/Ice/Current.rb +4 -11
- data/lib/Ice/Endpoint.rb +57 -133
- data/lib/Ice/EndpointF.rb +3 -3
- data/lib/Ice/EndpointTypes.rb +3 -7
- data/lib/Ice/FacetMap.rb +4 -4
- data/lib/Ice/Identity.rb +5 -8
- data/lib/Ice/ImplicitContext.rb +5 -34
- data/lib/Ice/ImplicitContextF.rb +3 -3
- data/lib/Ice/Instrumentation.rb +23 -275
- data/lib/Ice/InstrumentationF.rb +3 -3
- data/lib/Ice/LocalException.rb +95 -141
- data/lib/Ice/Locator.rb +51 -165
- data/lib/Ice/LocatorF.rb +3 -3
- data/lib/Ice/Logger.rb +5 -34
- data/lib/Ice/LoggerF.rb +3 -3
- data/lib/Ice/Metrics.rb +61 -416
- data/lib/Ice/ObjectAdapter.rb +34 -0
- data/lib/Ice/ObjectAdapterF.rb +3 -3
- data/lib/Ice/ObjectFactory.rb +5 -30
- data/lib/Ice/Plugin.rb +7 -60
- data/lib/Ice/PluginF.rb +3 -3
- data/lib/Ice/Process.rb +16 -52
- data/lib/Ice/ProcessF.rb +3 -3
- data/lib/Ice/Properties.rb +5 -41
- data/lib/Ice/PropertiesAdmin.rb +19 -56
- data/lib/Ice/PropertiesF.rb +3 -3
- data/lib/Ice/RemoteLogger.rb +34 -115
- data/lib/Ice/Router.rb +29 -101
- data/lib/Ice/RouterF.rb +3 -3
- data/lib/Ice/ServantLocator.rb +31 -0
- data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
- data/lib/Ice/SliceChecksumDict.rb +3 -3
- data/lib/Ice/ValueFactory.rb +33 -0
- data/lib/Ice/Version.rb +5 -11
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +44 -148
- data/lib/IceGrid.rb +1 -4
- data/lib/IceGrid/Admin.rb +551 -427
- data/lib/IceGrid/Descriptor.rb +62 -529
- data/lib/IceGrid/Exception.rb +24 -45
- data/lib/IceGrid/FileParser.rb +14 -50
- data/lib/IceGrid/PluginFacade.rb +40 -0
- data/lib/IceGrid/Registry.rb +151 -58
- data/lib/IceGrid/Session.rb +25 -64
- data/lib/IceGrid/UserAccountMapper.rb +14 -50
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +5 -11
- data/lib/IcePatch2/FileServer.rb +33 -76
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +79 -206
- data/lib/IceStorm/Metrics.rb +11 -89
- data/slice/Glacier2/Metrics.ice +8 -4
- data/slice/Glacier2/PermissionsVerifier.ice +10 -7
- data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
- data/slice/Glacier2/Router.ice +10 -8
- data/slice/Glacier2/RouterF.ice +7 -4
- data/slice/Glacier2/SSLInfo.ice +8 -5
- data/slice/Glacier2/Session.ice +15 -13
- data/slice/Ice/BuiltinSequences.ice +7 -4
- data/slice/Ice/Communicator.ice +141 -66
- data/slice/Ice/CommunicatorF.ice +7 -4
- data/slice/Ice/Connection.ice +183 -86
- data/slice/Ice/ConnectionF.ice +7 -4
- data/slice/Ice/Current.ice +13 -9
- data/slice/Ice/Endpoint.ice +63 -14
- data/slice/Ice/EndpointF.ice +7 -4
- data/slice/Ice/EndpointTypes.ice +8 -6
- data/slice/Ice/FacetMap.ice +7 -4
- data/slice/Ice/Identity.ice +13 -5
- data/slice/Ice/ImplicitContext.ice +20 -18
- data/slice/Ice/ImplicitContextF.ice +7 -4
- data/slice/Ice/Instrumentation.ice +20 -19
- data/slice/Ice/InstrumentationF.ice +8 -5
- data/slice/Ice/LocalException.ice +87 -87
- data/slice/Ice/Locator.ice +19 -18
- data/slice/Ice/LocatorF.ice +7 -4
- data/slice/Ice/Logger.ice +9 -7
- data/slice/Ice/LoggerF.ice +7 -4
- data/slice/Ice/Metrics.ice +18 -14
- data/slice/Ice/ObjectAdapter.ice +30 -13
- data/slice/Ice/ObjectAdapterF.ice +7 -4
- data/slice/Ice/ObjectFactory.ice +15 -12
- data/slice/Ice/Plugin.ice +9 -6
- data/slice/Ice/PluginF.ice +8 -5
- data/slice/Ice/Process.ice +9 -6
- data/slice/Ice/ProcessF.ice +7 -4
- data/slice/Ice/Properties.ice +15 -12
- data/slice/Ice/PropertiesAdmin.ice +9 -5
- data/slice/Ice/PropertiesF.ice +7 -4
- data/slice/Ice/RemoteLogger.ice +33 -24
- data/slice/Ice/Router.ice +16 -7
- data/slice/Ice/RouterF.ice +7 -4
- data/slice/Ice/ServantLocator.ice +13 -10
- data/slice/Ice/ServantLocatorF.ice +7 -4
- data/slice/Ice/SliceChecksumDict.ice +7 -4
- data/slice/Ice/ValueFactory.ice +127 -0
- data/slice/Ice/Version.ice +9 -5
- data/slice/IceBT/ConnectionInfo.ice +53 -0
- data/slice/IceBT/EndpointInfo.ice +51 -0
- data/slice/IceBT/Types.ice +39 -0
- data/slice/IceBox/IceBox.ice +20 -21
- data/slice/IceDiscovery/IceDiscovery.ice +9 -5
- data/slice/IceGrid/Admin.ice +390 -30
- data/slice/IceGrid/Descriptor.ice +37 -29
- data/slice/IceGrid/Exception.ice +33 -27
- data/slice/IceGrid/FileParser.ice +9 -6
- data/slice/IceGrid/PluginFacade.ice +11 -9
- data/slice/IceGrid/Registry.ice +139 -16
- data/slice/IceGrid/Session.ice +10 -8
- data/slice/IceGrid/UserAccountMapper.ice +9 -6
- data/slice/IceIAP/ConnectionInfo.ice +70 -0
- data/slice/IceIAP/EndpointInfo.ice +64 -0
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
- data/slice/IcePatch2/FileInfo.ice +9 -8
- data/slice/IcePatch2/FileServer.ice +17 -13
- data/slice/IceSSL/ConnectionInfo.ice +14 -17
- data/slice/IceSSL/ConnectionInfoF.ice +24 -0
- data/slice/IceSSL/EndpointInfo.ice +9 -30
- data/slice/IceStorm/IceStorm.ice +22 -18
- data/slice/IceStorm/Metrics.ice +9 -5
- metadata +154 -120
- data/ext/ObjectFactory.cpp +0 -140
- data/ext/ObjectFactory.h +0 -50
- data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
- data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
- data/ext/ice/cpp/include/Ice/Connection.h +0 -497
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
- data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
- data/ext/ice/cpp/include/Ice/Identity.h +0 -168
- data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
- data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
- data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
- data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
- data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
- data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
- data/ext/ice/cpp/include/Ice/Process.h +0 -574
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
- data/ext/ice/cpp/include/Ice/Router.h +0 -1159
- data/ext/ice/cpp/include/Ice/Stream.h +0 -447
- data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
- data/ext/ice/cpp/include/Ice/Version.h +0 -262
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
- data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
- data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
- data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
- data/ext/ice/cpp/include/Slice/Util.h +0 -56
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
- data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
- data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
- data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
- data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
- data/lib/IceGrid/Locator.rb +0 -106
- data/lib/IceGrid/Observer.rb +0 -572
- data/lib/IceGrid/Query.rb +0 -169
- data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
- data/slice/Freeze/CatalogData.ice +0 -49
- data/slice/Freeze/Connection.ice +0 -121
- data/slice/Freeze/DB.ice +0 -37
- data/slice/Freeze/Evictor.ice +0 -346
- data/slice/Freeze/EvictorF.ice +0 -22
- data/slice/Freeze/EvictorStorage.ice +0 -72
- data/slice/Freeze/Exception.ice +0 -100
- data/slice/Freeze/Transaction.ice +0 -58
- data/slice/Freeze/TransactionalEvictor.ice +0 -50
- data/slice/IceGrid/Locator.ice +0 -57
- data/slice/IceGrid/Observer.ice +0 -395
- data/slice/IceGrid/Query.ice +0 -131
data/ext/Proxy.h
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
data/ext/Slice.cpp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
@@ -187,22 +187,22 @@ IceRuby_compile(int argc, VALUE* argv, VALUE self)
|
|
|
187
187
|
}
|
|
188
188
|
catch(const std::exception& ex)
|
|
189
189
|
{
|
|
190
|
-
|
|
190
|
+
cerr << argSeq[0] << ": error:" << ex.what() << endl;
|
|
191
191
|
rc = EXIT_FAILURE;
|
|
192
192
|
}
|
|
193
193
|
catch(const std::string& msg)
|
|
194
194
|
{
|
|
195
|
-
|
|
195
|
+
cerr << argSeq[0] << ": error:" << msg << endl;
|
|
196
196
|
rc = EXIT_FAILURE;
|
|
197
197
|
}
|
|
198
198
|
catch(const char* msg)
|
|
199
199
|
{
|
|
200
|
-
|
|
200
|
+
cerr << argSeq[0] << ": error:" << msg << endl;
|
|
201
201
|
rc = EXIT_FAILURE;
|
|
202
202
|
}
|
|
203
203
|
catch(...)
|
|
204
204
|
{
|
|
205
|
-
|
|
205
|
+
cerr << argSeq[0] << ": error:" << "unknown exception" << endl;
|
|
206
206
|
rc = EXIT_FAILURE;
|
|
207
207
|
}
|
|
208
208
|
return INT2FIX(rc);
|
data/ext/Slice.h
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
data/ext/Types.cpp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
#include <IceUtil/InputUtil.h>
|
|
14
14
|
#include <IceUtil/OutputUtil.h>
|
|
15
15
|
#include <IceUtil/ScopedArray.h>
|
|
16
|
+
#include <Ice/InputStream.h>
|
|
16
17
|
#include <Ice/LocalException.h>
|
|
18
|
+
#include <Ice/OutputStream.h>
|
|
17
19
|
#include <Ice/SlicedData.h>
|
|
18
20
|
#include <list>
|
|
19
21
|
#include <limits>
|
|
@@ -63,22 +65,6 @@ public:
|
|
|
63
65
|
};
|
|
64
66
|
static InfoMapDestroyer infoMapDestroyer;
|
|
65
67
|
|
|
66
|
-
class ReadObjectCallback : public Ice::ReadObjectCallback
|
|
67
|
-
{
|
|
68
|
-
public:
|
|
69
|
-
|
|
70
|
-
ReadObjectCallback(const ClassInfoPtr&, const UnmarshalCallbackPtr&, VALUE, void*);
|
|
71
|
-
|
|
72
|
-
virtual void invoke(const Ice::ObjectPtr&);
|
|
73
|
-
|
|
74
|
-
private:
|
|
75
|
-
|
|
76
|
-
ClassInfoPtr _info;
|
|
77
|
-
UnmarshalCallbackPtr _cb;
|
|
78
|
-
VALUE _target;
|
|
79
|
-
void* _closure;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
68
|
string
|
|
83
69
|
escapeString(const string& str)
|
|
84
70
|
{
|
|
@@ -184,16 +170,16 @@ addExceptionInfo(const string& id, const ExceptionInfoPtr& info)
|
|
|
184
170
|
}
|
|
185
171
|
|
|
186
172
|
//
|
|
187
|
-
//
|
|
173
|
+
// StreamUtil implementation
|
|
188
174
|
//
|
|
189
|
-
VALUE IceRuby::
|
|
190
|
-
VALUE IceRuby::
|
|
175
|
+
VALUE IceRuby::StreamUtil::_slicedDataType = Qnil;
|
|
176
|
+
VALUE IceRuby::StreamUtil::_sliceInfoType = Qnil;
|
|
191
177
|
|
|
192
|
-
IceRuby::
|
|
178
|
+
IceRuby::StreamUtil::StreamUtil()
|
|
193
179
|
{
|
|
194
180
|
}
|
|
195
181
|
|
|
196
|
-
IceRuby::
|
|
182
|
+
IceRuby::StreamUtil::~StreamUtil()
|
|
197
183
|
{
|
|
198
184
|
//
|
|
199
185
|
// Make sure we break any cycles among the ObjectReaders in preserved slices.
|
|
@@ -204,35 +190,41 @@ IceRuby::SlicedDataUtil::~SlicedDataUtil()
|
|
|
204
190
|
for(Ice::SliceInfoSeq::const_iterator q = slicedData->slices.begin(); q != slicedData->slices.end(); ++q)
|
|
205
191
|
{
|
|
206
192
|
//
|
|
207
|
-
// Don't just call (*q)->
|
|
208
|
-
// to the
|
|
193
|
+
// Don't just call (*q)->instances.clear(), as releasing references
|
|
194
|
+
// to the instances could have unexpected side effects. We exchange
|
|
209
195
|
// the vector into a temporary and then let the temporary fall out
|
|
210
196
|
// of scope.
|
|
211
197
|
//
|
|
212
198
|
vector<Ice::ObjectPtr> tmp;
|
|
213
|
-
tmp.swap((*q)->
|
|
199
|
+
tmp.swap((*q)->instances);
|
|
214
200
|
}
|
|
215
201
|
}
|
|
216
202
|
}
|
|
217
203
|
|
|
218
204
|
void
|
|
219
|
-
IceRuby::
|
|
205
|
+
IceRuby::StreamUtil::add(const ReadObjectCallbackPtr& callback)
|
|
206
|
+
{
|
|
207
|
+
_callbacks.push_back(callback);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
void
|
|
211
|
+
IceRuby::StreamUtil::add(const ObjectReaderPtr& reader)
|
|
220
212
|
{
|
|
221
213
|
assert(reader->getSlicedData());
|
|
222
214
|
_readers.insert(reader);
|
|
223
215
|
}
|
|
224
216
|
|
|
225
217
|
void
|
|
226
|
-
IceRuby::
|
|
218
|
+
IceRuby::StreamUtil::updateSlicedData()
|
|
227
219
|
{
|
|
228
220
|
for(set<ObjectReaderPtr>::iterator p = _readers.begin(); p != _readers.end(); ++p)
|
|
229
221
|
{
|
|
230
|
-
|
|
222
|
+
setSlicedDataMember((*p)->getObject(), (*p)->getSlicedData());
|
|
231
223
|
}
|
|
232
224
|
}
|
|
233
225
|
|
|
234
226
|
void
|
|
235
|
-
IceRuby::
|
|
227
|
+
IceRuby::StreamUtil::setSlicedDataMember(VALUE obj, const Ice::SlicedDataPtr& slicedData)
|
|
236
228
|
{
|
|
237
229
|
//
|
|
238
230
|
// Create a Ruby equivalent of the SlicedData object.
|
|
@@ -288,23 +280,23 @@ IceRuby::SlicedDataUtil::setMember(VALUE obj, const Ice::SlicedDataPtr& slicedDa
|
|
|
288
280
|
callRuby(rb_iv_set, slice, "@bytes", bytes);
|
|
289
281
|
|
|
290
282
|
//
|
|
291
|
-
//
|
|
283
|
+
// instances
|
|
292
284
|
//
|
|
293
|
-
volatile VALUE
|
|
294
|
-
callRuby(rb_iv_set, slice, "@
|
|
285
|
+
volatile VALUE instances = createArray((*p)->instances.size());
|
|
286
|
+
callRuby(rb_iv_set, slice, "@instances", instances);
|
|
295
287
|
|
|
296
288
|
int j = 0;
|
|
297
|
-
for(vector<Ice::ObjectPtr>::iterator q = (*p)->
|
|
289
|
+
for(vector<Ice::ObjectPtr>::iterator q = (*p)->instances.begin(); q != (*p)->instances.end(); ++q)
|
|
298
290
|
{
|
|
299
291
|
//
|
|
300
|
-
// Each element in the
|
|
292
|
+
// Each element in the instances list is an instance of ObjectReader that wraps a Ruby object.
|
|
301
293
|
//
|
|
302
294
|
assert(*q);
|
|
303
295
|
ObjectReaderPtr r = ObjectReaderPtr::dynamicCast(*q);
|
|
304
296
|
assert(r);
|
|
305
297
|
VALUE o = r->getObject();
|
|
306
298
|
assert(o != Qnil); // Should be non-nil.
|
|
307
|
-
RARRAY_ASET(
|
|
299
|
+
RARRAY_ASET(instances, j, o);
|
|
308
300
|
j++;
|
|
309
301
|
}
|
|
310
302
|
|
|
@@ -327,7 +319,7 @@ IceRuby::SlicedDataUtil::setMember(VALUE obj, const Ice::SlicedDataPtr& slicedDa
|
|
|
327
319
|
// named _ice_slicedData which is an instance of the Ruby class Ice::SlicedData.
|
|
328
320
|
//
|
|
329
321
|
Ice::SlicedDataPtr
|
|
330
|
-
IceRuby::
|
|
322
|
+
IceRuby::StreamUtil::getSlicedDataMember(VALUE obj, ObjectMap* objectMap)
|
|
331
323
|
{
|
|
332
324
|
Ice::SlicedDataPtr slicedData;
|
|
333
325
|
|
|
@@ -369,19 +361,19 @@ IceRuby::SlicedDataUtil::getMember(VALUE obj, ObjectMap* objectMap)
|
|
|
369
361
|
info->bytes.swap(vtmp);
|
|
370
362
|
}
|
|
371
363
|
|
|
372
|
-
volatile VALUE
|
|
373
|
-
assert(TYPE(
|
|
374
|
-
long osz = RARRAY_LEN(
|
|
364
|
+
volatile VALUE instances = callRuby(rb_iv_get, s, "@instances");
|
|
365
|
+
assert(TYPE(instances) == T_ARRAY);
|
|
366
|
+
long osz = RARRAY_LEN(instances);
|
|
375
367
|
for(long j = 0; j < osz; ++j)
|
|
376
368
|
{
|
|
377
|
-
VALUE o = RARRAY_AREF(
|
|
369
|
+
VALUE o = RARRAY_AREF(instances, j);
|
|
378
370
|
|
|
379
371
|
Ice::ObjectPtr writer;
|
|
380
372
|
|
|
381
373
|
ObjectMap::iterator i = objectMap->find(o);
|
|
382
374
|
if(i == objectMap->end())
|
|
383
375
|
{
|
|
384
|
-
writer = new ObjectWriter(o, objectMap);
|
|
376
|
+
writer = new ObjectWriter(o, objectMap, 0);
|
|
385
377
|
objectMap->insert(ObjectMap::value_type(o, writer));
|
|
386
378
|
}
|
|
387
379
|
else
|
|
@@ -389,7 +381,7 @@ IceRuby::SlicedDataUtil::getMember(VALUE obj, ObjectMap* objectMap)
|
|
|
389
381
|
writer = i->second;
|
|
390
382
|
}
|
|
391
383
|
|
|
392
|
-
info->
|
|
384
|
+
info->instances.push_back(writer);
|
|
393
385
|
}
|
|
394
386
|
|
|
395
387
|
volatile VALUE hasOptionalMembers = callRuby(rb_iv_get, s, "@hasOptionalMembers");
|
|
@@ -546,7 +538,7 @@ IceRuby::PrimitiveInfo::optionalFormat() const
|
|
|
546
538
|
}
|
|
547
539
|
|
|
548
540
|
void
|
|
549
|
-
IceRuby::PrimitiveInfo::marshal(VALUE p,
|
|
541
|
+
IceRuby::PrimitiveInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool)
|
|
550
542
|
{
|
|
551
543
|
switch(kind)
|
|
552
544
|
{
|
|
@@ -603,8 +595,8 @@ IceRuby::PrimitiveInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectM
|
|
|
603
595
|
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
|
|
604
596
|
_finite(val) &&
|
|
605
597
|
#else
|
|
606
|
-
isfinite(d) &&
|
|
607
|
-
#endif
|
|
598
|
+
isfinite(d) &&
|
|
599
|
+
#endif
|
|
608
600
|
(d > numeric_limits<float>::max() || d < -numeric_limits<float>::max()))
|
|
609
601
|
{
|
|
610
602
|
throw RubyException(rb_eTypeError, "value is out of range for a float");
|
|
@@ -633,7 +625,7 @@ IceRuby::PrimitiveInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectM
|
|
|
633
625
|
}
|
|
634
626
|
|
|
635
627
|
void
|
|
636
|
-
IceRuby::PrimitiveInfo::unmarshal(
|
|
628
|
+
IceRuby::PrimitiveInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
|
|
637
629
|
void* closure, bool)
|
|
638
630
|
{
|
|
639
631
|
volatile VALUE val = Qnil;
|
|
@@ -822,7 +814,7 @@ IceRuby::EnumInfo::optionalFormat() const
|
|
|
822
814
|
}
|
|
823
815
|
|
|
824
816
|
void
|
|
825
|
-
IceRuby::EnumInfo::marshal(VALUE p,
|
|
817
|
+
IceRuby::EnumInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool)
|
|
826
818
|
{
|
|
827
819
|
assert(callRuby(rb_obj_is_instance_of, p, rubyClass) == Qtrue); // validate() should have caught this.
|
|
828
820
|
|
|
@@ -840,7 +832,7 @@ IceRuby::EnumInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*,
|
|
|
840
832
|
}
|
|
841
833
|
|
|
842
834
|
void
|
|
843
|
-
IceRuby::EnumInfo::unmarshal(
|
|
835
|
+
IceRuby::EnumInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target, void* closure,
|
|
844
836
|
bool)
|
|
845
837
|
{
|
|
846
838
|
Ice::Int val = is->readEnum(maxValue);
|
|
@@ -888,7 +880,7 @@ convertDataMembers(VALUE members, DataMemberList& reqMembers, DataMemberList& op
|
|
|
888
880
|
{
|
|
889
881
|
volatile VALUE m = callRuby(rb_check_array_type, RARRAY_AREF(arr, i));
|
|
890
882
|
assert(!NIL_P(m));
|
|
891
|
-
assert(RARRAY_LEN(m) ==
|
|
883
|
+
assert(RARRAY_LEN(m) == allowOptional ? 4 : 2);
|
|
892
884
|
|
|
893
885
|
DataMemberPtr member = new DataMember;
|
|
894
886
|
|
|
@@ -1003,7 +995,7 @@ IceRuby::StructInfo::usesClasses() const
|
|
|
1003
995
|
}
|
|
1004
996
|
|
|
1005
997
|
void
|
|
1006
|
-
IceRuby::StructInfo::marshal(VALUE p,
|
|
998
|
+
IceRuby::StructInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
|
|
1007
999
|
{
|
|
1008
1000
|
assert(NIL_P(p) || callRuby(rb_obj_is_kind_of, p, rubyClass) == Qtrue); // validate() should have caught this.
|
|
1009
1001
|
|
|
@@ -1049,7 +1041,7 @@ IceRuby::StructInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*
|
|
|
1049
1041
|
}
|
|
1050
1042
|
|
|
1051
1043
|
void
|
|
1052
|
-
IceRuby::StructInfo::unmarshal(
|
|
1044
|
+
IceRuby::StructInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
|
|
1053
1045
|
void* closure, bool optional)
|
|
1054
1046
|
{
|
|
1055
1047
|
volatile VALUE obj = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rubyClass);
|
|
@@ -1186,7 +1178,7 @@ IceRuby::SequenceInfo::usesClasses() const
|
|
|
1186
1178
|
}
|
|
1187
1179
|
|
|
1188
1180
|
void
|
|
1189
|
-
IceRuby::SequenceInfo::marshal(VALUE p,
|
|
1181
|
+
IceRuby::SequenceInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
|
|
1190
1182
|
{
|
|
1191
1183
|
PrimitiveInfoPtr pi = PrimitiveInfoPtr::dynamicCast(elementType);
|
|
1192
1184
|
|
|
@@ -1264,7 +1256,7 @@ IceRuby::SequenceInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMa
|
|
|
1264
1256
|
}
|
|
1265
1257
|
|
|
1266
1258
|
void
|
|
1267
|
-
IceRuby::SequenceInfo::unmarshal(
|
|
1259
|
+
IceRuby::SequenceInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
|
|
1268
1260
|
void* closure, bool optional)
|
|
1269
1261
|
{
|
|
1270
1262
|
if(optional)
|
|
@@ -1363,7 +1355,7 @@ IceRuby::SequenceInfo::destroy()
|
|
|
1363
1355
|
}
|
|
1364
1356
|
|
|
1365
1357
|
void
|
|
1366
|
-
IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALUE p,
|
|
1358
|
+
IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALUE p, Ice::OutputStream* os)
|
|
1367
1359
|
{
|
|
1368
1360
|
volatile VALUE arr = Qnil;
|
|
1369
1361
|
volatile VALUE str = Qnil;
|
|
@@ -1525,14 +1517,14 @@ IceRuby::SequenceInfo::marshalPrimitiveSequence(const PrimitiveInfoPtr& pi, VALU
|
|
|
1525
1517
|
{
|
|
1526
1518
|
seq[i] = getString(RARRAY_AREF(arr, i));
|
|
1527
1519
|
}
|
|
1528
|
-
os->write(seq,
|
|
1520
|
+
os->write(&seq[0], &seq[0] + seq.size());
|
|
1529
1521
|
break;
|
|
1530
1522
|
}
|
|
1531
1523
|
}
|
|
1532
1524
|
}
|
|
1533
1525
|
|
|
1534
1526
|
void
|
|
1535
|
-
IceRuby::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi,
|
|
1527
|
+
IceRuby::SequenceInfo::unmarshalPrimitiveSequence(const PrimitiveInfoPtr& pi, Ice::InputStream* is,
|
|
1536
1528
|
const UnmarshalCallbackPtr& cb, VALUE target, void* closure)
|
|
1537
1529
|
{
|
|
1538
1530
|
volatile VALUE result = Qnil;
|
|
@@ -1729,7 +1721,7 @@ namespace
|
|
|
1729
1721
|
{
|
|
1730
1722
|
struct DictionaryMarshalIterator : public IceRuby::HashIterator
|
|
1731
1723
|
{
|
|
1732
|
-
DictionaryMarshalIterator(const IceRuby::DictionaryInfoPtr& d,
|
|
1724
|
+
DictionaryMarshalIterator(const IceRuby::DictionaryInfoPtr& d, Ice::OutputStream* o, IceRuby::ObjectMap* m)
|
|
1733
1725
|
: dict(d), os(o), objectMap(m)
|
|
1734
1726
|
{
|
|
1735
1727
|
}
|
|
@@ -1740,13 +1732,13 @@ struct DictionaryMarshalIterator : public IceRuby::HashIterator
|
|
|
1740
1732
|
}
|
|
1741
1733
|
|
|
1742
1734
|
IceRuby::DictionaryInfoPtr dict;
|
|
1743
|
-
Ice::
|
|
1735
|
+
Ice::OutputStream* os;
|
|
1744
1736
|
IceRuby::ObjectMap* objectMap;
|
|
1745
1737
|
};
|
|
1746
1738
|
}
|
|
1747
1739
|
|
|
1748
1740
|
void
|
|
1749
|
-
IceRuby::DictionaryInfo::marshal(VALUE p,
|
|
1741
|
+
IceRuby::DictionaryInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool optional)
|
|
1750
1742
|
{
|
|
1751
1743
|
volatile VALUE hash = Qnil;
|
|
1752
1744
|
|
|
@@ -1799,7 +1791,7 @@ IceRuby::DictionaryInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, Object
|
|
|
1799
1791
|
}
|
|
1800
1792
|
|
|
1801
1793
|
void
|
|
1802
|
-
IceRuby::DictionaryInfo::marshalElement(VALUE key, VALUE value,
|
|
1794
|
+
IceRuby::DictionaryInfo::marshalElement(VALUE key, VALUE value, Ice::OutputStream* os, ObjectMap* objectMap)
|
|
1803
1795
|
{
|
|
1804
1796
|
if(!keyType->validate(key))
|
|
1805
1797
|
{
|
|
@@ -1816,7 +1808,7 @@ IceRuby::DictionaryInfo::marshalElement(VALUE key, VALUE value, const Ice::Outpu
|
|
|
1816
1808
|
}
|
|
1817
1809
|
|
|
1818
1810
|
void
|
|
1819
|
-
IceRuby::DictionaryInfo::unmarshal(
|
|
1811
|
+
IceRuby::DictionaryInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
|
|
1820
1812
|
void* closure, bool optional)
|
|
1821
1813
|
{
|
|
1822
1814
|
if(optional)
|
|
@@ -1952,7 +1944,7 @@ IceRuby::DictionaryInfo::destroy()
|
|
|
1952
1944
|
// ClassInfo implementation.
|
|
1953
1945
|
//
|
|
1954
1946
|
IceRuby::ClassInfo::ClassInfo(VALUE ident, bool loc) :
|
|
1955
|
-
compactId(-1), isBase(false), isLocal(loc),
|
|
1947
|
+
compactId(-1), isBase(false), isLocal(loc), preserve(false), interface(false), rubyClass(Qnil), typeObj(Qnil),
|
|
1956
1948
|
defined(false)
|
|
1957
1949
|
{
|
|
1958
1950
|
const_cast<string&>(id) = getString(ident);
|
|
@@ -1968,7 +1960,7 @@ IceRuby::ClassInfo::ClassInfo(VALUE ident, bool loc) :
|
|
|
1968
1960
|
}
|
|
1969
1961
|
|
|
1970
1962
|
void
|
|
1971
|
-
IceRuby::ClassInfo::define(VALUE t, VALUE compact, VALUE
|
|
1963
|
+
IceRuby::ClassInfo::define(VALUE t, VALUE compact, VALUE pres, VALUE intf, VALUE b, VALUE m)
|
|
1972
1964
|
{
|
|
1973
1965
|
if(!NIL_P(b))
|
|
1974
1966
|
{
|
|
@@ -1977,23 +1969,9 @@ IceRuby::ClassInfo::define(VALUE t, VALUE compact, VALUE abstr, VALUE pres, VALU
|
|
|
1977
1969
|
}
|
|
1978
1970
|
|
|
1979
1971
|
const_cast<Ice::Int&>(compactId) = static_cast<Ice::Int>(getInteger(compact));
|
|
1980
|
-
const_cast<bool&>(isAbstract) = RTEST(abstr);
|
|
1981
1972
|
const_cast<bool&>(preserve) = RTEST(pres);
|
|
1982
|
-
|
|
1983
|
-
long n;
|
|
1984
|
-
volatile VALUE arr;
|
|
1985
|
-
|
|
1986
|
-
arr = callRuby(rb_check_array_type, i);
|
|
1987
|
-
assert(!NIL_P(arr));
|
|
1988
|
-
for(n = 0; n < RARRAY_LEN(arr); ++n)
|
|
1989
|
-
{
|
|
1990
|
-
ClassInfoPtr iface = ClassInfoPtr::dynamicCast(getType(RARRAY_AREF(arr, n)));
|
|
1991
|
-
assert(iface);
|
|
1992
|
-
const_cast<ClassInfoList&>(interfaces).push_back(iface);
|
|
1993
|
-
}
|
|
1994
|
-
|
|
1973
|
+
const_cast<bool&>(interface) = RTEST(intf);
|
|
1995
1974
|
convertDataMembers(m, const_cast<DataMemberList&>(members), const_cast<DataMemberList&>(optionalMembers), true);
|
|
1996
|
-
|
|
1997
1975
|
const_cast<VALUE&>(rubyClass) = t;
|
|
1998
1976
|
const_cast<bool&>(defined) = true;
|
|
1999
1977
|
}
|
|
@@ -2042,7 +2020,7 @@ IceRuby::ClassInfo::validate(VALUE val)
|
|
|
2042
2020
|
assert(!NIL_P(type));
|
|
2043
2021
|
ClassInfoPtr info = ClassInfoPtr::dynamicCast(getType(type));
|
|
2044
2022
|
assert(info);
|
|
2045
|
-
return info->isA(this);
|
|
2023
|
+
return this->interface || info->isA(this);
|
|
2046
2024
|
}
|
|
2047
2025
|
|
|
2048
2026
|
bool
|
|
@@ -2070,7 +2048,7 @@ IceRuby::ClassInfo::usesClasses() const
|
|
|
2070
2048
|
}
|
|
2071
2049
|
|
|
2072
2050
|
void
|
|
2073
|
-
IceRuby::ClassInfo::marshal(VALUE p,
|
|
2051
|
+
IceRuby::ClassInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap* objectMap, bool)
|
|
2074
2052
|
{
|
|
2075
2053
|
if(!defined)
|
|
2076
2054
|
{
|
|
@@ -2079,7 +2057,8 @@ IceRuby::ClassInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*
|
|
|
2079
2057
|
|
|
2080
2058
|
if(NIL_P(p))
|
|
2081
2059
|
{
|
|
2082
|
-
|
|
2060
|
+
Ice::ObjectPtr nil;
|
|
2061
|
+
os->write(nil);
|
|
2083
2062
|
return;
|
|
2084
2063
|
}
|
|
2085
2064
|
|
|
@@ -2094,7 +2073,7 @@ IceRuby::ClassInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*
|
|
|
2094
2073
|
ObjectMap::iterator q = objectMap->find(p);
|
|
2095
2074
|
if(q == objectMap->end())
|
|
2096
2075
|
{
|
|
2097
|
-
writer = new ObjectWriter(p, objectMap);
|
|
2076
|
+
writer = new ObjectWriter(p, objectMap, this);
|
|
2098
2077
|
objectMap->insert(ObjectMap::value_type(p, writer));
|
|
2099
2078
|
}
|
|
2100
2079
|
else
|
|
@@ -2105,19 +2084,40 @@ IceRuby::ClassInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*
|
|
|
2105
2084
|
//
|
|
2106
2085
|
// Give the writer to the stream. The stream will eventually call write() on it.
|
|
2107
2086
|
//
|
|
2108
|
-
os->
|
|
2087
|
+
os->write(writer);
|
|
2109
2088
|
}
|
|
2110
2089
|
|
|
2090
|
+
namespace
|
|
2091
|
+
{
|
|
2092
|
+
|
|
2111
2093
|
void
|
|
2112
|
-
|
|
2113
|
-
|
|
2094
|
+
patchObject(void* addr, const Ice::ObjectPtr& v)
|
|
2095
|
+
{
|
|
2096
|
+
ReadObjectCallback* cb = static_cast<ReadObjectCallback*>(addr);
|
|
2097
|
+
assert(cb);
|
|
2098
|
+
cb->invoke(v);
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
void
|
|
2104
|
+
IceRuby::ClassInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target, void* closure, bool)
|
|
2114
2105
|
{
|
|
2115
2106
|
if(!defined)
|
|
2116
2107
|
{
|
|
2117
2108
|
throw RubyException(rb_eRuntimeError, "class %s is declared but not defined", id.c_str());
|
|
2118
2109
|
}
|
|
2119
2110
|
|
|
2120
|
-
|
|
2111
|
+
//
|
|
2112
|
+
// This callback is notified when the Slice value is actually read. The StreamUtil object
|
|
2113
|
+
// attached to the stream keeps a reference to the callback object to ensure it lives
|
|
2114
|
+
// long enough.
|
|
2115
|
+
//
|
|
2116
|
+
ReadObjectCallbackPtr rocb = new ReadObjectCallback(this, cb, target, closure);
|
|
2117
|
+
StreamUtil* util = reinterpret_cast<StreamUtil*>(is->getClosure());
|
|
2118
|
+
assert(util);
|
|
2119
|
+
util->add(rocb);
|
|
2120
|
+
is->read(patchObject, rocb.get());
|
|
2121
2121
|
}
|
|
2122
2122
|
|
|
2123
2123
|
void
|
|
@@ -2190,7 +2190,6 @@ void
|
|
|
2190
2190
|
IceRuby::ClassInfo::destroy()
|
|
2191
2191
|
{
|
|
2192
2192
|
const_cast<ClassInfoPtr&>(base) = 0;
|
|
2193
|
-
const_cast<ClassInfoList&>(interfaces).clear();
|
|
2194
2193
|
if(!members.empty())
|
|
2195
2194
|
{
|
|
2196
2195
|
DataMemberList ml = members;
|
|
@@ -2264,40 +2263,40 @@ IceRuby::ClassInfo::isA(const ClassInfoPtr& info)
|
|
|
2264
2263
|
{
|
|
2265
2264
|
return true;
|
|
2266
2265
|
}
|
|
2267
|
-
else if(base && base->isA(info))
|
|
2268
|
-
{
|
|
2269
|
-
return true;
|
|
2270
|
-
}
|
|
2271
|
-
else if(!interfaces.empty())
|
|
2272
|
-
{
|
|
2273
|
-
for(ClassInfoList::const_iterator p = interfaces.begin(); p != interfaces.end(); ++p)
|
|
2274
|
-
{
|
|
2275
|
-
if((*p)->isA(info))
|
|
2276
|
-
{
|
|
2277
|
-
return true;
|
|
2278
|
-
}
|
|
2279
|
-
}
|
|
2280
|
-
}
|
|
2281
2266
|
|
|
2282
|
-
return
|
|
2267
|
+
return base && base->isA(info);
|
|
2283
2268
|
}
|
|
2284
2269
|
|
|
2285
2270
|
//
|
|
2286
2271
|
// ProxyInfo implementation.
|
|
2287
2272
|
//
|
|
2288
2273
|
IceRuby::ProxyInfo::ProxyInfo(VALUE ident) :
|
|
2289
|
-
rubyClass(Qnil), typeObj(Qnil)
|
|
2274
|
+
isBase(false), rubyClass(Qnil), typeObj(Qnil)
|
|
2290
2275
|
{
|
|
2291
2276
|
const_cast<string&>(id) = getString(ident);
|
|
2277
|
+
const_cast<bool&>(isBase) = id == "::Ice::Object";
|
|
2292
2278
|
const_cast<VALUE&>(typeObj) = createType(this);
|
|
2293
2279
|
}
|
|
2294
2280
|
|
|
2295
2281
|
void
|
|
2296
|
-
IceRuby::ProxyInfo::define(VALUE t, VALUE i)
|
|
2282
|
+
IceRuby::ProxyInfo::define(VALUE t, VALUE b, VALUE i)
|
|
2297
2283
|
{
|
|
2284
|
+
if(!NIL_P(b))
|
|
2285
|
+
{
|
|
2286
|
+
const_cast<ProxyInfoPtr&>(base) = ProxyInfoPtr::dynamicCast(getType(b));
|
|
2287
|
+
assert(base);
|
|
2288
|
+
}
|
|
2289
|
+
|
|
2290
|
+
volatile VALUE arr = callRuby(rb_check_array_type, i);
|
|
2291
|
+
assert(!NIL_P(arr));
|
|
2292
|
+
for(int n = 0; n < RARRAY_LEN(arr); ++n)
|
|
2293
|
+
{
|
|
2294
|
+
ProxyInfoPtr iface = ProxyInfoPtr::dynamicCast(getType(RARRAY_AREF(arr, n)));
|
|
2295
|
+
assert(iface);
|
|
2296
|
+
const_cast<ProxyInfoList&>(interfaces).push_back(iface);
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2298
2299
|
const_cast<VALUE&>(rubyClass) = t;
|
|
2299
|
-
const_cast<ClassInfoPtr&>(classInfo) = ClassInfoPtr::dynamicCast(getType(i));
|
|
2300
|
-
assert(classInfo);
|
|
2301
2300
|
}
|
|
2302
2301
|
|
|
2303
2302
|
string
|
|
@@ -2320,7 +2319,7 @@ IceRuby::ProxyInfo::validate(VALUE val)
|
|
|
2320
2319
|
assert(!NIL_P(type));
|
|
2321
2320
|
ProxyInfoPtr info = ProxyInfoPtr::dynamicCast(getType(type));
|
|
2322
2321
|
assert(info);
|
|
2323
|
-
return info->
|
|
2322
|
+
return info->isA(this);
|
|
2324
2323
|
}
|
|
2325
2324
|
return true;
|
|
2326
2325
|
}
|
|
@@ -2344,7 +2343,7 @@ IceRuby::ProxyInfo::optionalFormat() const
|
|
|
2344
2343
|
}
|
|
2345
2344
|
|
|
2346
2345
|
void
|
|
2347
|
-
IceRuby::ProxyInfo::marshal(VALUE p,
|
|
2346
|
+
IceRuby::ProxyInfo::marshal(VALUE p, Ice::OutputStream* os, ObjectMap*, bool optional)
|
|
2348
2347
|
{
|
|
2349
2348
|
Ice::OutputStream::size_type sizePos = -1;
|
|
2350
2349
|
if(optional)
|
|
@@ -2369,7 +2368,7 @@ IceRuby::ProxyInfo::marshal(VALUE p, const Ice::OutputStreamPtr& os, ObjectMap*,
|
|
|
2369
2368
|
}
|
|
2370
2369
|
|
|
2371
2370
|
void
|
|
2372
|
-
IceRuby::ProxyInfo::unmarshal(
|
|
2371
|
+
IceRuby::ProxyInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target,
|
|
2373
2372
|
void* closure, bool optional)
|
|
2374
2373
|
{
|
|
2375
2374
|
if(optional)
|
|
@@ -2414,28 +2413,63 @@ IceRuby::ProxyInfo::print(VALUE value, IceUtilInternal::Output& out, PrintObject
|
|
|
2414
2413
|
}
|
|
2415
2414
|
}
|
|
2416
2415
|
|
|
2416
|
+
bool
|
|
2417
|
+
IceRuby::ProxyInfo::isA(const ProxyInfoPtr& info)
|
|
2418
|
+
{
|
|
2419
|
+
//
|
|
2420
|
+
// Return true if this class has an is-a relationship with info.
|
|
2421
|
+
//
|
|
2422
|
+
if(info->isBase)
|
|
2423
|
+
{
|
|
2424
|
+
return true;
|
|
2425
|
+
}
|
|
2426
|
+
else if(this == info.get())
|
|
2427
|
+
{
|
|
2428
|
+
return true;
|
|
2429
|
+
}
|
|
2430
|
+
else if(base && base->isA(info))
|
|
2431
|
+
{
|
|
2432
|
+
return true;
|
|
2433
|
+
}
|
|
2434
|
+
else if(!interfaces.empty())
|
|
2435
|
+
{
|
|
2436
|
+
for(ProxyInfoList::const_iterator p = interfaces.begin(); p != interfaces.end(); ++p)
|
|
2437
|
+
{
|
|
2438
|
+
if((*p)->isA(info))
|
|
2439
|
+
{
|
|
2440
|
+
return true;
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
return false;
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2417
2448
|
void
|
|
2418
2449
|
IceRuby::ProxyInfo::destroy()
|
|
2419
2450
|
{
|
|
2420
|
-
const_cast<
|
|
2451
|
+
const_cast<ProxyInfoPtr&>(base) = 0;
|
|
2452
|
+
const_cast<ProxyInfoList&>(interfaces).clear();
|
|
2421
2453
|
}
|
|
2422
2454
|
|
|
2423
2455
|
//
|
|
2424
2456
|
// ObjectWriter implementation.
|
|
2425
2457
|
//
|
|
2426
|
-
IceRuby::ObjectWriter::ObjectWriter(VALUE object, ObjectMap* objectMap) :
|
|
2427
|
-
_object(object), _map(objectMap)
|
|
2458
|
+
IceRuby::ObjectWriter::ObjectWriter(VALUE object, ObjectMap* objectMap, const ClassInfoPtr& formal) :
|
|
2459
|
+
_object(object), _map(objectMap), _formal(formal)
|
|
2428
2460
|
{
|
|
2429
2461
|
//
|
|
2430
2462
|
// Mark the object as in use for the lifetime of this wrapper.
|
|
2431
2463
|
//
|
|
2432
2464
|
rb_gc_register_address(&_object);
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2465
|
+
if(!_formal || !_formal->interface)
|
|
2466
|
+
{
|
|
2467
|
+
volatile VALUE cls = CLASS_OF(object);
|
|
2468
|
+
volatile VALUE type = callRuby(rb_const_get, cls, rb_intern("ICE_TYPE"));
|
|
2469
|
+
assert(!NIL_P(type));
|
|
2470
|
+
_info = ClassInfoPtr::dynamicCast(getType(type));
|
|
2471
|
+
assert(_info);
|
|
2472
|
+
}
|
|
2439
2473
|
}
|
|
2440
2474
|
|
|
2441
2475
|
IceRuby::ObjectWriter::~ObjectWriter()
|
|
@@ -2454,41 +2488,55 @@ IceRuby::ObjectWriter::ice_preMarshal()
|
|
|
2454
2488
|
}
|
|
2455
2489
|
|
|
2456
2490
|
void
|
|
2457
|
-
IceRuby::ObjectWriter::
|
|
2491
|
+
IceRuby::ObjectWriter::_iceWrite(Ice::OutputStream* os) const
|
|
2458
2492
|
{
|
|
2459
2493
|
Ice::SlicedDataPtr slicedData;
|
|
2460
2494
|
|
|
2461
|
-
if(_info->preserve)
|
|
2495
|
+
if(_info && _info->preserve)
|
|
2462
2496
|
{
|
|
2463
2497
|
//
|
|
2464
2498
|
// Retrieve the SlicedData object that we stored as a hidden member of the Ruby object.
|
|
2465
2499
|
//
|
|
2466
|
-
slicedData =
|
|
2500
|
+
slicedData = StreamUtil::getSlicedDataMember(_object, const_cast<ObjectMap*>(_map));
|
|
2467
2501
|
}
|
|
2468
2502
|
|
|
2469
|
-
os->
|
|
2470
|
-
|
|
2471
|
-
if(_info->id != "::Ice::UnknownSlicedObject")
|
|
2503
|
+
os->startValue(slicedData);
|
|
2504
|
+
if(_formal && _formal->interface)
|
|
2472
2505
|
{
|
|
2473
|
-
|
|
2474
|
-
|
|
2506
|
+
ID op = rb_intern("ice_id");
|
|
2507
|
+
string id = getString(callRuby(rb_funcall, _object, op, 0));
|
|
2508
|
+
os->startSlice(id, -1, true);
|
|
2509
|
+
os->endSlice();
|
|
2510
|
+
}
|
|
2511
|
+
else
|
|
2512
|
+
{
|
|
2513
|
+
if(_info->id != "::Ice::UnknownSlicedValue")
|
|
2475
2514
|
{
|
|
2476
|
-
|
|
2515
|
+
ClassInfoPtr info = _info;
|
|
2516
|
+
while(info)
|
|
2517
|
+
{
|
|
2518
|
+
os->startSlice(info->id, info->compactId, !info->base);
|
|
2477
2519
|
|
|
2478
|
-
|
|
2479
|
-
|
|
2520
|
+
writeMembers(os, info->members);
|
|
2521
|
+
writeMembers(os, info->optionalMembers); // The optional members have already been sorted by tag.
|
|
2480
2522
|
|
|
2481
|
-
|
|
2523
|
+
os->endSlice();
|
|
2482
2524
|
|
|
2483
|
-
|
|
2525
|
+
info = info->base;
|
|
2526
|
+
}
|
|
2484
2527
|
}
|
|
2485
2528
|
}
|
|
2529
|
+
os->endValue();
|
|
2530
|
+
}
|
|
2486
2531
|
|
|
2487
|
-
|
|
2532
|
+
void
|
|
2533
|
+
IceRuby::ObjectWriter::_iceRead(Ice::InputStream*)
|
|
2534
|
+
{
|
|
2535
|
+
assert(false);
|
|
2488
2536
|
}
|
|
2489
2537
|
|
|
2490
2538
|
void
|
|
2491
|
-
IceRuby::ObjectWriter::writeMembers(
|
|
2539
|
+
IceRuby::ObjectWriter::writeMembers(Ice::OutputStream* os, const DataMemberList& members) const
|
|
2492
2540
|
{
|
|
2493
2541
|
for(DataMemberList::const_iterator q = members.begin(); q != members.end(); ++q)
|
|
2494
2542
|
{
|
|
@@ -2539,11 +2587,17 @@ IceRuby::ObjectReader::ice_postUnmarshal()
|
|
|
2539
2587
|
}
|
|
2540
2588
|
|
|
2541
2589
|
void
|
|
2542
|
-
IceRuby::ObjectReader::
|
|
2590
|
+
IceRuby::ObjectReader::_iceWrite(Ice::OutputStream*) const
|
|
2543
2591
|
{
|
|
2544
|
-
|
|
2592
|
+
assert(false);
|
|
2593
|
+
}
|
|
2545
2594
|
|
|
2546
|
-
|
|
2595
|
+
void
|
|
2596
|
+
IceRuby::ObjectReader::_iceRead(Ice::InputStream* is)
|
|
2597
|
+
{
|
|
2598
|
+
is->startValue();
|
|
2599
|
+
|
|
2600
|
+
const bool unknown = _info->id == "::Ice::UnknownSlicedValue";
|
|
2547
2601
|
|
|
2548
2602
|
//
|
|
2549
2603
|
// Unmarshal the slices of a user-defined class.
|
|
@@ -2585,16 +2639,16 @@ IceRuby::ObjectReader::read(const Ice::InputStreamPtr& is)
|
|
|
2585
2639
|
}
|
|
2586
2640
|
}
|
|
2587
2641
|
|
|
2588
|
-
_slicedData = is->
|
|
2642
|
+
_slicedData = is->endValue(_info->preserve);
|
|
2589
2643
|
|
|
2590
2644
|
if(_slicedData)
|
|
2591
2645
|
{
|
|
2592
|
-
|
|
2646
|
+
StreamUtil* util = reinterpret_cast<StreamUtil*>(is->getClosure());
|
|
2593
2647
|
assert(util);
|
|
2594
2648
|
util->add(this);
|
|
2595
2649
|
|
|
2596
2650
|
//
|
|
2597
|
-
// Define the "unknownTypeId" member for an instance of
|
|
2651
|
+
// Define the "unknownTypeId" member for an instance of UnknownSlicedValue.
|
|
2598
2652
|
//
|
|
2599
2653
|
if(unknown)
|
|
2600
2654
|
{
|
|
@@ -2666,7 +2720,7 @@ IceRuby::ReadObjectCallback::invoke(const Ice::ObjectPtr& p)
|
|
|
2666
2720
|
// Verify that the unmarshaled object is compatible with the formal type.
|
|
2667
2721
|
//
|
|
2668
2722
|
volatile VALUE obj = reader->getObject();
|
|
2669
|
-
if(!_info->validate(obj))
|
|
2723
|
+
if(!_info->interface && !_info->validate(obj))
|
|
2670
2724
|
{
|
|
2671
2725
|
Ice::UnexpectedObjectException ex(__FILE__, __LINE__);
|
|
2672
2726
|
ex.reason = "unmarshaled object is not an instance of " + _info->id;
|
|
@@ -2687,7 +2741,7 @@ IceRuby::ReadObjectCallback::invoke(const Ice::ObjectPtr& p)
|
|
|
2687
2741
|
// ExceptionInfo implementation.
|
|
2688
2742
|
//
|
|
2689
2743
|
VALUE
|
|
2690
|
-
IceRuby::ExceptionInfo::unmarshal(
|
|
2744
|
+
IceRuby::ExceptionInfo::unmarshal(Ice::InputStream* is)
|
|
2691
2745
|
{
|
|
2692
2746
|
volatile VALUE obj = callRuby(rb_class_new_instance, 0, static_cast<VALUE*>(0), rubyClass);
|
|
2693
2747
|
|
|
@@ -2797,8 +2851,8 @@ IceRuby::ExceptionInfo::printMembers(VALUE value, IceUtilInternal::Output& out,
|
|
|
2797
2851
|
//
|
|
2798
2852
|
// ExceptionReader implementation.
|
|
2799
2853
|
//
|
|
2800
|
-
IceRuby::ExceptionReader::ExceptionReader(const
|
|
2801
|
-
|
|
2854
|
+
IceRuby::ExceptionReader::ExceptionReader(const ExceptionInfoPtr& info) :
|
|
2855
|
+
_info(info)
|
|
2802
2856
|
{
|
|
2803
2857
|
}
|
|
2804
2858
|
|
|
@@ -2807,34 +2861,20 @@ IceRuby::ExceptionReader::~ExceptionReader()
|
|
|
2807
2861
|
{
|
|
2808
2862
|
}
|
|
2809
2863
|
|
|
2810
|
-
void
|
|
2811
|
-
IceRuby::ExceptionReader::read(const Ice::InputStreamPtr& is) const
|
|
2812
|
-
{
|
|
2813
|
-
is->startException();
|
|
2814
|
-
|
|
2815
|
-
const_cast<VALUE&>(_ex) = _info->unmarshal(is);
|
|
2816
|
-
|
|
2817
|
-
const_cast<Ice::SlicedDataPtr&>(_slicedData) = is->endException(_info->preserve);
|
|
2818
|
-
}
|
|
2819
|
-
|
|
2820
|
-
bool
|
|
2821
|
-
IceRuby::ExceptionReader::usesClasses() const
|
|
2822
|
-
{
|
|
2823
|
-
return _info->usesClasses;
|
|
2824
|
-
}
|
|
2825
|
-
|
|
2826
2864
|
string
|
|
2827
|
-
IceRuby::ExceptionReader::
|
|
2865
|
+
IceRuby::ExceptionReader::ice_id() const
|
|
2828
2866
|
{
|
|
2829
2867
|
return _info->id;
|
|
2830
2868
|
}
|
|
2831
2869
|
|
|
2870
|
+
#ifndef ICE_CPP11_MAPPING
|
|
2832
2871
|
Ice::UserException*
|
|
2833
2872
|
IceRuby::ExceptionReader::ice_clone() const
|
|
2834
2873
|
{
|
|
2835
2874
|
assert(false);
|
|
2836
2875
|
return 0;
|
|
2837
2876
|
}
|
|
2877
|
+
#endif
|
|
2838
2878
|
|
|
2839
2879
|
void
|
|
2840
2880
|
IceRuby::ExceptionReader::ice_throw() const
|
|
@@ -2842,6 +2882,28 @@ IceRuby::ExceptionReader::ice_throw() const
|
|
|
2842
2882
|
throw *this;
|
|
2843
2883
|
}
|
|
2844
2884
|
|
|
2885
|
+
void
|
|
2886
|
+
IceRuby::ExceptionReader::_write(Ice::OutputStream*) const
|
|
2887
|
+
{
|
|
2888
|
+
assert(false);
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
void
|
|
2892
|
+
IceRuby::ExceptionReader::_read(Ice::InputStream* is)
|
|
2893
|
+
{
|
|
2894
|
+
is->startException();
|
|
2895
|
+
|
|
2896
|
+
const_cast<VALUE&>(_ex) = _info->unmarshal(is);
|
|
2897
|
+
|
|
2898
|
+
const_cast<Ice::SlicedDataPtr&>(_slicedData) = is->endException(_info->preserve);
|
|
2899
|
+
}
|
|
2900
|
+
|
|
2901
|
+
bool
|
|
2902
|
+
IceRuby::ExceptionReader::_usesClasses() const
|
|
2903
|
+
{
|
|
2904
|
+
return _info->usesClasses;
|
|
2905
|
+
}
|
|
2906
|
+
|
|
2845
2907
|
VALUE
|
|
2846
2908
|
IceRuby::ExceptionReader::getException() const
|
|
2847
2909
|
{
|
|
@@ -3026,14 +3088,16 @@ IceRuby_defineException(VALUE /*self*/, VALUE id, VALUE type, VALUE preserve, VA
|
|
|
3026
3088
|
|
|
3027
3089
|
extern "C"
|
|
3028
3090
|
VALUE
|
|
3029
|
-
IceRuby_TypeInfo_defineProxy(VALUE self, VALUE type, VALUE
|
|
3091
|
+
IceRuby_TypeInfo_defineProxy(VALUE self, VALUE type, VALUE base, VALUE interfaces)
|
|
3030
3092
|
{
|
|
3031
3093
|
ICE_RUBY_TRY
|
|
3032
3094
|
{
|
|
3033
3095
|
ProxyInfoPtr info = ProxyInfoPtr::dynamicCast(getType(self));
|
|
3034
3096
|
assert(info);
|
|
3035
3097
|
|
|
3036
|
-
info->define(type,
|
|
3098
|
+
info->define(type, base, interfaces);
|
|
3099
|
+
rb_define_const(type, "ICE_TYPE", self);
|
|
3100
|
+
rb_define_const(type, "ICE_ID", createString(info->id));
|
|
3037
3101
|
}
|
|
3038
3102
|
ICE_RUBY_CATCH
|
|
3039
3103
|
return Qnil;
|
|
@@ -3041,22 +3105,31 @@ IceRuby_TypeInfo_defineProxy(VALUE self, VALUE type, VALUE classInfo)
|
|
|
3041
3105
|
|
|
3042
3106
|
extern "C"
|
|
3043
3107
|
VALUE
|
|
3044
|
-
IceRuby_TypeInfo_defineClass(VALUE self, VALUE type, VALUE compactId, VALUE
|
|
3045
|
-
VALUE
|
|
3108
|
+
IceRuby_TypeInfo_defineClass(VALUE self, VALUE type, VALUE compactId, VALUE preserve, VALUE interface, VALUE base,
|
|
3109
|
+
VALUE members)
|
|
3046
3110
|
{
|
|
3047
3111
|
ICE_RUBY_TRY
|
|
3048
3112
|
{
|
|
3049
3113
|
ClassInfoPtr info = ClassInfoPtr::dynamicCast(getType(self));
|
|
3050
3114
|
assert(info);
|
|
3051
3115
|
|
|
3052
|
-
info->define(type, compactId,
|
|
3116
|
+
info->define(type, compactId, preserve, interface, base, members);
|
|
3117
|
+
|
|
3118
|
+
if(info->compactId != -1)
|
|
3119
|
+
{
|
|
3120
|
+
CompactIdMap::iterator q = _compactIdMap.find(info->compactId);
|
|
3121
|
+
if(q != _compactIdMap.end())
|
|
3122
|
+
{
|
|
3123
|
+
_compactIdMap.erase(q);
|
|
3124
|
+
}
|
|
3125
|
+
_compactIdMap.insert(CompactIdMap::value_type(info->compactId, info));
|
|
3126
|
+
}
|
|
3053
3127
|
|
|
3054
|
-
|
|
3055
|
-
if(q != _compactIdMap.end())
|
|
3128
|
+
if(type != Qnil && !info->interface)
|
|
3056
3129
|
{
|
|
3057
|
-
|
|
3130
|
+
rb_define_const(type, "ICE_TYPE", self);
|
|
3131
|
+
rb_define_const(type, "ICE_ID", createString(info->id));
|
|
3058
3132
|
}
|
|
3059
|
-
_compactIdMap.insert(CompactIdMap::value_type(info->compactId, info));
|
|
3060
3133
|
}
|
|
3061
3134
|
ICE_RUBY_CATCH
|
|
3062
3135
|
return Qnil;
|
|
@@ -3159,8 +3232,8 @@ IceRuby::initTypes(VALUE iceModule)
|
|
|
3159
3232
|
rb_define_module_function(iceModule, "__declareLocalClass", CAST_METHOD(IceRuby_declareLocalClass), 1);
|
|
3160
3233
|
rb_define_module_function(iceModule, "__defineException", CAST_METHOD(IceRuby_defineException), 5);
|
|
3161
3234
|
|
|
3162
|
-
rb_define_method(_typeInfoClass, "defineClass", CAST_METHOD(IceRuby_TypeInfo_defineClass),
|
|
3163
|
-
rb_define_method(_typeInfoClass, "defineProxy", CAST_METHOD(IceRuby_TypeInfo_defineProxy),
|
|
3235
|
+
rb_define_method(_typeInfoClass, "defineClass", CAST_METHOD(IceRuby_TypeInfo_defineClass), 6);
|
|
3236
|
+
rb_define_method(_typeInfoClass, "defineProxy", CAST_METHOD(IceRuby_TypeInfo_defineProxy), 3);
|
|
3164
3237
|
|
|
3165
3238
|
rb_define_module_function(iceModule, "__stringify", CAST_METHOD(IceRuby_stringify), 2);
|
|
3166
3239
|
rb_define_module_function(iceModule, "__stringifyException", CAST_METHOD(IceRuby_stringifyException), 1);
|