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.
|
|
@@ -11,9 +11,7 @@
|
|
|
11
11
|
#include <IceUtil/StringConverter.h>
|
|
12
12
|
#include <cstring>
|
|
13
13
|
|
|
14
|
-
#
|
|
15
|
-
# include <IceUtil/ScopedArray.h>
|
|
16
|
-
#endif
|
|
14
|
+
#include <iomanip>
|
|
17
15
|
|
|
18
16
|
using namespace std;
|
|
19
17
|
using namespace IceUtil;
|
|
@@ -21,114 +19,88 @@ using namespace IceUtil;
|
|
|
21
19
|
namespace
|
|
22
20
|
{
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
char
|
|
23
|
+
toHexDigit(Byte b)
|
|
24
|
+
{
|
|
25
|
+
assert(b < 16);
|
|
26
|
+
if(b < 10)
|
|
27
|
+
{
|
|
28
|
+
return '0' + b;
|
|
29
|
+
}
|
|
30
|
+
else
|
|
31
|
+
{
|
|
32
|
+
return 'a' - 10 + b;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
unsigned int
|
|
37
|
+
addContinuationByte(string::iterator& p, string::iterator end, unsigned int codePoint)
|
|
26
38
|
{
|
|
27
|
-
|
|
28
|
-
s.resize(32);
|
|
29
|
-
string::size_type charPos = 32;
|
|
30
|
-
const int radix = 1 << 3;
|
|
31
|
-
int mask = radix - 1;
|
|
32
|
-
do
|
|
39
|
+
if(p == end)
|
|
33
40
|
{
|
|
34
|
-
|
|
35
|
-
n >>= 3;
|
|
41
|
+
throw IllegalArgumentException(__FILE__, __LINE__, "UTF-8 sequence too short");
|
|
36
42
|
}
|
|
37
|
-
while(n != 0);
|
|
38
43
|
|
|
39
|
-
|
|
44
|
+
Byte b = static_cast<Byte>(*p++);
|
|
45
|
+
|
|
46
|
+
if((b >> 6) != 2)
|
|
47
|
+
{
|
|
48
|
+
throw IllegalArgumentException(__FILE__, __LINE__, "Invalid UTF-8 sequence");
|
|
49
|
+
}
|
|
50
|
+
return (codePoint << 6) + (b & 0x3F);
|
|
40
51
|
}
|
|
41
52
|
|
|
42
53
|
//
|
|
43
|
-
//
|
|
44
|
-
// character and append the escape sequence to s. Additional characters
|
|
45
|
-
// that should be escaped can be passed in special. If b is any of these
|
|
46
|
-
// characters, b is preceded by a backslash in s.
|
|
54
|
+
// Appends a 2 to 4 bytes UTF-8 sequence as a universal character name
|
|
47
55
|
//
|
|
48
56
|
void
|
|
49
|
-
|
|
57
|
+
appendUniversalName(char c, string::iterator& p, string::iterator end, string& result)
|
|
50
58
|
{
|
|
51
|
-
|
|
59
|
+
unsigned int codePoint;
|
|
60
|
+
|
|
61
|
+
Byte b = static_cast<Byte>(c);
|
|
62
|
+
if((b >> 5) == 0x06)
|
|
52
63
|
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
case '\n':
|
|
84
|
-
{
|
|
85
|
-
s.append("\\n");
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
case '\r':
|
|
90
|
-
{
|
|
91
|
-
s.append("\\r");
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
case '\t':
|
|
64
|
+
// 2 bytes
|
|
65
|
+
codePoint = (b & 0x1F);
|
|
66
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
67
|
+
}
|
|
68
|
+
else if((b >> 4) == 0x0E)
|
|
69
|
+
{
|
|
70
|
+
// 3 bytes
|
|
71
|
+
codePoint = (b & 0x0F);
|
|
72
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
73
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
74
|
+
}
|
|
75
|
+
else if((b >> 3) == 0x1E)
|
|
76
|
+
{
|
|
77
|
+
// 4 bytes
|
|
78
|
+
codePoint = (b & 0x07);
|
|
79
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
80
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
81
|
+
codePoint = addContinuationByte(p, end, codePoint);
|
|
82
|
+
}
|
|
83
|
+
else
|
|
84
|
+
{
|
|
85
|
+
ostringstream ostr;
|
|
86
|
+
ostr << "Invalid first byte 0x" << hex << static_cast<unsigned short>(b) << " in UTF-8 sequence" << endl;
|
|
87
|
+
throw IllegalArgumentException(__FILE__, __LINE__, ostr.str());
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if(codePoint > 0xFFFF)
|
|
91
|
+
{
|
|
92
|
+
result.append("\\U");
|
|
93
|
+
for(int j = 7; j >= 0; j--)
|
|
96
94
|
{
|
|
97
|
-
|
|
98
|
-
break;
|
|
95
|
+
result.push_back(toHexDigit(static_cast<Byte>((codePoint >> (j * 4)) & 0x0F)));
|
|
99
96
|
}
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
{
|
|
100
|
+
result.append("\\u");
|
|
101
|
+
for(int j = 3; j >= 0; j--)
|
|
102
102
|
{
|
|
103
|
-
|
|
104
|
-
if(!(i >= 32 && i <= 126))
|
|
105
|
-
{
|
|
106
|
-
s.push_back('\\');
|
|
107
|
-
string octal = toOctalString(i);
|
|
108
|
-
//
|
|
109
|
-
// Add leading zeroes so that we avoid problems during
|
|
110
|
-
// decoding. For example, consider the escaped string
|
|
111
|
-
// \0013 (i.e., a character with value 1 followed by the
|
|
112
|
-
// character '3'). If the leading zeroes were omitted, the
|
|
113
|
-
// result would be incorrectly interpreted as a single
|
|
114
|
-
// character with value 11.
|
|
115
|
-
//
|
|
116
|
-
for(string::size_type j = octal.size(); j < 3; j++)
|
|
117
|
-
{
|
|
118
|
-
s.push_back('0');
|
|
119
|
-
}
|
|
120
|
-
s.append(octal);
|
|
121
|
-
}
|
|
122
|
-
else if(special.find(b) != string::npos)
|
|
123
|
-
{
|
|
124
|
-
s.push_back('\\');
|
|
125
|
-
s.push_back(b);
|
|
126
|
-
}
|
|
127
|
-
else
|
|
128
|
-
{
|
|
129
|
-
s.push_back(b);
|
|
130
|
-
}
|
|
131
|
-
break;
|
|
103
|
+
result.push_back(toHexDigit(static_cast<Byte>((codePoint >> (j * 4)) & 0x0F)));
|
|
132
104
|
}
|
|
133
105
|
}
|
|
134
106
|
}
|
|
@@ -136,27 +108,166 @@ encodeChar(string::value_type b, string& s, const string& special)
|
|
|
136
108
|
}
|
|
137
109
|
|
|
138
110
|
//
|
|
139
|
-
// Add escape sequences
|
|
140
|
-
// readable in ASCII. Any characters that appear in special are
|
|
141
|
-
// prefixed with a backslash in the returned string.
|
|
111
|
+
// Add escape sequences. Any characters that appear in special are prefixed with a backslash in the returned string.
|
|
142
112
|
//
|
|
143
113
|
string
|
|
144
|
-
IceUtilInternal::escapeString(const string& s, const string& special)
|
|
114
|
+
IceUtilInternal::escapeString(const string& s, const string& special, ToStringMode toStringMode)
|
|
145
115
|
{
|
|
146
116
|
for(string::size_type i = 0; i < special.size(); ++i)
|
|
147
117
|
{
|
|
148
118
|
if(static_cast<unsigned char>(special[i]) < 32 || static_cast<unsigned char>(special[i]) > 126)
|
|
149
119
|
{
|
|
150
|
-
throw IllegalArgumentException(__FILE__, __LINE__, "
|
|
120
|
+
throw IllegalArgumentException(__FILE__, __LINE__, "Special characters must be in ASCII range 32-126");
|
|
151
121
|
}
|
|
152
122
|
}
|
|
153
|
-
|
|
123
|
+
|
|
124
|
+
//
|
|
125
|
+
// First convert to UTF-8
|
|
126
|
+
//
|
|
127
|
+
string u8s = nativeToUTF8(s, getProcessStringConverter());
|
|
128
|
+
|
|
129
|
+
string::iterator p = u8s.begin();
|
|
130
|
+
|
|
154
131
|
string result;
|
|
155
|
-
|
|
132
|
+
|
|
133
|
+
while(p != u8s.end())
|
|
134
|
+
{
|
|
135
|
+
char c = *p++;
|
|
136
|
+
|
|
137
|
+
switch(c)
|
|
138
|
+
{
|
|
139
|
+
case '\\':
|
|
140
|
+
{
|
|
141
|
+
result.append("\\\\");
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
case '\'':
|
|
145
|
+
{
|
|
146
|
+
result.append("\\'");
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case '"':
|
|
150
|
+
{
|
|
151
|
+
result.append("\\\"");
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case '\a':
|
|
155
|
+
{
|
|
156
|
+
if(toStringMode == ICE_ENUM(ToStringMode, Compat))
|
|
157
|
+
{
|
|
158
|
+
// Octal escape for compatibility with 3.6 and earlier
|
|
159
|
+
result.append("\\007");
|
|
160
|
+
}
|
|
161
|
+
else
|
|
162
|
+
{
|
|
163
|
+
result.append("\\a");
|
|
164
|
+
}
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case '\b':
|
|
168
|
+
{
|
|
169
|
+
result.append("\\b");
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case '\f':
|
|
173
|
+
{
|
|
174
|
+
result.append("\\f");
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case '\n':
|
|
178
|
+
{
|
|
179
|
+
result.append("\\n");
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case '\r':
|
|
183
|
+
{
|
|
184
|
+
result.append("\\r");
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case '\t':
|
|
188
|
+
{
|
|
189
|
+
result.append("\\t");
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
case '\v':
|
|
193
|
+
{
|
|
194
|
+
if(toStringMode == ICE_ENUM(ToStringMode, Compat))
|
|
195
|
+
{
|
|
196
|
+
// Octal escape for compatibility with 3.6 and earlier
|
|
197
|
+
result.append("\\013");
|
|
198
|
+
}
|
|
199
|
+
else
|
|
200
|
+
{
|
|
201
|
+
result.append("\\v");
|
|
202
|
+
}
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
default:
|
|
206
|
+
{
|
|
207
|
+
if(special.find(c) != string::npos)
|
|
208
|
+
{
|
|
209
|
+
result.push_back('\\');
|
|
210
|
+
result.push_back(c);
|
|
211
|
+
}
|
|
212
|
+
else
|
|
213
|
+
{
|
|
214
|
+
unsigned char i = static_cast<unsigned char>(c);
|
|
215
|
+
|
|
216
|
+
if(i < 32 || i > 126)
|
|
217
|
+
{
|
|
218
|
+
if(toStringMode == ICE_ENUM(ToStringMode, Compat))
|
|
219
|
+
{
|
|
220
|
+
// append octal string
|
|
221
|
+
|
|
222
|
+
// Add leading zeroes so that we avoid problems during
|
|
223
|
+
// decoding. For example, consider the escaped string
|
|
224
|
+
// \0013 (i.e., a character with value 1 followed by the
|
|
225
|
+
// character '3'). If the leading zeroes were omitted, the
|
|
226
|
+
// result would be incorrectly interpreted as a single
|
|
227
|
+
// character with value 11.
|
|
228
|
+
//
|
|
229
|
+
ostringstream os;
|
|
230
|
+
os << '\\' << oct << setfill('0') << setw(3) << static_cast<unsigned int>(i);
|
|
231
|
+
result.append(os.str());
|
|
232
|
+
}
|
|
233
|
+
else if(i < 32 || i == 127)
|
|
234
|
+
{
|
|
235
|
+
// append \u00nn
|
|
236
|
+
result.append("\\u00");
|
|
237
|
+
result.push_back(toHexDigit(i >> 4));
|
|
238
|
+
result.push_back(toHexDigit(i & 0x0F));
|
|
239
|
+
}
|
|
240
|
+
else if(toStringMode == ICE_ENUM(ToStringMode, ASCII))
|
|
241
|
+
{
|
|
242
|
+
// append \unnnn or \Unnnnnnnn after reading more UTF-8 bytes
|
|
243
|
+
appendUniversalName(c, p, u8s.end(), result);
|
|
244
|
+
}
|
|
245
|
+
else
|
|
246
|
+
{
|
|
247
|
+
// keep as is
|
|
248
|
+
result.push_back(c);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else
|
|
252
|
+
{
|
|
253
|
+
// printable ASCII character
|
|
254
|
+
result.push_back(c);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if(toStringMode == ICE_ENUM(ToStringMode, Unicode))
|
|
156
263
|
{
|
|
157
|
-
|
|
264
|
+
//
|
|
265
|
+
// Convert back to Native
|
|
266
|
+
//
|
|
267
|
+
result = UTF8ToNative(result, getProcessStringConverter());
|
|
158
268
|
}
|
|
159
|
-
|
|
269
|
+
// else it's a pure ASCII string
|
|
270
|
+
|
|
160
271
|
return result;
|
|
161
272
|
}
|
|
162
273
|
|
|
@@ -167,7 +278,7 @@ char
|
|
|
167
278
|
checkChar(const string& s, string::size_type pos)
|
|
168
279
|
{
|
|
169
280
|
unsigned char c = static_cast<unsigned char>(s[pos]);
|
|
170
|
-
if(
|
|
281
|
+
if(c < 32 || c == 127)
|
|
171
282
|
{
|
|
172
283
|
ostringstream ostr;
|
|
173
284
|
if(pos > 0)
|
|
@@ -178,73 +289,179 @@ checkChar(const string& s, string::size_type pos)
|
|
|
178
289
|
{
|
|
179
290
|
ostr << "first character";
|
|
180
291
|
}
|
|
181
|
-
ostr << "
|
|
292
|
+
ostr << " has invalid ordinal value " << static_cast<int>(c);
|
|
182
293
|
throw IllegalArgumentException(__FILE__, __LINE__, ostr.str());
|
|
183
294
|
}
|
|
184
295
|
return c;
|
|
185
296
|
}
|
|
186
297
|
|
|
187
298
|
//
|
|
188
|
-
//
|
|
299
|
+
// Append codePoint as a UTF-8 sequence
|
|
300
|
+
//
|
|
301
|
+
void
|
|
302
|
+
appendUTF8(unsigned int codePoint, string& result)
|
|
303
|
+
{
|
|
304
|
+
if(codePoint >= 0xD800 && codePoint <= 0xDFFF)
|
|
305
|
+
{
|
|
306
|
+
throw IllegalArgumentException(__FILE__, __LINE__,
|
|
307
|
+
"A universal character name cannot designate a surrogate");
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if(codePoint <= 0x7F)
|
|
311
|
+
{
|
|
312
|
+
// ASCII
|
|
313
|
+
result.push_back(static_cast<char>(codePoint));
|
|
314
|
+
}
|
|
315
|
+
else if(codePoint <= 0x7FF)
|
|
316
|
+
{
|
|
317
|
+
// 2 bytes
|
|
318
|
+
result.push_back(static_cast<char>((codePoint >> 6) | 0xC0));
|
|
319
|
+
result.push_back(static_cast<char>((codePoint & 0x3F) | 0x80));
|
|
320
|
+
}
|
|
321
|
+
else if(codePoint <= 0xFFFF)
|
|
322
|
+
{
|
|
323
|
+
// 3 bytes
|
|
324
|
+
result.push_back(static_cast<char>((codePoint >> 12) | 0xE0));
|
|
325
|
+
result.push_back(static_cast<char>(((codePoint >> 6) & 0x3F) | 0x80));
|
|
326
|
+
result.push_back(static_cast<char>((codePoint & 0x3F) | 0x80));
|
|
327
|
+
}
|
|
328
|
+
else if(codePoint <= 0x10FFFF)
|
|
329
|
+
{
|
|
330
|
+
// 4 bytes
|
|
331
|
+
result.push_back(static_cast<char>((codePoint >> 18) | 0xF0));
|
|
332
|
+
result.push_back(static_cast<char>(((codePoint >> 12) & 0x3F) | 0x80));
|
|
333
|
+
result.push_back(static_cast<char>(((codePoint >> 6) & 0x3F) | 0x80));
|
|
334
|
+
result.push_back(static_cast<char>((codePoint & 0x3F) | 0x80));
|
|
335
|
+
}
|
|
336
|
+
else
|
|
337
|
+
{
|
|
338
|
+
throw IllegalArgumentException(__FILE__, __LINE__, "Invalid universal character name");
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
//
|
|
343
|
+
// Decode the character or escape sequence starting at start and appends it to result;
|
|
189
344
|
// end marks the one-past-the-end position of the substring to be scanned.
|
|
190
345
|
// nextStart is set to the index of the first character following the decoded
|
|
191
346
|
// character or escape sequence.
|
|
192
347
|
//
|
|
193
|
-
|
|
194
|
-
decodeChar(const string& s, string::size_type start, string::size_type end, string::size_type& nextStart
|
|
348
|
+
bool
|
|
349
|
+
decodeChar(const string& s, string::size_type start, string::size_type end, string::size_type& nextStart,
|
|
350
|
+
const string& special, string& result)
|
|
195
351
|
{
|
|
196
352
|
assert(start < end);
|
|
197
353
|
assert(end <= s.size());
|
|
198
354
|
|
|
199
|
-
|
|
355
|
+
bool pureASCII = true;
|
|
200
356
|
|
|
201
357
|
if(s[start] != '\\')
|
|
202
358
|
{
|
|
203
|
-
|
|
359
|
+
result.push_back(checkChar(s, start++));
|
|
360
|
+
}
|
|
361
|
+
else if(start + 1 == end)
|
|
362
|
+
{
|
|
363
|
+
// Keep trailing backslash
|
|
364
|
+
++start;
|
|
365
|
+
result.push_back('\\');
|
|
204
366
|
}
|
|
205
367
|
else
|
|
206
368
|
{
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
211
|
-
switch(s[++start])
|
|
369
|
+
char c = s[++start];
|
|
370
|
+
|
|
371
|
+
switch(c)
|
|
212
372
|
{
|
|
213
|
-
case '\\':
|
|
214
|
-
case '\'':
|
|
215
|
-
case '"':
|
|
373
|
+
case '\\':
|
|
374
|
+
case '\'':
|
|
375
|
+
case '"':
|
|
376
|
+
case '?':
|
|
216
377
|
{
|
|
217
|
-
|
|
378
|
+
++start;
|
|
379
|
+
result.push_back(c);
|
|
218
380
|
break;
|
|
219
381
|
}
|
|
220
|
-
case '
|
|
382
|
+
case 'a':
|
|
221
383
|
{
|
|
222
384
|
++start;
|
|
223
|
-
|
|
385
|
+
result.push_back('\a');
|
|
224
386
|
break;
|
|
225
387
|
}
|
|
226
|
-
case '
|
|
388
|
+
case 'b':
|
|
227
389
|
{
|
|
228
390
|
++start;
|
|
229
|
-
|
|
391
|
+
result.push_back('\b');
|
|
230
392
|
break;
|
|
231
393
|
}
|
|
232
|
-
case '
|
|
394
|
+
case 'f':
|
|
233
395
|
{
|
|
234
396
|
++start;
|
|
235
|
-
|
|
397
|
+
result.push_back('\f');
|
|
236
398
|
break;
|
|
237
399
|
}
|
|
238
|
-
case '
|
|
400
|
+
case 'n':
|
|
239
401
|
{
|
|
240
402
|
++start;
|
|
241
|
-
|
|
403
|
+
result.push_back('\n');
|
|
242
404
|
break;
|
|
243
405
|
}
|
|
244
|
-
case '
|
|
406
|
+
case 'r':
|
|
245
407
|
{
|
|
246
408
|
++start;
|
|
247
|
-
|
|
409
|
+
result.push_back('\r');
|
|
410
|
+
break;
|
|
411
|
+
}
|
|
412
|
+
case 't':
|
|
413
|
+
{
|
|
414
|
+
++start;
|
|
415
|
+
result.push_back('\t');
|
|
416
|
+
break;
|
|
417
|
+
}
|
|
418
|
+
case 'v':
|
|
419
|
+
{
|
|
420
|
+
++start;
|
|
421
|
+
result.push_back('\v');
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
case 'u':
|
|
425
|
+
case 'U':
|
|
426
|
+
{
|
|
427
|
+
unsigned int codePoint = 0;
|
|
428
|
+
bool inBMP = (c == 'u');
|
|
429
|
+
int size = inBMP ? 4 : 8;
|
|
430
|
+
++start;
|
|
431
|
+
while(size > 0 && start < end)
|
|
432
|
+
{
|
|
433
|
+
c = s[start++];
|
|
434
|
+
int charVal = 0;
|
|
435
|
+
if(c >= '0' && c <= '9')
|
|
436
|
+
{
|
|
437
|
+
charVal = c - '0';
|
|
438
|
+
}
|
|
439
|
+
else if(c >= 'a' && c <= 'f')
|
|
440
|
+
{
|
|
441
|
+
charVal = 10 + (c - 'a');
|
|
442
|
+
}
|
|
443
|
+
else if(c >= 'A' && c <= 'F')
|
|
444
|
+
{
|
|
445
|
+
charVal = 10 + (c - 'A');
|
|
446
|
+
}
|
|
447
|
+
else
|
|
448
|
+
{
|
|
449
|
+
break; // while
|
|
450
|
+
}
|
|
451
|
+
codePoint = codePoint * 16 + static_cast<unsigned int>(charVal);
|
|
452
|
+
--size;
|
|
453
|
+
}
|
|
454
|
+
if(size > 0)
|
|
455
|
+
{
|
|
456
|
+
throw IllegalArgumentException(__FILE__, __LINE__,
|
|
457
|
+
"Invalid universal character name: too few hex digits");
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
appendUTF8(codePoint, result);
|
|
461
|
+
if(codePoint > 127)
|
|
462
|
+
{
|
|
463
|
+
pureASCII = false;
|
|
464
|
+
}
|
|
248
465
|
break;
|
|
249
466
|
}
|
|
250
467
|
case '0':
|
|
@@ -273,31 +490,71 @@ decodeChar(const string& s, string::size_type start, string::size_type end, stri
|
|
|
273
490
|
ostr << "octal value \\" << oct << val << dec << " (" << val << ") is out of range";
|
|
274
491
|
throw IllegalArgumentException(__FILE__, __LINE__, ostr.str());
|
|
275
492
|
}
|
|
276
|
-
|
|
493
|
+
result.push_back(static_cast<char>(val));
|
|
494
|
+
if(val > 127)
|
|
495
|
+
{
|
|
496
|
+
pureASCII = false;
|
|
497
|
+
}
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
case 'x':
|
|
501
|
+
{
|
|
502
|
+
int val = 0;
|
|
503
|
+
int size = 2;
|
|
504
|
+
++start;
|
|
505
|
+
while(size > 0 && start < end)
|
|
506
|
+
{
|
|
507
|
+
c = s[start++];
|
|
508
|
+
int charVal = 0;
|
|
509
|
+
if(c >= '0' && c <= '9')
|
|
510
|
+
{
|
|
511
|
+
charVal = c - '0';
|
|
512
|
+
}
|
|
513
|
+
else if(c >= 'a' && c <= 'f')
|
|
514
|
+
{
|
|
515
|
+
charVal = 10 + (c - 'a');
|
|
516
|
+
}
|
|
517
|
+
else if(c >= 'A' && c <= 'F')
|
|
518
|
+
{
|
|
519
|
+
charVal = 10 + (c - 'A');
|
|
520
|
+
}
|
|
521
|
+
else
|
|
522
|
+
{
|
|
523
|
+
--start; // move back
|
|
524
|
+
break; // while
|
|
525
|
+
}
|
|
526
|
+
val = val * 16 + charVal;
|
|
527
|
+
--size;
|
|
528
|
+
}
|
|
529
|
+
if(size == 2)
|
|
530
|
+
{
|
|
531
|
+
throw IllegalArgumentException(__FILE__, __LINE__,
|
|
532
|
+
"Invalid \\x escape sequence: no hex digit");
|
|
533
|
+
}
|
|
534
|
+
result.push_back(static_cast<char>(val));
|
|
535
|
+
if(val > 127)
|
|
536
|
+
{
|
|
537
|
+
pureASCII = false;
|
|
538
|
+
}
|
|
277
539
|
break;
|
|
278
540
|
}
|
|
279
541
|
default:
|
|
280
542
|
{
|
|
281
|
-
c
|
|
543
|
+
if(static_cast<unsigned char>(c) > 127)
|
|
544
|
+
{
|
|
545
|
+
pureASCII = false;
|
|
546
|
+
}
|
|
547
|
+
if(special.empty() || special.find(c) == string::npos)
|
|
548
|
+
{
|
|
549
|
+
result.push_back('\\'); // not in special, so we keep the backslash
|
|
550
|
+
}
|
|
551
|
+
result.push_back(checkChar(s, start++));
|
|
282
552
|
break;
|
|
283
553
|
}
|
|
284
554
|
}
|
|
285
555
|
}
|
|
286
556
|
nextStart = start;
|
|
287
|
-
return
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
//
|
|
291
|
-
// Remove escape sequences from s and append the result to sb.
|
|
292
|
-
// Return true if successful, false otherwise.
|
|
293
|
-
//
|
|
294
|
-
void
|
|
295
|
-
decodeString(const string& s, string::size_type start, string::size_type end, string& sb)
|
|
296
|
-
{
|
|
297
|
-
while(start < end)
|
|
298
|
-
{
|
|
299
|
-
sb.push_back(decodeChar(s, start, end, start));
|
|
300
|
-
}
|
|
557
|
+
return pureASCII;
|
|
301
558
|
}
|
|
302
559
|
|
|
303
560
|
}
|
|
@@ -306,15 +563,73 @@ decodeString(const string& s, string::size_type start, string::size_type end, st
|
|
|
306
563
|
// Remove escape sequences added by escapeString.
|
|
307
564
|
//
|
|
308
565
|
string
|
|
309
|
-
IceUtilInternal::unescapeString(const string& s, string::size_type start, string::size_type end)
|
|
566
|
+
IceUtilInternal::unescapeString(const string& s, string::size_type start, string::size_type end, const string& special)
|
|
310
567
|
{
|
|
311
568
|
assert(start <= end && end <= s.size());
|
|
312
569
|
|
|
313
|
-
string
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
570
|
+
for(string::size_type i = 0; i < special.size(); ++i)
|
|
571
|
+
{
|
|
572
|
+
if(static_cast<unsigned char>(special[i]) < 32 || static_cast<unsigned char>(special[i]) > 126)
|
|
573
|
+
{
|
|
574
|
+
throw IllegalArgumentException(__FILE__, __LINE__, "Special characters must be in ASCII range 32-126");
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// Optimization for strings without escapes
|
|
579
|
+
string::size_type p = s.find('\\', start);
|
|
580
|
+
if(p == string::npos || p >= end)
|
|
581
|
+
{
|
|
582
|
+
p = start;
|
|
583
|
+
while(p < end)
|
|
584
|
+
{
|
|
585
|
+
checkChar(s, p++);
|
|
586
|
+
}
|
|
587
|
+
return s.substr(start, end);
|
|
588
|
+
}
|
|
589
|
+
else
|
|
590
|
+
{
|
|
591
|
+
StringConverterPtr stringConverter = getProcessStringConverter();
|
|
592
|
+
|
|
593
|
+
const string* inputStringPtr = &s;
|
|
594
|
+
string u8s;
|
|
595
|
+
|
|
596
|
+
if(stringConverter)
|
|
597
|
+
{
|
|
598
|
+
bool inputIsPureASCII = true;
|
|
599
|
+
string::size_type i = start;
|
|
600
|
+
while(i < end && inputIsPureASCII)
|
|
601
|
+
{
|
|
602
|
+
inputIsPureASCII = static_cast<unsigned char>(s[i++]) <= 127;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
if(!inputIsPureASCII)
|
|
606
|
+
{
|
|
607
|
+
u8s = nativeToUTF8(s.substr(start, end), stringConverter);
|
|
608
|
+
inputStringPtr = &u8s;
|
|
609
|
+
start = 0;
|
|
610
|
+
end = u8s.size();
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
bool resultIsPureASCII = true;
|
|
615
|
+
string result;
|
|
616
|
+
result.reserve(end - start);
|
|
617
|
+
while(start < end)
|
|
618
|
+
{
|
|
619
|
+
if(decodeChar(*inputStringPtr, start, end, start, special, result))
|
|
620
|
+
{
|
|
621
|
+
resultIsPureASCII = false;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
if(stringConverter && !resultIsPureASCII)
|
|
626
|
+
{
|
|
627
|
+
// Need to convert from UTF-8 to Native
|
|
628
|
+
result = UTF8ToNative(result, stringConverter);
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
return result;
|
|
632
|
+
}
|
|
318
633
|
}
|
|
319
634
|
|
|
320
635
|
bool
|
|
@@ -332,7 +647,7 @@ IceUtilInternal::splitString(const string& str, const string& delim, vector<stri
|
|
|
332
647
|
quoteChar = str[pos++];
|
|
333
648
|
continue; // Skip the quote
|
|
334
649
|
}
|
|
335
|
-
else if(quoteChar == '\0' && str[pos] == '\\' && pos + 1 < length &&
|
|
650
|
+
else if(quoteChar == '\0' && str[pos] == '\\' && pos + 1 < length &&
|
|
336
651
|
(str[pos + 1] == '\'' || str[pos + 1] == '"'))
|
|
337
652
|
{
|
|
338
653
|
++pos;
|
|
@@ -360,7 +675,7 @@ IceUtilInternal::splitString(const string& str, const string& delim, vector<stri
|
|
|
360
675
|
continue;
|
|
361
676
|
}
|
|
362
677
|
}
|
|
363
|
-
|
|
678
|
+
|
|
364
679
|
if(pos < length)
|
|
365
680
|
{
|
|
366
681
|
elt += str[pos++];
|
|
@@ -441,7 +756,7 @@ IceUtilInternal::checkQuote(const string& s, string::size_type start)
|
|
|
441
756
|
//
|
|
442
757
|
// Match `s' against the pattern `pat'. A * in the pattern acts
|
|
443
758
|
// as a wildcard: it matches any non-empty sequence of characters.
|
|
444
|
-
// We match by hand here because it's portable across platforms
|
|
759
|
+
// We match by hand here because it's portable across platforms
|
|
445
760
|
// (whereas regex() isn't). Only one * per pattern is supported.
|
|
446
761
|
//
|
|
447
762
|
bool
|
|
@@ -500,67 +815,63 @@ IceUtilInternal::errorToString(int error, LPCVOID source)
|
|
|
500
815
|
{
|
|
501
816
|
if(error < WSABASEERR)
|
|
502
817
|
{
|
|
503
|
-
#ifdef
|
|
504
|
-
|
|
505
|
-
int size = 256;
|
|
506
|
-
IceUtil::ScopedArray<wchar_t> lpMsgBuf(new wchar_t[size]);
|
|
818
|
+
#ifdef ICE_OS_UWP
|
|
507
819
|
|
|
820
|
+
wstring lpMsgBuf(256, wchar_t());
|
|
508
821
|
DWORD stored = 0;
|
|
509
|
-
|
|
822
|
+
|
|
510
823
|
while(stored == 0)
|
|
511
824
|
{
|
|
512
825
|
stored = FormatMessageW(
|
|
513
826
|
FORMAT_MESSAGE_FROM_SYSTEM |
|
|
514
827
|
FORMAT_MESSAGE_IGNORE_INSERTS |
|
|
515
|
-
(source !=
|
|
828
|
+
(source != ICE_NULLPTR ? FORMAT_MESSAGE_FROM_HMODULE : 0),
|
|
516
829
|
source,
|
|
517
830
|
error,
|
|
518
831
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
|
519
|
-
lpMsgBuf.
|
|
520
|
-
size,
|
|
521
|
-
|
|
832
|
+
const_cast<wchar_t*>(lpMsgBuf.data()),
|
|
833
|
+
static_cast<int>(lpMsgBuf.size()),
|
|
834
|
+
ICE_NULLPTR);
|
|
522
835
|
|
|
523
836
|
if(stored == 0)
|
|
524
837
|
{
|
|
525
838
|
DWORD err = GetLastError();
|
|
526
839
|
if(err == ERROR_INSUFFICIENT_BUFFER)
|
|
527
840
|
{
|
|
528
|
-
if(size
|
|
841
|
+
if(lpMsgBuf.size() >= 65536)
|
|
529
842
|
{
|
|
530
843
|
break; // already at the max size
|
|
531
844
|
}
|
|
532
845
|
else
|
|
533
846
|
{
|
|
534
|
-
size
|
|
535
|
-
size = max(size, 65536);
|
|
536
|
-
lpMsgBuf.reset(new wchar_t[size]);
|
|
847
|
+
lpMsgBuf.resize(min<size_t>(lpMsgBuf.size() * 4, 65536));
|
|
537
848
|
}
|
|
538
849
|
}
|
|
539
850
|
else
|
|
540
851
|
{
|
|
541
852
|
break;
|
|
542
|
-
}
|
|
853
|
+
}
|
|
543
854
|
}
|
|
544
855
|
}
|
|
545
856
|
|
|
546
|
-
LPWSTR msg = lpMsgBuf.
|
|
857
|
+
LPWSTR msg = const_cast<wchar_t*>(lpMsgBuf.data());
|
|
547
858
|
|
|
548
859
|
#else
|
|
549
860
|
LPWSTR msg = 0;
|
|
550
|
-
|
|
861
|
+
|
|
551
862
|
DWORD stored = FormatMessageW(
|
|
552
863
|
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
|
553
864
|
FORMAT_MESSAGE_FROM_SYSTEM |
|
|
554
865
|
FORMAT_MESSAGE_IGNORE_INSERTS |
|
|
555
|
-
(source !=
|
|
866
|
+
(source != ICE_NULLPTR ? FORMAT_MESSAGE_FROM_HMODULE : 0),
|
|
556
867
|
source,
|
|
557
868
|
error,
|
|
558
869
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
|
559
870
|
reinterpret_cast<LPWSTR>(&msg),
|
|
560
871
|
0,
|
|
561
|
-
|
|
872
|
+
ICE_NULLPTR);
|
|
562
873
|
#endif
|
|
563
|
-
|
|
874
|
+
|
|
564
875
|
if(stored > 0)
|
|
565
876
|
{
|
|
566
877
|
assert(msg && wcslen(msg) > 0);
|
|
@@ -569,7 +880,7 @@ IceUtilInternal::errorToString(int error, LPCVOID source)
|
|
|
569
880
|
{
|
|
570
881
|
result = result.substr(0, result.length() - 2);
|
|
571
882
|
}
|
|
572
|
-
#ifndef
|
|
883
|
+
#ifndef ICE_OS_UWP
|
|
573
884
|
if(msg)
|
|
574
885
|
{
|
|
575
886
|
LocalFree(msg);
|
|
@@ -579,170 +890,164 @@ IceUtilInternal::errorToString(int error, LPCVOID source)
|
|
|
579
890
|
}
|
|
580
891
|
else
|
|
581
892
|
{
|
|
582
|
-
#ifndef ICE_OS_WINRT
|
|
583
|
-
if(msg)
|
|
584
|
-
{
|
|
585
|
-
LocalFree(msg);
|
|
586
|
-
}
|
|
587
|
-
#endif
|
|
588
893
|
ostringstream os;
|
|
589
894
|
os << "unknown error: " << error;
|
|
590
895
|
return os.str();
|
|
591
896
|
}
|
|
592
897
|
}
|
|
593
|
-
|
|
898
|
+
|
|
594
899
|
switch(error)
|
|
595
900
|
{
|
|
596
901
|
case WSAEINTR:
|
|
597
902
|
return "WSAEINTR";
|
|
598
|
-
|
|
903
|
+
|
|
599
904
|
case WSAEBADF:
|
|
600
905
|
return "WSAEBADF";
|
|
601
|
-
|
|
906
|
+
|
|
602
907
|
case WSAEACCES:
|
|
603
908
|
return "WSAEACCES";
|
|
604
|
-
|
|
909
|
+
|
|
605
910
|
case WSAEFAULT:
|
|
606
911
|
return "WSAEFAULT";
|
|
607
|
-
|
|
912
|
+
|
|
608
913
|
case WSAEINVAL:
|
|
609
914
|
return "WSAEINVAL";
|
|
610
|
-
|
|
915
|
+
|
|
611
916
|
case WSAEMFILE:
|
|
612
917
|
return "WSAEMFILE";
|
|
613
|
-
|
|
918
|
+
|
|
614
919
|
case WSAEWOULDBLOCK:
|
|
615
920
|
return "WSAEWOULDBLOCK";
|
|
616
|
-
|
|
921
|
+
|
|
617
922
|
case WSAEINPROGRESS:
|
|
618
923
|
return "WSAEINPROGRESS";
|
|
619
|
-
|
|
924
|
+
|
|
620
925
|
case WSAEALREADY:
|
|
621
926
|
return "WSAEALREADY";
|
|
622
|
-
|
|
927
|
+
|
|
623
928
|
case WSAENOTSOCK:
|
|
624
929
|
return "WSAENOTSOCK";
|
|
625
|
-
|
|
930
|
+
|
|
626
931
|
case WSAEDESTADDRREQ:
|
|
627
932
|
return "WSAEDESTADDRREQ";
|
|
628
|
-
|
|
933
|
+
|
|
629
934
|
case WSAEMSGSIZE:
|
|
630
935
|
return "WSAEMSGSIZE";
|
|
631
|
-
|
|
936
|
+
|
|
632
937
|
case WSAEPROTOTYPE:
|
|
633
938
|
return "WSAEPROTOTYPE";
|
|
634
|
-
|
|
939
|
+
|
|
635
940
|
case WSAENOPROTOOPT:
|
|
636
941
|
return "WSAENOPROTOOPT";
|
|
637
|
-
|
|
942
|
+
|
|
638
943
|
case WSAEPROTONOSUPPORT:
|
|
639
944
|
return "WSAEPROTONOSUPPORT";
|
|
640
|
-
|
|
945
|
+
|
|
641
946
|
case WSAESOCKTNOSUPPORT:
|
|
642
947
|
return "WSAESOCKTNOSUPPORT";
|
|
643
|
-
|
|
948
|
+
|
|
644
949
|
case WSAEOPNOTSUPP:
|
|
645
950
|
return "WSAEOPNOTSUPP";
|
|
646
|
-
|
|
951
|
+
|
|
647
952
|
case WSAEPFNOSUPPORT:
|
|
648
953
|
return "WSAEPFNOSUPPORT";
|
|
649
|
-
|
|
954
|
+
|
|
650
955
|
case WSAEAFNOSUPPORT:
|
|
651
956
|
return "WSAEAFNOSUPPORT";
|
|
652
|
-
|
|
957
|
+
|
|
653
958
|
case WSAEADDRINUSE:
|
|
654
959
|
return "WSAEADDRINUSE";
|
|
655
|
-
|
|
960
|
+
|
|
656
961
|
case WSAEADDRNOTAVAIL:
|
|
657
962
|
return "WSAEADDRNOTAVAIL";
|
|
658
|
-
|
|
963
|
+
|
|
659
964
|
case WSAENETDOWN:
|
|
660
965
|
return "WSAENETDOWN";
|
|
661
|
-
|
|
966
|
+
|
|
662
967
|
case WSAENETUNREACH:
|
|
663
968
|
return "WSAENETUNREACH";
|
|
664
|
-
|
|
969
|
+
|
|
665
970
|
case WSAENETRESET:
|
|
666
971
|
return "WSAENETRESET";
|
|
667
|
-
|
|
972
|
+
|
|
668
973
|
case WSAECONNABORTED:
|
|
669
974
|
return "WSAECONNABORTED";
|
|
670
|
-
|
|
975
|
+
|
|
671
976
|
case WSAECONNRESET:
|
|
672
977
|
return "WSAECONNRESET";
|
|
673
|
-
|
|
978
|
+
|
|
674
979
|
case WSAENOBUFS:
|
|
675
980
|
return "WSAENOBUFS";
|
|
676
|
-
|
|
981
|
+
|
|
677
982
|
case WSAEISCONN:
|
|
678
983
|
return "WSAEISCONN";
|
|
679
|
-
|
|
984
|
+
|
|
680
985
|
case WSAENOTCONN:
|
|
681
986
|
return "WSAENOTCONN";
|
|
682
|
-
|
|
987
|
+
|
|
683
988
|
case WSAESHUTDOWN:
|
|
684
989
|
return "WSAESHUTDOWN";
|
|
685
|
-
|
|
990
|
+
|
|
686
991
|
case WSAETOOMANYREFS:
|
|
687
992
|
return "WSAETOOMANYREFS";
|
|
688
|
-
|
|
993
|
+
|
|
689
994
|
case WSAETIMEDOUT:
|
|
690
995
|
return "WSAETIMEDOUT";
|
|
691
|
-
|
|
996
|
+
|
|
692
997
|
case WSAECONNREFUSED:
|
|
693
998
|
return "WSAECONNREFUSED";
|
|
694
|
-
|
|
999
|
+
|
|
695
1000
|
case WSAELOOP:
|
|
696
1001
|
return "WSAELOOP";
|
|
697
|
-
|
|
1002
|
+
|
|
698
1003
|
case WSAENAMETOOLONG:
|
|
699
1004
|
return "WSAENAMETOOLONG";
|
|
700
|
-
|
|
1005
|
+
|
|
701
1006
|
case WSAEHOSTDOWN:
|
|
702
1007
|
return "WSAEHOSTDOWN";
|
|
703
|
-
|
|
1008
|
+
|
|
704
1009
|
case WSAEHOSTUNREACH:
|
|
705
1010
|
return "WSAEHOSTUNREACH";
|
|
706
|
-
|
|
1011
|
+
|
|
707
1012
|
case WSAENOTEMPTY:
|
|
708
1013
|
return "WSAENOTEMPTY";
|
|
709
|
-
|
|
1014
|
+
|
|
710
1015
|
case WSAEPROCLIM:
|
|
711
1016
|
return "WSAEPROCLIM";
|
|
712
|
-
|
|
1017
|
+
|
|
713
1018
|
case WSAEUSERS:
|
|
714
1019
|
return "WSAEUSERS";
|
|
715
|
-
|
|
1020
|
+
|
|
716
1021
|
case WSAEDQUOT:
|
|
717
1022
|
return "WSAEDQUOT";
|
|
718
|
-
|
|
1023
|
+
|
|
719
1024
|
case WSAESTALE:
|
|
720
1025
|
return "WSAESTALE";
|
|
721
|
-
|
|
1026
|
+
|
|
722
1027
|
case WSAEREMOTE:
|
|
723
1028
|
return "WSAEREMOTE";
|
|
724
|
-
|
|
1029
|
+
|
|
725
1030
|
case WSAEDISCON:
|
|
726
1031
|
return "WSAEDISCON";
|
|
727
|
-
|
|
1032
|
+
|
|
728
1033
|
case WSASYSNOTREADY:
|
|
729
1034
|
return "WSASYSNOTREADY";
|
|
730
|
-
|
|
1035
|
+
|
|
731
1036
|
case WSAVERNOTSUPPORTED:
|
|
732
1037
|
return "WSAVERNOTSUPPORTED";
|
|
733
|
-
|
|
1038
|
+
|
|
734
1039
|
case WSANOTINITIALISED:
|
|
735
1040
|
return "WSANOTINITIALISED";
|
|
736
|
-
|
|
1041
|
+
|
|
737
1042
|
case WSAHOST_NOT_FOUND:
|
|
738
1043
|
return "WSAHOST_NOT_FOUND";
|
|
739
|
-
|
|
1044
|
+
|
|
740
1045
|
case WSATRY_AGAIN:
|
|
741
1046
|
return "WSATRY_AGAIN";
|
|
742
|
-
|
|
1047
|
+
|
|
743
1048
|
case WSANO_RECOVERY:
|
|
744
1049
|
return "WSANO_RECOVERY";
|
|
745
|
-
|
|
1050
|
+
|
|
746
1051
|
case WSANO_DATA:
|
|
747
1052
|
return "WSANO_DATA";
|
|
748
1053
|
|