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
|
@@ -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.
|
|
@@ -18,27 +18,38 @@ namespace Slice
|
|
|
18
18
|
namespace Python
|
|
19
19
|
{
|
|
20
20
|
|
|
21
|
+
//
|
|
22
|
+
// Get the package directory from metadata (if any).
|
|
23
|
+
//
|
|
24
|
+
std::string getPackageDirectory(const std::string&, const Slice::UnitPtr&);
|
|
25
|
+
|
|
26
|
+
//
|
|
27
|
+
// Determine the name of a Python source file for use in an import statement.
|
|
28
|
+
// The return value does not include the .py extension.
|
|
29
|
+
//
|
|
30
|
+
std::string getImportFileName(const std::string&, const Slice::UnitPtr&, const std::vector<std::string>&);
|
|
31
|
+
|
|
21
32
|
//
|
|
22
33
|
// Generate Python code for a translation unit.
|
|
23
34
|
//
|
|
24
|
-
|
|
35
|
+
void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
|
|
25
36
|
|
|
26
37
|
//
|
|
27
38
|
// Convert a scoped name into a Python name.
|
|
28
39
|
//
|
|
29
|
-
|
|
40
|
+
std::string scopedToName(const std::string&);
|
|
30
41
|
|
|
31
42
|
//
|
|
32
43
|
// Check the given identifier against Python's list of reserved words. If it matches
|
|
33
44
|
// a reserved word, then an escaped version is returned with a leading underscore.
|
|
34
45
|
//
|
|
35
|
-
|
|
46
|
+
std::string fixIdent(const std::string&);
|
|
36
47
|
|
|
37
48
|
//
|
|
38
49
|
// Return the package specified in the global metadata for the given definition,
|
|
39
50
|
// or an empty string if no metadata was found.
|
|
40
51
|
//
|
|
41
|
-
|
|
52
|
+
std::string getPackageMetadata(const Slice::ContainedPtr&);
|
|
42
53
|
|
|
43
54
|
//
|
|
44
55
|
// Get the fully-qualified name of the given definition, including any
|
|
@@ -49,14 +60,14 @@ SLICE_API std::string getPackageMetadata(const Slice::ContainedPtr&);
|
|
|
49
60
|
// COMPILERFIX: MSVC 6 seems to have a problem with const std::string
|
|
50
61
|
// = std::string(), const std::string = std::string().
|
|
51
62
|
//
|
|
52
|
-
|
|
63
|
+
std::string getAbsolute(const Slice::ContainedPtr&, const std::string& = "", const std::string& = "");
|
|
53
64
|
|
|
54
65
|
//
|
|
55
66
|
// Emit a comment header.
|
|
56
67
|
//
|
|
57
|
-
|
|
68
|
+
void printHeader(IceUtilInternal::Output&);
|
|
58
69
|
|
|
59
|
-
|
|
70
|
+
int compile(const std::vector<std::string>&);
|
|
60
71
|
|
|
61
72
|
}
|
|
62
73
|
}
|
|
@@ -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.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include <IceUtil/CtrlCHandler.h>
|
|
13
13
|
#include <IceUtil/Mutex.h>
|
|
14
14
|
#include <IceUtil/MutexPtrLock.h>
|
|
15
|
+
#include <IceUtil/ConsoleUtil.h>
|
|
15
16
|
#include <Slice/Preprocessor.h>
|
|
16
17
|
#include <Slice/FileTracker.h>
|
|
17
18
|
#include <Slice/RubyUtil.h>
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
using namespace std;
|
|
23
24
|
using namespace Slice;
|
|
24
25
|
using namespace Slice::Ruby;
|
|
26
|
+
using namespace IceUtilInternal;
|
|
25
27
|
|
|
26
28
|
namespace
|
|
27
29
|
{
|
|
@@ -58,25 +60,27 @@ interruptedCallback(int /*signal*/)
|
|
|
58
60
|
void
|
|
59
61
|
usage(const string& n)
|
|
60
62
|
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
consoleErr << "Usage: " << n << " [options] slice-files...\n";
|
|
64
|
+
consoleErr <<
|
|
63
65
|
"Options:\n"
|
|
64
|
-
"-h, --help
|
|
65
|
-
"-v, --version
|
|
66
|
-
"-DNAME
|
|
67
|
-
"-DNAME=DEF
|
|
68
|
-
"-UNAME
|
|
69
|
-
"-IDIR
|
|
70
|
-
"-E
|
|
71
|
-
"--output-dir DIR
|
|
72
|
-
"--
|
|
73
|
-
"--depend
|
|
74
|
-
"--depend-
|
|
75
|
-
"-
|
|
76
|
-
"--
|
|
77
|
-
"--
|
|
78
|
-
"--
|
|
79
|
-
"
|
|
66
|
+
"-h, --help Show this message.\n"
|
|
67
|
+
"-v, --version Display the Ice version.\n"
|
|
68
|
+
"-DNAME Define NAME as 1.\n"
|
|
69
|
+
"-DNAME=DEF Define NAME as DEF.\n"
|
|
70
|
+
"-UNAME Remove any definition for NAME.\n"
|
|
71
|
+
"-IDIR Put DIR in the include file search path.\n"
|
|
72
|
+
"-E Print preprocessor output on stdout.\n"
|
|
73
|
+
"--output-dir DIR Create files in the directory DIR.\n"
|
|
74
|
+
"-d, --debug Print debug messages.\n"
|
|
75
|
+
"--depend Generate Makefile dependencies.\n"
|
|
76
|
+
"--depend-xml Generate dependencies in XML format.\n"
|
|
77
|
+
"--depend-file FILE Write dependencies to FILE instead of standard output.\n"
|
|
78
|
+
"--all Generate code for Slice definitions in included files.\n"
|
|
79
|
+
"--checksum Generate checksums for Slice definitions.\n"
|
|
80
|
+
"--ice Allow reserved Ice prefix in Slice identifiers\n"
|
|
81
|
+
" deprecated: use instead [[\"ice-prefix\"]] metadata.\n"
|
|
82
|
+
"--underscore Allow underscores in Slice identifiers\n"
|
|
83
|
+
" deprecated: use instead [[\"underscore\"]] metadata.\n"
|
|
80
84
|
;
|
|
81
85
|
}
|
|
82
86
|
|
|
@@ -109,7 +113,7 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
109
113
|
}
|
|
110
114
|
catch(const IceUtilInternal::BadOptException& e)
|
|
111
115
|
{
|
|
112
|
-
|
|
116
|
+
consoleErr << argv[0] << ": error: " << e.reason << endl;
|
|
113
117
|
usage(argv[0]);
|
|
114
118
|
return EXIT_FAILURE;
|
|
115
119
|
}
|
|
@@ -122,7 +126,7 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
122
126
|
|
|
123
127
|
if(opts.isSet("version"))
|
|
124
128
|
{
|
|
125
|
-
|
|
129
|
+
consoleErr << ICE_STRING_VERSION << endl;
|
|
126
130
|
return EXIT_SUCCESS;
|
|
127
131
|
}
|
|
128
132
|
|
|
@@ -167,14 +171,14 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
167
171
|
|
|
168
172
|
if(args.empty())
|
|
169
173
|
{
|
|
170
|
-
|
|
174
|
+
consoleErr << argv[0] << ": error: no input file" << endl;
|
|
171
175
|
usage(argv[0]);
|
|
172
176
|
return EXIT_FAILURE;
|
|
173
177
|
}
|
|
174
178
|
|
|
175
179
|
if(depend && dependxml)
|
|
176
180
|
{
|
|
177
|
-
|
|
181
|
+
consoleErr << argv[0] << ": error: cannot specify both --depend and --dependxml" << endl;
|
|
178
182
|
usage(argv[0]);
|
|
179
183
|
return EXIT_FAILURE;
|
|
180
184
|
}
|
|
@@ -184,10 +188,10 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
184
188
|
IceUtil::CtrlCHandler ctrlCHandler;
|
|
185
189
|
ctrlCHandler.setCallback(interruptedCallback);
|
|
186
190
|
|
|
187
|
-
|
|
191
|
+
ostringstream os;
|
|
188
192
|
if(dependxml)
|
|
189
193
|
{
|
|
190
|
-
|
|
194
|
+
os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<dependencies>" << endl;
|
|
191
195
|
}
|
|
192
196
|
|
|
193
197
|
for(vector<string>::const_iterator i = args.begin(); i != args.end(); ++i)
|
|
@@ -208,7 +212,6 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
208
212
|
|
|
209
213
|
if(cppHandle == 0)
|
|
210
214
|
{
|
|
211
|
-
out.cleanup();
|
|
212
215
|
return EXIT_FAILURE;
|
|
213
216
|
}
|
|
214
217
|
|
|
@@ -218,20 +221,17 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
218
221
|
|
|
219
222
|
if(parseStatus == EXIT_FAILURE)
|
|
220
223
|
{
|
|
221
|
-
out.cleanup();
|
|
222
224
|
return EXIT_FAILURE;
|
|
223
225
|
}
|
|
224
226
|
|
|
225
|
-
if(!icecpp->printMakefileDependencies(
|
|
227
|
+
if(!icecpp->printMakefileDependencies(os, depend ? Preprocessor::Ruby : Preprocessor::SliceXML, includePaths,
|
|
226
228
|
"-D__SLICE2RB__"))
|
|
227
229
|
{
|
|
228
|
-
out.cleanup();
|
|
229
230
|
return EXIT_FAILURE;
|
|
230
231
|
}
|
|
231
232
|
|
|
232
233
|
if(!icecpp->close())
|
|
233
234
|
{
|
|
234
|
-
out.cleanup();
|
|
235
235
|
return EXIT_FAILURE;
|
|
236
236
|
}
|
|
237
237
|
}
|
|
@@ -248,7 +248,7 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
248
248
|
if(preprocess)
|
|
249
249
|
{
|
|
250
250
|
char buf[4096];
|
|
251
|
-
while(fgets(buf, static_cast<int>(sizeof(buf)), cppHandle) !=
|
|
251
|
+
while(fgets(buf, static_cast<int>(sizeof(buf)), cppHandle) != ICE_NULLPTR)
|
|
252
252
|
{
|
|
253
253
|
if(fputs(buf, stdout) == EOF)
|
|
254
254
|
{
|
|
@@ -321,7 +321,7 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
321
321
|
// any created files.
|
|
322
322
|
FileTracker::instance()->cleanup();
|
|
323
323
|
u->destroy();
|
|
324
|
-
|
|
324
|
+
consoleErr << argv[0] << ": error: " << ex.reason() << endl;
|
|
325
325
|
return EXIT_FAILURE;
|
|
326
326
|
}
|
|
327
327
|
}
|
|
@@ -335,7 +335,6 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
335
335
|
|
|
336
336
|
if(interrupted)
|
|
337
337
|
{
|
|
338
|
-
out.cleanup();
|
|
339
338
|
FileTracker::instance()->cleanup();
|
|
340
339
|
return EXIT_FAILURE;
|
|
341
340
|
}
|
|
@@ -344,7 +343,12 @@ Slice::Ruby::compile(const vector<string>& argv)
|
|
|
344
343
|
|
|
345
344
|
if(dependxml)
|
|
346
345
|
{
|
|
347
|
-
|
|
346
|
+
os << "</dependencies>\n";
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if(depend || dependxml)
|
|
350
|
+
{
|
|
351
|
+
writeDependencies(os.str(), dependFile);
|
|
348
352
|
}
|
|
349
353
|
|
|
350
354
|
return status;
|
|
@@ -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.
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
#include <Slice/Util.h>
|
|
13
13
|
#include <IceUtil/Functional.h>
|
|
14
14
|
#include <IceUtil/InputUtil.h>
|
|
15
|
-
#include <IceUtil/Unicode.h>
|
|
16
15
|
#include <iterator>
|
|
17
16
|
|
|
18
17
|
using namespace std;
|
|
@@ -20,6 +19,26 @@ using namespace Slice;
|
|
|
20
19
|
using namespace IceUtil;
|
|
21
20
|
using namespace IceUtilInternal;
|
|
22
21
|
|
|
22
|
+
namespace
|
|
23
|
+
{
|
|
24
|
+
|
|
25
|
+
string
|
|
26
|
+
getEscapedParamName(const OperationPtr& p, const string& name)
|
|
27
|
+
{
|
|
28
|
+
ParamDeclList params = p->parameters();
|
|
29
|
+
|
|
30
|
+
for(ParamDeclList::const_iterator i = params.begin(); i != params.end(); ++i)
|
|
31
|
+
{
|
|
32
|
+
if((*i)->name() == name)
|
|
33
|
+
{
|
|
34
|
+
return name + "_";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return name;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
|
|
23
42
|
namespace Slice
|
|
24
43
|
{
|
|
25
44
|
namespace Ruby
|
|
@@ -48,12 +67,12 @@ public:
|
|
|
48
67
|
private:
|
|
49
68
|
|
|
50
69
|
//
|
|
51
|
-
// Return a
|
|
70
|
+
// Return a Ruby symbol for the given parser element.
|
|
52
71
|
//
|
|
53
72
|
string getSymbol(const ContainedPtr&);
|
|
54
73
|
|
|
55
74
|
//
|
|
56
|
-
// Emit
|
|
75
|
+
// Emit Ruby code to assign the given symbol in the current module.
|
|
57
76
|
//
|
|
58
77
|
void registerName(const string&);
|
|
59
78
|
|
|
@@ -172,16 +191,7 @@ Slice::Ruby::CodeVisitor::CodeVisitor(Output& out) :
|
|
|
172
191
|
bool
|
|
173
192
|
Slice::Ruby::CodeVisitor::visitModuleStart(const ModulePtr& p)
|
|
174
193
|
{
|
|
175
|
-
_out << sp << nl << "module ";
|
|
176
|
-
//
|
|
177
|
-
// Ensure that Slice top-level modules are defined as top
|
|
178
|
-
// level modules in Ruby
|
|
179
|
-
//
|
|
180
|
-
if(UnitPtr::dynamicCast(p->container()))
|
|
181
|
-
{
|
|
182
|
-
_out << "::";
|
|
183
|
-
}
|
|
184
|
-
_out << fixIdent(p->name(), IdentToUpper);
|
|
194
|
+
_out << sp << nl << "module " << fixIdent(p->name(), IdentToUpper);
|
|
185
195
|
_out.inc();
|
|
186
196
|
return true;
|
|
187
197
|
}
|
|
@@ -223,225 +233,53 @@ Slice::Ruby::CodeVisitor::visitClassDecl(const ClassDeclPtr& p)
|
|
|
223
233
|
bool
|
|
224
234
|
Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
225
235
|
{
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
ClassDefPtr base;
|
|
230
|
-
OperationList ops = p->operations();
|
|
236
|
+
bool isInterface = p->isInterface();
|
|
237
|
+
bool isLocal = p->isLocal();
|
|
238
|
+
bool isAbstract = isInterface || p->allOperations().size() > 0; // Don't use isAbstract() - see bug 3739
|
|
231
239
|
|
|
232
240
|
//
|
|
233
|
-
//
|
|
241
|
+
// Do not generate any code for local interfaces.
|
|
234
242
|
//
|
|
235
|
-
|
|
236
|
-
_out.inc();
|
|
237
|
-
_out << nl << "module " << name << "_mixin";
|
|
238
|
-
_out.inc();
|
|
239
|
-
|
|
240
|
-
if(!p->isLocal())
|
|
243
|
+
if(isLocal && isInterface)
|
|
241
244
|
{
|
|
242
|
-
|
|
243
|
-
{
|
|
244
|
-
base = bases.front();
|
|
245
|
-
_out << nl << "include " << getAbsolute(bases.front(), IdentToUpper) << "_mixin";
|
|
246
|
-
}
|
|
247
|
-
else
|
|
248
|
-
{
|
|
249
|
-
_out << nl << "include ::Ice::Object_mixin";
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
//
|
|
253
|
-
// ice_ids
|
|
254
|
-
//
|
|
255
|
-
ClassList allBases = p->allBases();
|
|
256
|
-
StringList ids;
|
|
257
|
-
transform(allBases.begin(), allBases.end(), back_inserter(ids), IceUtil::constMemFun(&Contained::scoped));
|
|
258
|
-
StringList other;
|
|
259
|
-
other.push_back(scoped);
|
|
260
|
-
other.push_back("::Ice::Object");
|
|
261
|
-
other.sort();
|
|
262
|
-
ids.merge(other);
|
|
263
|
-
ids.unique();
|
|
264
|
-
_out << sp << nl << "def ice_ids(current=nil)";
|
|
265
|
-
_out.inc();
|
|
266
|
-
_out << nl << "[";
|
|
267
|
-
for(StringList::iterator q = ids.begin(); q != ids.end(); ++q)
|
|
268
|
-
{
|
|
269
|
-
if(q != ids.begin())
|
|
270
|
-
{
|
|
271
|
-
_out << ", ";
|
|
272
|
-
}
|
|
273
|
-
_out << "'" << *q << "'";
|
|
274
|
-
}
|
|
275
|
-
_out << ']';
|
|
276
|
-
_out.dec();
|
|
277
|
-
_out << nl << "end";
|
|
278
|
-
|
|
279
|
-
//
|
|
280
|
-
// ice_id
|
|
281
|
-
//
|
|
282
|
-
_out << sp << nl << "def ice_id(current=nil)";
|
|
283
|
-
_out.inc();
|
|
284
|
-
_out << nl << "'" << scoped << "'";
|
|
285
|
-
_out.dec();
|
|
286
|
-
_out << nl << "end";
|
|
245
|
+
return false;
|
|
287
246
|
}
|
|
288
247
|
|
|
289
|
-
if(
|
|
290
|
-
|
|
291
|
-
//
|
|
292
|
-
// Emit a comment for each operation.
|
|
293
|
-
//
|
|
294
|
-
_out << sp
|
|
295
|
-
<< nl << "#"
|
|
296
|
-
<< nl << "# Operation signatures."
|
|
297
|
-
<< nl << "#";
|
|
298
|
-
for(OperationList::iterator oli = ops.begin(); oli != ops.end(); ++oli)
|
|
299
|
-
{
|
|
300
|
-
string fixedOpName = fixIdent((*oli)->name(), IdentNormal);
|
|
301
|
-
/* If AMI/AMD is ever implemented...
|
|
302
|
-
if(!p->isLocal() && (p->hasMetaData("amd") || (*oli)->hasMetaData("amd")))
|
|
303
|
-
{
|
|
304
|
-
_out << nl << "# def " << fixedOpName << "_async(_cb";
|
|
305
|
-
|
|
306
|
-
ParamDeclList params = (*oli)->parameters();
|
|
307
|
-
|
|
308
|
-
for(ParamDeclList::iterator pli = params.begin(); pli != params.end(); ++pli)
|
|
309
|
-
{
|
|
310
|
-
if(!(*pli)->isOutParam())
|
|
311
|
-
{
|
|
312
|
-
_out << ", " << fixIdent((*pli)->name(), IdentToLower);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
if(!p->isLocal())
|
|
316
|
-
{
|
|
317
|
-
_out << ", current=nil";
|
|
318
|
-
}
|
|
319
|
-
_out << ")";
|
|
320
|
-
}
|
|
321
|
-
else
|
|
322
|
-
*/
|
|
323
|
-
{
|
|
324
|
-
_out << nl << "# def " << fixedOpName << "(";
|
|
325
|
-
|
|
326
|
-
ParamDeclList params = (*oli)->parameters();
|
|
327
|
-
|
|
328
|
-
bool first = true;
|
|
329
|
-
for(ParamDeclList::iterator pli = params.begin(); pli != params.end(); ++pli)
|
|
330
|
-
{
|
|
331
|
-
if(!(*pli)->isOutParam())
|
|
332
|
-
{
|
|
333
|
-
if(first)
|
|
334
|
-
{
|
|
335
|
-
first = false;
|
|
336
|
-
}
|
|
337
|
-
else
|
|
338
|
-
{
|
|
339
|
-
_out << ", ";
|
|
340
|
-
}
|
|
341
|
-
_out << fixIdent((*pli)->name(), IdentToLower);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
if(!p->isLocal())
|
|
345
|
-
{
|
|
346
|
-
if(!first)
|
|
347
|
-
{
|
|
348
|
-
_out << ", ";
|
|
349
|
-
}
|
|
350
|
-
_out << "current=nil";
|
|
351
|
-
}
|
|
352
|
-
_out << ")";
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
248
|
+
_out << sp << nl << "if not defined?(" << getAbsolute(p, IdentToUpper) << "_Mixin)";
|
|
249
|
+
_out.inc();
|
|
356
250
|
|
|
357
251
|
//
|
|
358
|
-
//
|
|
252
|
+
// Marker to avoid redefinitions, we don't use the actual class names at those might
|
|
253
|
+
// be defined by IceRuby for some internal classes
|
|
359
254
|
//
|
|
360
|
-
_out << sp << nl << "
|
|
361
|
-
_out.inc();
|
|
362
|
-
_out << nl << "::Ice::__stringify(self, T_" << name << ")";
|
|
363
|
-
_out.dec();
|
|
255
|
+
_out << sp << nl << "module " << getAbsolute(p, IdentToUpper) << "_Mixin";
|
|
364
256
|
_out << nl << "end";
|
|
365
257
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
{
|
|
372
|
-
bool prot = p->hasMetaData("protected");
|
|
373
|
-
DataMemberList protectedMembers;
|
|
258
|
+
string scoped = p->scoped();
|
|
259
|
+
string name = fixIdent(p->name(), IdentToUpper);
|
|
260
|
+
ClassList bases = p->bases();
|
|
261
|
+
ClassDefPtr base;
|
|
262
|
+
OperationList ops = p->operations();
|
|
374
263
|
|
|
375
|
-
|
|
376
|
-
for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
|
|
377
|
-
{
|
|
378
|
-
if(q != members.begin())
|
|
379
|
-
{
|
|
380
|
-
_out << ", ";
|
|
381
|
-
}
|
|
382
|
-
_out << ":" << fixIdent((*q)->name(), IdentNormal);
|
|
383
|
-
if(prot || (*q)->hasMetaData("protected"))
|
|
384
|
-
{
|
|
385
|
-
protectedMembers.push_back(*q);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
264
|
+
DataMemberList members = p->dataMembers();
|
|
388
265
|
|
|
389
|
-
|
|
266
|
+
if(isLocal || !isInterface)
|
|
267
|
+
{
|
|
268
|
+
if(!bases.empty() && !bases.front()->isInterface())
|
|
390
269
|
{
|
|
391
|
-
|
|
392
|
-
for(DataMemberList::iterator q = protectedMembers.begin(); q != protectedMembers.end(); ++q)
|
|
393
|
-
{
|
|
394
|
-
if(q != protectedMembers.begin())
|
|
395
|
-
{
|
|
396
|
-
_out << ", ";
|
|
397
|
-
}
|
|
398
|
-
//
|
|
399
|
-
// We need to list the symbols of the reader and the writer (e.g., ":member" and ":member=").
|
|
400
|
-
//
|
|
401
|
-
_out << ":" << fixIdent((*q)->name(), IdentNormal) << ", :"
|
|
402
|
-
<< fixIdent((*q)->name(), IdentNormal) << '=';
|
|
403
|
-
}
|
|
270
|
+
base = bases.front();
|
|
404
271
|
}
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
_out.dec();
|
|
408
|
-
_out << nl << "end"; // End of mix-in module for class.
|
|
409
272
|
|
|
410
|
-
if(p->isInterface())
|
|
411
|
-
{
|
|
412
|
-
//
|
|
413
|
-
// Class.
|
|
414
|
-
//
|
|
415
|
-
_out << nl << "class " << name;
|
|
416
|
-
_out.inc();
|
|
417
|
-
_out << nl << "include " << name << "_mixin";
|
|
418
|
-
_out << nl;
|
|
419
|
-
_out << nl << "def " << name << ".ice_staticId()";
|
|
420
|
-
_out.inc();
|
|
421
|
-
_out << nl << "'" << scoped << "'";
|
|
422
|
-
_out.dec();
|
|
423
|
-
_out << nl << "end";
|
|
424
|
-
_out.dec();
|
|
425
|
-
_out << nl << "end";
|
|
426
|
-
}
|
|
427
|
-
else
|
|
428
|
-
{
|
|
429
|
-
//
|
|
430
|
-
// Class.
|
|
431
|
-
//
|
|
432
273
|
_out << nl << "class " << name;
|
|
433
274
|
if(base)
|
|
434
275
|
{
|
|
435
276
|
_out << " < " << getAbsolute(base, IdentToUpper);
|
|
436
277
|
}
|
|
278
|
+
else if(!isLocal)
|
|
279
|
+
{
|
|
280
|
+
_out << " < ::Ice::Value";
|
|
281
|
+
}
|
|
437
282
|
_out.inc();
|
|
438
|
-
_out << nl << "include " << name << "_mixin";
|
|
439
|
-
_out << nl;
|
|
440
|
-
_out << nl << "def " << name << ".ice_staticId()";
|
|
441
|
-
_out.inc();
|
|
442
|
-
_out << nl << "'" << scoped << "'";
|
|
443
|
-
_out.dec();
|
|
444
|
-
_out << nl << "end";
|
|
445
283
|
|
|
446
284
|
//
|
|
447
285
|
// initialize
|
|
@@ -490,6 +328,47 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
490
328
|
_out << nl << "end";
|
|
491
329
|
}
|
|
492
330
|
|
|
331
|
+
//
|
|
332
|
+
// read/write accessors for data members.
|
|
333
|
+
//
|
|
334
|
+
DataMemberList members = p->dataMembers();
|
|
335
|
+
if(!members.empty())
|
|
336
|
+
{
|
|
337
|
+
bool prot = p->hasMetaData("protected");
|
|
338
|
+
DataMemberList protectedMembers;
|
|
339
|
+
|
|
340
|
+
_out << sp << nl << "attr_accessor ";
|
|
341
|
+
for(DataMemberList::iterator q = members.begin(); q != members.end(); ++q)
|
|
342
|
+
{
|
|
343
|
+
if(q != members.begin())
|
|
344
|
+
{
|
|
345
|
+
_out << ", ";
|
|
346
|
+
}
|
|
347
|
+
_out << ":" << fixIdent((*q)->name(), IdentNormal);
|
|
348
|
+
if(prot || (*q)->hasMetaData("protected"))
|
|
349
|
+
{
|
|
350
|
+
protectedMembers.push_back(*q);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
if(!protectedMembers.empty())
|
|
355
|
+
{
|
|
356
|
+
_out << nl << "protected ";
|
|
357
|
+
for(DataMemberList::iterator q = protectedMembers.begin(); q != protectedMembers.end(); ++q)
|
|
358
|
+
{
|
|
359
|
+
if(q != protectedMembers.begin())
|
|
360
|
+
{
|
|
361
|
+
_out << ", ";
|
|
362
|
+
}
|
|
363
|
+
//
|
|
364
|
+
// We need to list the symbols of the reader and the writer (e.g., ":member" and ":member=").
|
|
365
|
+
//
|
|
366
|
+
_out << ":" << fixIdent((*q)->name(), IdentNormal) << ", :"
|
|
367
|
+
<< fixIdent((*q)->name(), IdentNormal) << '=';
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
493
372
|
_out.dec();
|
|
494
373
|
_out << nl << "end"; // End of class.
|
|
495
374
|
}
|
|
@@ -498,13 +377,17 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
498
377
|
// Generate proxy support. This includes a mix-in module for the proxy's
|
|
499
378
|
// operations and a class for the proxy itself.
|
|
500
379
|
//
|
|
501
|
-
if(!p->isLocal())
|
|
380
|
+
if(!p->isLocal() && isAbstract)
|
|
502
381
|
{
|
|
503
382
|
_out << nl << "module " << name << "Prx_mixin";
|
|
504
383
|
_out.inc();
|
|
505
384
|
for(ClassList::iterator cli = bases.begin(); cli != bases.end(); ++cli)
|
|
506
385
|
{
|
|
507
|
-
|
|
386
|
+
ClassDefPtr def = *cli;
|
|
387
|
+
if(def->isInterface() || def->allOperations().size() > 0)
|
|
388
|
+
{
|
|
389
|
+
_out << nl << "include " << getAbsolute(*cli, IdentToUpper) << "Prx_mixin";
|
|
390
|
+
}
|
|
508
391
|
}
|
|
509
392
|
for(OperationList::iterator oli = ops.begin(); oli != ops.end(); ++oli)
|
|
510
393
|
{
|
|
@@ -534,38 +417,21 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
534
417
|
{
|
|
535
418
|
_out << inParams << ", ";
|
|
536
419
|
}
|
|
537
|
-
|
|
420
|
+
const string contextParamName = getEscapedParamName(*oli, "context");
|
|
421
|
+
_out << contextParamName << "=nil)";
|
|
538
422
|
_out.inc();
|
|
539
|
-
_out << nl << name << "
|
|
540
|
-
_out << "],
|
|
423
|
+
_out << nl << name << "Prx_mixin::OP_" << (*oli)->name() << ".invoke(self, [" << inParams;
|
|
424
|
+
_out << "], " << contextParamName << ")";
|
|
541
425
|
_out.dec();
|
|
542
426
|
_out << nl << "end";
|
|
543
427
|
}
|
|
544
428
|
_out.dec();
|
|
545
429
|
_out << nl << "end"; // End of mix-in module for proxy.
|
|
546
430
|
|
|
547
|
-
_out << nl << "class " << name << "Prx < ::Ice::ObjectPrx";
|
|
431
|
+
_out << sp << nl << "class " << name << "Prx < ::Ice::ObjectPrx";
|
|
548
432
|
_out.inc();
|
|
433
|
+
_out << nl << "include ::Ice::Proxy_mixin";
|
|
549
434
|
_out << nl << "include " << name << "Prx_mixin";
|
|
550
|
-
|
|
551
|
-
_out << sp << nl << "def " << name << "Prx.checkedCast(proxy, facetOrCtx=nil, _ctx=nil)";
|
|
552
|
-
_out.inc();
|
|
553
|
-
_out << nl << "ice_checkedCast(proxy, '" << scoped << "', facetOrCtx, _ctx)";
|
|
554
|
-
_out.dec();
|
|
555
|
-
_out << nl << "end";
|
|
556
|
-
|
|
557
|
-
_out << sp << nl << "def " << name << "Prx.uncheckedCast(proxy, facet=nil)";
|
|
558
|
-
_out.inc();
|
|
559
|
-
_out << nl << "ice_uncheckedCast(proxy, facet)";
|
|
560
|
-
_out.dec();
|
|
561
|
-
_out << nl << "end";
|
|
562
|
-
|
|
563
|
-
_out << nl << "def " << name << "Prx.ice_staticId()";
|
|
564
|
-
_out.inc();
|
|
565
|
-
_out << nl << "'" << scoped << "'";
|
|
566
|
-
_out.dec();
|
|
567
|
-
_out << nl << "end";
|
|
568
|
-
|
|
569
435
|
_out.dec();
|
|
570
436
|
_out << nl << "end"; // End of proxy class.
|
|
571
437
|
}
|
|
@@ -573,7 +439,12 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
573
439
|
//
|
|
574
440
|
// Emit type descriptions.
|
|
575
441
|
//
|
|
576
|
-
_out << sp << nl << "if not defined?(" << getAbsolute(p, IdentToUpper, "T_")
|
|
442
|
+
_out << sp << nl << "if not defined?(" << getAbsolute(p, IdentToUpper, "T_");
|
|
443
|
+
if(isInterface)
|
|
444
|
+
{
|
|
445
|
+
_out << "Prx";
|
|
446
|
+
}
|
|
447
|
+
_out << ')';
|
|
577
448
|
_out.inc();
|
|
578
449
|
if(p->isLocal())
|
|
579
450
|
{
|
|
@@ -582,16 +453,22 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
582
453
|
else
|
|
583
454
|
{
|
|
584
455
|
_out << nl << "T_" << name << " = ::Ice::__declareClass('" << scoped << "')";
|
|
585
|
-
|
|
456
|
+
if(isAbstract)
|
|
457
|
+
{
|
|
458
|
+
_out << nl << "T_" << name << "Prx = ::Ice::__declareProxy('" << scoped << "')";
|
|
459
|
+
}
|
|
586
460
|
}
|
|
587
461
|
_out.dec();
|
|
588
462
|
_out << nl << "end";
|
|
589
463
|
_classHistory.insert(scoped); // Avoid redundant declarations.
|
|
590
464
|
|
|
591
|
-
bool isAbstract = p->isInterface() || p->allOperations().size() > 0; // Don't use isAbstract() here - see bug 3739
|
|
592
465
|
const bool preserved = p->hasMetaData("preserve-slice") || p->inheritsMetaData("preserve-slice");
|
|
593
|
-
|
|
594
|
-
|
|
466
|
+
|
|
467
|
+
_out << sp << nl << "T_" << name << ".defineClass("
|
|
468
|
+
<< (isInterface ? "::Ice::Value" : name) << ", "
|
|
469
|
+
<< p->compactId() << ", "
|
|
470
|
+
<< (preserved ? "true" : "false") << ", "
|
|
471
|
+
<< (isInterface ? "true" : "false") << ", ";
|
|
595
472
|
if(!base)
|
|
596
473
|
{
|
|
597
474
|
_out << "nil";
|
|
@@ -600,25 +477,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
600
477
|
{
|
|
601
478
|
_out << getAbsolute(base, IdentToUpper, "T_");
|
|
602
479
|
}
|
|
603
|
-
_out << ",
|
|
604
|
-
//
|
|
605
|
-
// Interfaces
|
|
606
|
-
//
|
|
607
|
-
{
|
|
608
|
-
int interfaceCount = 0;
|
|
609
|
-
for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
|
|
610
|
-
{
|
|
611
|
-
if((*q)->isInterface())
|
|
612
|
-
{
|
|
613
|
-
if(interfaceCount > 0)
|
|
614
|
-
{
|
|
615
|
-
_out << ", ";
|
|
616
|
-
}
|
|
617
|
-
_out << getAbsolute(*q, IdentToUpper, "T_");
|
|
618
|
-
++interfaceCount;
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
}
|
|
480
|
+
_out << ", ";
|
|
622
481
|
//
|
|
623
482
|
// Members
|
|
624
483
|
//
|
|
@@ -628,7 +487,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
628
487
|
//
|
|
629
488
|
// where MemberType is either a primitive type constant (T_INT, etc.) or the id of a constructed type.
|
|
630
489
|
//
|
|
631
|
-
_out << "
|
|
490
|
+
_out << "[";
|
|
632
491
|
if(members.size() > 1)
|
|
633
492
|
{
|
|
634
493
|
_out.inc();
|
|
@@ -653,7 +512,6 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
653
512
|
_out << nl;
|
|
654
513
|
}
|
|
655
514
|
_out << "])";
|
|
656
|
-
_out << nl << name << "_mixin::ICE_TYPE = T_" << name;
|
|
657
515
|
|
|
658
516
|
//
|
|
659
517
|
// Define each operation. The arguments to __defineOperation are:
|
|
@@ -663,10 +521,39 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
663
521
|
// where InParams and OutParams are arrays of type descriptions, and Exceptions
|
|
664
522
|
// is an array of exception types.
|
|
665
523
|
//
|
|
666
|
-
if(!p->isLocal())
|
|
524
|
+
if(!p->isLocal() && isAbstract)
|
|
667
525
|
{
|
|
668
|
-
_out << sp << nl << "T_" << name << "Prx.defineProxy(" << name << "Prx,
|
|
669
|
-
|
|
526
|
+
_out << sp << nl << "T_" << name << "Prx.defineProxy(" << name << "Prx, ";
|
|
527
|
+
|
|
528
|
+
if(!base || (!base->isInterface() && base->allOperations().size() == 0))
|
|
529
|
+
{
|
|
530
|
+
_out << "nil";
|
|
531
|
+
}
|
|
532
|
+
else
|
|
533
|
+
{
|
|
534
|
+
_out << getAbsolute(base, IdentToUpper, "T_") << "Prx";
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
//
|
|
538
|
+
// Interfaces
|
|
539
|
+
//
|
|
540
|
+
_out << ", [";
|
|
541
|
+
{
|
|
542
|
+
int interfaceCount = 0;
|
|
543
|
+
for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
|
|
544
|
+
{
|
|
545
|
+
if((*q)->isInterface())
|
|
546
|
+
{
|
|
547
|
+
if(interfaceCount > 0)
|
|
548
|
+
{
|
|
549
|
+
_out << ", ";
|
|
550
|
+
}
|
|
551
|
+
_out << getAbsolute(*q, IdentToUpper, "T_") << "Prx";
|
|
552
|
+
++interfaceCount;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
_out << "])";
|
|
670
557
|
|
|
671
558
|
if(!ops.empty())
|
|
672
559
|
{
|
|
@@ -691,7 +578,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
691
578
|
break;
|
|
692
579
|
}
|
|
693
580
|
|
|
694
|
-
_out << nl << name << "
|
|
581
|
+
_out << nl << name << "Prx_mixin::OP_" << (*s)->name() << " = ::Ice::__defineOperation('"
|
|
695
582
|
<< (*s)->name() << "', ";
|
|
696
583
|
switch((*s)->mode())
|
|
697
584
|
{
|
|
@@ -790,7 +677,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
|
790
677
|
{
|
|
791
678
|
msg = deprecateMetadata.substr(pos + 1);
|
|
792
679
|
}
|
|
793
|
-
_out << nl << name << "
|
|
680
|
+
_out << nl << name << "Prx_mixin::OP_" << (*s)->name() << ".deprecate(\"" << msg << "\")";
|
|
794
681
|
}
|
|
795
682
|
}
|
|
796
683
|
}
|
|
@@ -880,7 +767,7 @@ Slice::Ruby::CodeVisitor::visitExceptionStart(const ExceptionPtr& p)
|
|
|
880
767
|
//
|
|
881
768
|
_out << sp << nl << "def to_s";
|
|
882
769
|
_out.inc();
|
|
883
|
-
_out << nl << "'" << scoped
|
|
770
|
+
_out << nl << "'" << scoped << "'";
|
|
884
771
|
_out.dec();
|
|
885
772
|
_out << nl << "end";
|
|
886
773
|
|
|
@@ -947,7 +834,6 @@ Slice::Ruby::CodeVisitor::visitExceptionStart(const ExceptionPtr& p)
|
|
|
947
834
|
_out << nl;
|
|
948
835
|
}
|
|
949
836
|
_out << "])";
|
|
950
|
-
_out << nl << name << "::ICE_TYPE = T_" << name;
|
|
951
837
|
|
|
952
838
|
_out.dec();
|
|
953
839
|
_out << nl << "end"; // if not defined?()
|
|
@@ -978,6 +864,7 @@ Slice::Ruby::CodeVisitor::visitStructStart(const StructPtr& p)
|
|
|
978
864
|
_out.inc();
|
|
979
865
|
_out << nl << "class " << name;
|
|
980
866
|
_out.inc();
|
|
867
|
+
_out << nl << "include ::Ice::Inspect_mixin";
|
|
981
868
|
if(!memberList.empty())
|
|
982
869
|
{
|
|
983
870
|
_out << nl << "def initialize(";
|
|
@@ -1035,15 +922,6 @@ Slice::Ruby::CodeVisitor::visitStructStart(const StructPtr& p)
|
|
|
1035
922
|
_out.dec();
|
|
1036
923
|
_out << nl << "end";
|
|
1037
924
|
|
|
1038
|
-
//
|
|
1039
|
-
// inspect
|
|
1040
|
-
//
|
|
1041
|
-
_out << sp << nl << "def inspect";
|
|
1042
|
-
_out.inc();
|
|
1043
|
-
_out << nl << "::Ice::__stringify(self, T_" << name << ")";
|
|
1044
|
-
_out.dec();
|
|
1045
|
-
_out << nl << "end";
|
|
1046
|
-
|
|
1047
925
|
//
|
|
1048
926
|
// read/write accessors for data members.
|
|
1049
927
|
//
|
|
@@ -1143,7 +1021,7 @@ Slice::Ruby::CodeVisitor::visitEnum(const EnumPtr& p)
|
|
|
1143
1021
|
{
|
|
1144
1022
|
string scoped = p->scoped();
|
|
1145
1023
|
string name = fixIdent(p->name(), IdentToUpper);
|
|
1146
|
-
EnumeratorList enums = p->
|
|
1024
|
+
EnumeratorList enums = p->enumerators();
|
|
1147
1025
|
|
|
1148
1026
|
_out << sp << nl << "if not defined?(" << getAbsolute(p, IdentToUpper) << ')';
|
|
1149
1027
|
_out.inc();
|
|
@@ -1207,15 +1085,6 @@ Slice::Ruby::CodeVisitor::visitEnum(const EnumPtr& p)
|
|
|
1207
1085
|
_out.dec();
|
|
1208
1086
|
_out << nl << "end";
|
|
1209
1087
|
|
|
1210
|
-
//
|
|
1211
|
-
// inspect
|
|
1212
|
-
//
|
|
1213
|
-
_out << sp << nl << "def inspect";
|
|
1214
|
-
_out.inc();
|
|
1215
|
-
_out << nl << "@name + \"(#{@value})\"";
|
|
1216
|
-
_out.dec();
|
|
1217
|
-
_out << nl << "end";
|
|
1218
|
-
|
|
1219
1088
|
//
|
|
1220
1089
|
// each
|
|
1221
1090
|
//
|
|
@@ -1328,9 +1197,10 @@ Slice::Ruby::CodeVisitor::writeType(const TypePtr& p)
|
|
|
1328
1197
|
_out << "::Ice::T_string";
|
|
1329
1198
|
break;
|
|
1330
1199
|
}
|
|
1200
|
+
case Builtin::KindValue:
|
|
1331
1201
|
case Builtin::KindObject:
|
|
1332
1202
|
{
|
|
1333
|
-
_out << "::Ice::
|
|
1203
|
+
_out << "::Ice::T_Value";
|
|
1334
1204
|
break;
|
|
1335
1205
|
}
|
|
1336
1206
|
case Builtin::KindObjectProxy:
|
|
@@ -1350,7 +1220,15 @@ Slice::Ruby::CodeVisitor::writeType(const TypePtr& p)
|
|
|
1350
1220
|
ProxyPtr prx = ProxyPtr::dynamicCast(p);
|
|
1351
1221
|
if(prx)
|
|
1352
1222
|
{
|
|
1353
|
-
|
|
1223
|
+
ClassDefPtr def = prx->_class()->definition();
|
|
1224
|
+
if(def->isInterface() || def->allOperations().size() > 0)
|
|
1225
|
+
{
|
|
1226
|
+
_out << getAbsolute(prx->_class(), IdentToUpper, "T_") << "Prx";
|
|
1227
|
+
}
|
|
1228
|
+
else
|
|
1229
|
+
{
|
|
1230
|
+
_out << "::Ice::T_ObjectPrx";
|
|
1231
|
+
}
|
|
1354
1232
|
return;
|
|
1355
1233
|
}
|
|
1356
1234
|
|
|
@@ -1388,6 +1266,7 @@ Slice::Ruby::CodeVisitor::getInitializer(const DataMemberPtr& m)
|
|
|
1388
1266
|
{
|
|
1389
1267
|
return "''";
|
|
1390
1268
|
}
|
|
1269
|
+
case Builtin::KindValue:
|
|
1391
1270
|
case Builtin::KindObject:
|
|
1392
1271
|
case Builtin::KindObjectProxy:
|
|
1393
1272
|
case Builtin::KindLocalObject:
|
|
@@ -1400,7 +1279,7 @@ Slice::Ruby::CodeVisitor::getInitializer(const DataMemberPtr& m)
|
|
|
1400
1279
|
EnumPtr en = EnumPtr::dynamicCast(p);
|
|
1401
1280
|
if(en)
|
|
1402
1281
|
{
|
|
1403
|
-
EnumeratorList enums = en->
|
|
1282
|
+
EnumeratorList enums = en->enumerators();
|
|
1404
1283
|
return getAbsolute(en, IdentToUpper) + "::" + fixIdent(enums.front()->name(), IdentToUpper);
|
|
1405
1284
|
}
|
|
1406
1285
|
|
|
@@ -1455,152 +1334,12 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr
|
|
|
1455
1334
|
}
|
|
1456
1335
|
case Slice::Builtin::KindString:
|
|
1457
1336
|
{
|
|
1458
|
-
//
|
|
1459
|
-
|
|
1460
|
-
// here because they are sensitive to the current locale.
|
|
1461
|
-
//
|
|
1462
|
-
static const string basicSourceChars = "abcdefghijklmnopqrstuvwxyz"
|
|
1463
|
-
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
1464
|
-
"0123456789"
|
|
1465
|
-
"_{}[]#()<>%:;.?*+-/^&|~!=, '";
|
|
1466
|
-
static const set<char> charSet(basicSourceChars.begin(), basicSourceChars.end());
|
|
1467
|
-
|
|
1468
|
-
_out << "\""; // Opening "
|
|
1469
|
-
|
|
1470
|
-
for(size_t i = 0; i < value.size();)
|
|
1471
|
-
{
|
|
1472
|
-
char c = value[i];
|
|
1473
|
-
switch(c)
|
|
1474
|
-
{
|
|
1475
|
-
case '"':
|
|
1476
|
-
{
|
|
1477
|
-
_out << "\\\"";
|
|
1478
|
-
break;
|
|
1479
|
-
}
|
|
1480
|
-
case '\\':
|
|
1481
|
-
{
|
|
1482
|
-
string s = "\\";
|
|
1483
|
-
size_t j = i + 1;
|
|
1484
|
-
for(; j < value.size(); ++j)
|
|
1485
|
-
{
|
|
1486
|
-
if(value[j] != '\\')
|
|
1487
|
-
{
|
|
1488
|
-
break;
|
|
1489
|
-
}
|
|
1490
|
-
s += "\\";
|
|
1491
|
-
}
|
|
1492
|
-
|
|
1493
|
-
//
|
|
1494
|
-
// An even number of slash \ will escape the backslash and
|
|
1495
|
-
// the codepoint will be interpreted as its charaters
|
|
1496
|
-
//
|
|
1497
|
-
// \\u00000041 - ['\\', 'u', '0', '0', '0', '0', '0', '0', '4', '1']
|
|
1498
|
-
// \\\u00000041 - ['\\', 'A'] (41 is the codepoint for 'A')
|
|
1499
|
-
//
|
|
1500
|
-
if(s.size() % 2 != 0 && (value[j] == 'U' || value[j] == 'u'))
|
|
1501
|
-
{
|
|
1502
|
-
//
|
|
1503
|
-
// Convert codepoint to UTF8 bytes and write the escaped bytes
|
|
1504
|
-
//
|
|
1505
|
-
_out << s.substr(0, s.size() - 1);
|
|
1506
|
-
|
|
1507
|
-
size_t sz = value[j] == 'U' ? 8 : 4;
|
|
1508
|
-
string codepoint = value.substr(j + 1, sz);
|
|
1509
|
-
assert(codepoint.size() == sz);
|
|
1510
|
-
IceUtil::Int64 v = IceUtilInternal::strToInt64(codepoint.c_str(), 0, 16);
|
|
1511
|
-
|
|
1512
|
-
vector<unsigned int> u32buffer;
|
|
1513
|
-
u32buffer.push_back(static_cast<unsigned int>(v));
|
|
1514
|
-
|
|
1515
|
-
vector<unsigned char> u8buffer;
|
|
1516
|
-
IceUtilInternal::ConversionResult result = convertUTF32ToUTF8(u32buffer, u8buffer, IceUtil::lenientConversion);
|
|
1517
|
-
switch(result)
|
|
1518
|
-
{
|
|
1519
|
-
case conversionOK:
|
|
1520
|
-
break;
|
|
1521
|
-
case sourceExhausted:
|
|
1522
|
-
throw IceUtil::IllegalConversionException(__FILE__, __LINE__, "string source exhausted");
|
|
1523
|
-
case sourceIllegal:
|
|
1524
|
-
throw IceUtil::IllegalConversionException(__FILE__, __LINE__, "string source illegal");
|
|
1525
|
-
default:
|
|
1526
|
-
{
|
|
1527
|
-
assert(0);
|
|
1528
|
-
throw IceUtil::IllegalConversionException(__FILE__, __LINE__);
|
|
1529
|
-
}
|
|
1530
|
-
}
|
|
1531
|
-
|
|
1532
|
-
ostringstream s;
|
|
1533
|
-
for(vector<unsigned char>::const_iterator q = u8buffer.begin(); q != u8buffer.end(); ++q)
|
|
1534
|
-
{
|
|
1535
|
-
s << "\\";
|
|
1536
|
-
s.fill('0');
|
|
1537
|
-
s.width(3);
|
|
1538
|
-
s << oct;
|
|
1539
|
-
s << static_cast<unsigned int>(*q);
|
|
1540
|
-
}
|
|
1541
|
-
_out << s.str();
|
|
1542
|
-
|
|
1543
|
-
i = j + 1 + sz;
|
|
1544
|
-
}
|
|
1545
|
-
else
|
|
1546
|
-
{
|
|
1547
|
-
_out << s;
|
|
1548
|
-
i = j;
|
|
1549
|
-
}
|
|
1550
|
-
continue;
|
|
1551
|
-
}
|
|
1552
|
-
case '\r':
|
|
1553
|
-
{
|
|
1554
|
-
_out << "\\r";
|
|
1555
|
-
break;
|
|
1556
|
-
}
|
|
1557
|
-
case '\n':
|
|
1558
|
-
{
|
|
1559
|
-
_out << "\\n";
|
|
1560
|
-
break;
|
|
1561
|
-
}
|
|
1562
|
-
case '\t':
|
|
1563
|
-
{
|
|
1564
|
-
_out << "\\t";
|
|
1565
|
-
break;
|
|
1566
|
-
}
|
|
1567
|
-
case '\b':
|
|
1568
|
-
{
|
|
1569
|
-
_out << "\\b";
|
|
1570
|
-
break;
|
|
1571
|
-
}
|
|
1572
|
-
case '\f':
|
|
1573
|
-
{
|
|
1574
|
-
_out << "\\f";
|
|
1575
|
-
break;
|
|
1576
|
-
}
|
|
1577
|
-
default:
|
|
1578
|
-
{
|
|
1579
|
-
if(charSet.find(c) == charSet.end())
|
|
1580
|
-
{
|
|
1581
|
-
unsigned char uc = c; // Char may be signed, so make it positive.
|
|
1582
|
-
stringstream s;
|
|
1583
|
-
s << "\\"; // Print as octal if not in basic source character set.
|
|
1584
|
-
s.flags(ios_base::oct);
|
|
1585
|
-
s.width(3);
|
|
1586
|
-
s.fill('0');
|
|
1587
|
-
s << static_cast<unsigned>(uc);
|
|
1588
|
-
_out << s.str();
|
|
1589
|
-
}
|
|
1590
|
-
else
|
|
1591
|
-
{
|
|
1592
|
-
_out << c; // Print normally if in basic source character set.
|
|
1593
|
-
}
|
|
1594
|
-
break;
|
|
1595
|
-
}
|
|
1596
|
-
}
|
|
1597
|
-
++i;
|
|
1598
|
-
}
|
|
1599
|
-
|
|
1600
|
-
_out << "\""; // Closing "
|
|
1337
|
+
// RubyUCN available in Ruby 1.9 or greater
|
|
1338
|
+
_out << "\"" << toStringLiteral(value, "\a\b\f\n\r\t\v\x20\x1b", "", EC6UCN, 0) << "\"";
|
|
1601
1339
|
break;
|
|
1602
1340
|
}
|
|
1603
1341
|
|
|
1342
|
+
case Slice::Builtin::KindValue:
|
|
1604
1343
|
case Slice::Builtin::KindObject:
|
|
1605
1344
|
case Slice::Builtin::KindObjectProxy:
|
|
1606
1345
|
case Slice::Builtin::KindLocalObject:
|
|
@@ -1609,16 +1348,9 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr
|
|
|
1609
1348
|
}
|
|
1610
1349
|
else if(en)
|
|
1611
1350
|
{
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
{
|
|
1616
|
-
_out << fixIdent(value.substr(colon + 1), IdentToUpper);
|
|
1617
|
-
}
|
|
1618
|
-
else
|
|
1619
|
-
{
|
|
1620
|
-
_out << fixIdent(value, IdentToUpper);
|
|
1621
|
-
}
|
|
1351
|
+
EnumeratorPtr lte = EnumeratorPtr::dynamicCast(valueType);
|
|
1352
|
+
assert(lte);
|
|
1353
|
+
_out << getAbsolute(lte, IdentToUpper);
|
|
1622
1354
|
}
|
|
1623
1355
|
else
|
|
1624
1356
|
{
|
|
@@ -1826,7 +1558,7 @@ Slice::Ruby::printHeader(IceUtilInternal::Output& out)
|
|
|
1826
1558
|
static const char* header =
|
|
1827
1559
|
"# **********************************************************************\n"
|
|
1828
1560
|
"#\n"
|
|
1829
|
-
"# Copyright (c) 2003-
|
|
1561
|
+
"# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.\n"
|
|
1830
1562
|
"#\n"
|
|
1831
1563
|
"# This copy of Ice is licensed to you under the terms described in the\n"
|
|
1832
1564
|
"# ICE_LICENSE file included in this distribution.\n"
|