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.
|
|
@@ -13,14 +13,21 @@
|
|
|
13
13
|
#include <Ice/LoggerF.h>
|
|
14
14
|
#include <Ice/TraceLevelsF.h>
|
|
15
15
|
|
|
16
|
-
namespace
|
|
16
|
+
namespace Ice
|
|
17
17
|
{
|
|
18
18
|
|
|
19
|
-
class
|
|
19
|
+
class OutputStream;
|
|
20
|
+
class InputStream;
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
namespace IceInternal
|
|
25
|
+
{
|
|
20
26
|
|
|
21
|
-
void traceSend(const
|
|
22
|
-
void traceRecv(const
|
|
23
|
-
void trace(const char*, const
|
|
27
|
+
void traceSend(const ::Ice::OutputStream&, const ::Ice::LoggerPtr&, const TraceLevelsPtr&);
|
|
28
|
+
void traceRecv(const ::Ice::InputStream&, const ::Ice::LoggerPtr&, const TraceLevelsPtr&);
|
|
29
|
+
void trace(const char*, const ::Ice::OutputStream&, const ::Ice::LoggerPtr&, const TraceLevelsPtr&);
|
|
30
|
+
void trace(const char*, const ::Ice::InputStream&, const ::Ice::LoggerPtr&, const TraceLevelsPtr&);
|
|
24
31
|
void traceSlicing(const char*, const ::std::string&, const char *, const ::Ice::LoggerPtr&);
|
|
25
32
|
|
|
26
33
|
}
|
|
@@ -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.
|
|
@@ -21,4 +21,3 @@ IceInternal::Transceiver::bind()
|
|
|
21
21
|
assert(false);
|
|
22
22
|
return 0;
|
|
23
23
|
}
|
|
24
|
-
|
|
@@ -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.
|
|
@@ -21,23 +21,24 @@ namespace IceInternal
|
|
|
21
21
|
|
|
22
22
|
class Buffer;
|
|
23
23
|
|
|
24
|
-
class ICE_API Transceiver : virtual
|
|
24
|
+
class ICE_API Transceiver : public virtual ::IceUtil::Shared
|
|
25
25
|
{
|
|
26
26
|
public:
|
|
27
27
|
|
|
28
28
|
virtual NativeInfoPtr getNativeInfo() = 0;
|
|
29
29
|
|
|
30
|
-
virtual SocketOperation initialize(Buffer&, Buffer
|
|
30
|
+
virtual SocketOperation initialize(Buffer&, Buffer&) = 0;
|
|
31
31
|
virtual SocketOperation closing(bool, const Ice::LocalException&) = 0;
|
|
32
|
+
|
|
32
33
|
virtual void close() = 0;
|
|
33
34
|
virtual EndpointIPtr bind();
|
|
34
35
|
virtual SocketOperation write(Buffer&) = 0;
|
|
35
|
-
virtual SocketOperation read(Buffer
|
|
36
|
-
#if defined(ICE_USE_IOCP) || defined(
|
|
36
|
+
virtual SocketOperation read(Buffer&) = 0;
|
|
37
|
+
#if defined(ICE_USE_IOCP) || defined(ICE_OS_UWP)
|
|
37
38
|
virtual bool startWrite(Buffer&) = 0;
|
|
38
39
|
virtual void finishWrite(Buffer&) = 0;
|
|
39
40
|
virtual void startRead(Buffer&) = 0;
|
|
40
|
-
virtual void finishRead(Buffer
|
|
41
|
+
virtual void finishRead(Buffer&) = 0;
|
|
41
42
|
#endif
|
|
42
43
|
|
|
43
44
|
virtual std::string protocol() const = 0;
|
|
@@ -45,7 +46,7 @@ public:
|
|
|
45
46
|
virtual std::string toDetailedString() const = 0;
|
|
46
47
|
virtual Ice::ConnectionInfoPtr getInfo() const = 0;
|
|
47
48
|
virtual void checkSendSize(const Buffer&) = 0;
|
|
48
|
-
virtual void setBufferSize(int
|
|
49
|
+
virtual void setBufferSize(int, int) = 0;
|
|
49
50
|
};
|
|
50
51
|
|
|
51
52
|
}
|
|
@@ -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.
|
|
@@ -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.
|
|
@@ -71,12 +71,6 @@ IceInternal::UdpConnector::operator==(const Connector& r) const
|
|
|
71
71
|
return true;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
bool
|
|
75
|
-
IceInternal::UdpConnector::operator!=(const Connector& r) const
|
|
76
|
-
{
|
|
77
|
-
return !operator==(r);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
74
|
bool
|
|
81
75
|
IceInternal::UdpConnector::operator<(const Connector& r) const
|
|
82
76
|
{
|
|
@@ -130,7 +124,7 @@ IceInternal::UdpConnector::UdpConnector(const ProtocolInstancePtr& instance, con
|
|
|
130
124
|
const std::string& connectionId) :
|
|
131
125
|
_instance(instance),
|
|
132
126
|
_addr(addr),
|
|
133
|
-
#ifndef
|
|
127
|
+
#ifndef ICE_OS_UWP
|
|
134
128
|
_sourceAddr(sourceAddr),
|
|
135
129
|
#endif
|
|
136
130
|
_mcastInterface(mcastInterface),
|
|
@@ -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.
|
|
@@ -28,7 +28,6 @@ public:
|
|
|
28
28
|
virtual std::string toString() const;
|
|
29
29
|
|
|
30
30
|
virtual bool operator==(const Connector&) const;
|
|
31
|
-
virtual bool operator!=(const Connector&) const;
|
|
32
31
|
virtual bool operator<(const Connector&) const;
|
|
33
32
|
|
|
34
33
|
private:
|
|
@@ -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,7 +11,8 @@
|
|
|
11
11
|
#include <Ice/Network.h>
|
|
12
12
|
#include <Ice/UdpConnector.h>
|
|
13
13
|
#include <Ice/UdpTransceiver.h>
|
|
14
|
-
#include <Ice/
|
|
14
|
+
#include <Ice/OutputStream.h>
|
|
15
|
+
#include <Ice/InputStream.h>
|
|
15
16
|
#include <Ice/LocalException.h>
|
|
16
17
|
#include <Ice/Protocol.h>
|
|
17
18
|
#include <Ice/ProtocolInstance.h>
|
|
@@ -22,7 +23,9 @@ using namespace std;
|
|
|
22
23
|
using namespace Ice;
|
|
23
24
|
using namespace IceInternal;
|
|
24
25
|
|
|
26
|
+
#ifndef ICE_CPP11_MAPPING
|
|
25
27
|
IceUtil::Shared* IceInternal::upCast(UdpEndpointI* p) { return p; }
|
|
28
|
+
#endif
|
|
26
29
|
|
|
27
30
|
extern "C"
|
|
28
31
|
{
|
|
@@ -35,6 +38,26 @@ createIceUDP(const CommunicatorPtr& c, const string&, const StringSeq&)
|
|
|
35
38
|
|
|
36
39
|
}
|
|
37
40
|
|
|
41
|
+
namespace Ice
|
|
42
|
+
{
|
|
43
|
+
|
|
44
|
+
ICE_API void
|
|
45
|
+
registerIceUDP(bool loadOnInitialize)
|
|
46
|
+
{
|
|
47
|
+
Ice::registerPluginFactory("IceUDP", createIceUDP, loadOnInitialize);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//
|
|
53
|
+
// Objective-C function to allow Objective-C programs to register plugin.
|
|
54
|
+
//
|
|
55
|
+
extern "C" ICE_API void
|
|
56
|
+
ICEregisterIceUDP(bool loadOnInitialize)
|
|
57
|
+
{
|
|
58
|
+
Ice::registerIceUDP(loadOnInitialize);
|
|
59
|
+
}
|
|
60
|
+
|
|
38
61
|
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, const string& host, Int port,
|
|
39
62
|
const Address& sourceAddr, const string& mcastInterface, Int mttl, bool conn,
|
|
40
63
|
const string& conId, bool co) :
|
|
@@ -54,13 +77,13 @@ IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance) :
|
|
|
54
77
|
{
|
|
55
78
|
}
|
|
56
79
|
|
|
57
|
-
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance,
|
|
80
|
+
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, InputStream* s) :
|
|
58
81
|
IPEndpointI(instance, s),
|
|
59
82
|
_mcastTtl(-1),
|
|
60
83
|
_connect(false),
|
|
61
84
|
_compress(false)
|
|
62
85
|
{
|
|
63
|
-
if(s->
|
|
86
|
+
if(s->getEncoding() == Ice::Encoding_1_0)
|
|
64
87
|
{
|
|
65
88
|
Ice::Byte b;
|
|
66
89
|
s->read(b);
|
|
@@ -73,10 +96,25 @@ IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, Bas
|
|
|
73
96
|
s->read(const_cast<bool&>(_compress));
|
|
74
97
|
}
|
|
75
98
|
|
|
99
|
+
void
|
|
100
|
+
IceInternal::UdpEndpointI::streamWriteImpl(OutputStream* s) const
|
|
101
|
+
{
|
|
102
|
+
IPEndpointI::streamWriteImpl(s);
|
|
103
|
+
if(s->getEncoding() == Ice::Encoding_1_0)
|
|
104
|
+
{
|
|
105
|
+
s->write(Ice::Protocol_1_0);
|
|
106
|
+
s->write(Ice::Encoding_1_0);
|
|
107
|
+
}
|
|
108
|
+
// Not transmitted.
|
|
109
|
+
//s->write(_connect);
|
|
110
|
+
s->write(_compress);
|
|
111
|
+
}
|
|
112
|
+
|
|
76
113
|
EndpointInfoPtr
|
|
77
114
|
IceInternal::UdpEndpointI::getInfo() const
|
|
78
115
|
{
|
|
79
|
-
Ice::UDPEndpointInfoPtr info =
|
|
116
|
+
Ice::UDPEndpointInfoPtr info = ICE_MAKE_SHARED(InfoI<Ice::UDPEndpointInfo>,
|
|
117
|
+
ICE_DYNAMIC_CAST(UdpEndpointI, ICE_SHARED_FROM_CONST_THIS(UdpEndpointI)));
|
|
80
118
|
fillEndpointInfo(info.get());
|
|
81
119
|
return info;
|
|
82
120
|
}
|
|
@@ -90,7 +128,7 @@ IceInternal::UdpEndpointI::timeout() const
|
|
|
90
128
|
EndpointIPtr
|
|
91
129
|
IceInternal::UdpEndpointI::timeout(Int) const
|
|
92
130
|
{
|
|
93
|
-
return
|
|
131
|
+
return ICE_SHARED_FROM_CONST_THIS(UdpEndpointI);
|
|
94
132
|
}
|
|
95
133
|
|
|
96
134
|
bool
|
|
@@ -104,12 +142,12 @@ IceInternal::UdpEndpointI::compress(bool compress) const
|
|
|
104
142
|
{
|
|
105
143
|
if(compress == _compress)
|
|
106
144
|
{
|
|
107
|
-
return
|
|
145
|
+
return ICE_SHARED_FROM_CONST_THIS(UdpEndpointI);
|
|
108
146
|
}
|
|
109
147
|
else
|
|
110
148
|
{
|
|
111
|
-
return
|
|
112
|
-
|
|
149
|
+
return ICE_MAKE_SHARED(UdpEndpointI, _instance, _host, _port, _sourceAddr, _mcastInterface, _mcastTtl,
|
|
150
|
+
_connect, _connectionId, compress);
|
|
113
151
|
}
|
|
114
152
|
}
|
|
115
153
|
|
|
@@ -122,7 +160,8 @@ IceInternal::UdpEndpointI::datagram() const
|
|
|
122
160
|
TransceiverPtr
|
|
123
161
|
IceInternal::UdpEndpointI::transceiver() const
|
|
124
162
|
{
|
|
125
|
-
return new UdpTransceiver(
|
|
163
|
+
return new UdpTransceiver(ICE_DYNAMIC_CAST(UdpEndpointI, ICE_SHARED_FROM_CONST_THIS(UdpEndpointI)), _instance,
|
|
164
|
+
_host, _port, _mcastInterface, _connect);
|
|
126
165
|
}
|
|
127
166
|
|
|
128
167
|
AcceptorPtr
|
|
@@ -134,8 +173,36 @@ IceInternal::UdpEndpointI::acceptor(const string&) const
|
|
|
134
173
|
UdpEndpointIPtr
|
|
135
174
|
IceInternal::UdpEndpointI::endpoint(const UdpTransceiverPtr& transceiver) const
|
|
136
175
|
{
|
|
137
|
-
|
|
138
|
-
|
|
176
|
+
int port = transceiver->effectivePort();
|
|
177
|
+
if(port == _port)
|
|
178
|
+
{
|
|
179
|
+
return ICE_DYNAMIC_CAST(UdpEndpointI, ICE_SHARED_FROM_CONST_THIS(UdpEndpointI));
|
|
180
|
+
}
|
|
181
|
+
else
|
|
182
|
+
{
|
|
183
|
+
return ICE_MAKE_SHARED(UdpEndpointI, _instance, _host, port, _sourceAddr, _mcastInterface,_mcastTtl, _connect,
|
|
184
|
+
_connectionId, _compress);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
void
|
|
189
|
+
IceInternal::UdpEndpointI::initWithOptions(vector<string>& args, bool oaEndpoint)
|
|
190
|
+
{
|
|
191
|
+
IPEndpointI::initWithOptions(args, oaEndpoint);
|
|
192
|
+
|
|
193
|
+
if(_mcastInterface == "*")
|
|
194
|
+
{
|
|
195
|
+
if(oaEndpoint)
|
|
196
|
+
{
|
|
197
|
+
const_cast<string&>(_mcastInterface) = string();
|
|
198
|
+
}
|
|
199
|
+
else
|
|
200
|
+
{
|
|
201
|
+
Ice::EndpointParseException ex(__FILE__, __LINE__);
|
|
202
|
+
ex.str = "`--interface *' not valid for proxy endpoint `" + toString() + "'";
|
|
203
|
+
throw ex;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
139
206
|
}
|
|
140
207
|
|
|
141
208
|
string
|
|
@@ -175,7 +242,11 @@ IceInternal::UdpEndpointI::options() const
|
|
|
175
242
|
}
|
|
176
243
|
|
|
177
244
|
bool
|
|
245
|
+
#ifdef ICE_CPP11_MAPPING
|
|
246
|
+
IceInternal::UdpEndpointI::operator==(const Endpoint& r) const
|
|
247
|
+
#else
|
|
178
248
|
IceInternal::UdpEndpointI::operator==(const LocalObject& r) const
|
|
249
|
+
#endif
|
|
179
250
|
{
|
|
180
251
|
if(!IPEndpointI::operator==(r))
|
|
181
252
|
{
|
|
@@ -217,7 +288,11 @@ IceInternal::UdpEndpointI::operator==(const LocalObject& r) const
|
|
|
217
288
|
}
|
|
218
289
|
|
|
219
290
|
bool
|
|
291
|
+
#ifdef ICE_CPP11_MAPPING
|
|
292
|
+
IceInternal::UdpEndpointI::operator<(const Endpoint& r) const
|
|
293
|
+
#else
|
|
220
294
|
IceInternal::UdpEndpointI::operator<(const LocalObject& r) const
|
|
295
|
+
#endif
|
|
221
296
|
{
|
|
222
297
|
const UdpEndpointI* p = dynamic_cast<const UdpEndpointI*>(&r);
|
|
223
298
|
if(!p)
|
|
@@ -274,20 +349,6 @@ IceInternal::UdpEndpointI::operator<(const LocalObject& r) const
|
|
|
274
349
|
return IPEndpointI::operator<(r);
|
|
275
350
|
}
|
|
276
351
|
|
|
277
|
-
void
|
|
278
|
-
IceInternal::UdpEndpointI::streamWriteImpl(BasicStream* s) const
|
|
279
|
-
{
|
|
280
|
-
IPEndpointI::streamWriteImpl(s);
|
|
281
|
-
if(s->getWriteEncoding() == Ice::Encoding_1_0)
|
|
282
|
-
{
|
|
283
|
-
s->write(Ice::Protocol_1_0);
|
|
284
|
-
s->write(Ice::Encoding_1_0);
|
|
285
|
-
}
|
|
286
|
-
// Not transmitted.
|
|
287
|
-
//s->write(_connect);
|
|
288
|
-
s->write(_compress);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
352
|
void
|
|
292
353
|
IceInternal::UdpEndpointI::hashInit(Ice::Int& h) const
|
|
293
354
|
{
|
|
@@ -406,8 +467,8 @@ IceInternal::UdpEndpointI::createConnector(const Address& address, const Network
|
|
|
406
467
|
IPEndpointIPtr
|
|
407
468
|
IceInternal::UdpEndpointI::createEndpoint(const string& host, int port, const string& connectionId) const
|
|
408
469
|
{
|
|
409
|
-
return
|
|
410
|
-
|
|
470
|
+
return ICE_MAKE_SHARED(UdpEndpointI, _instance, host, port, _sourceAddr, _mcastInterface, _mcastTtl, _connect,
|
|
471
|
+
connectionId, _compress);
|
|
411
472
|
}
|
|
412
473
|
|
|
413
474
|
IceInternal::UdpEndpointFactory::UdpEndpointFactory(const ProtocolInstancePtr& instance) : _instance(instance)
|
|
@@ -433,15 +494,15 @@ IceInternal::UdpEndpointFactory::protocol() const
|
|
|
433
494
|
EndpointIPtr
|
|
434
495
|
IceInternal::UdpEndpointFactory::create(vector<string>& args, bool oaEndpoint) const
|
|
435
496
|
{
|
|
436
|
-
IPEndpointIPtr endpt =
|
|
497
|
+
IPEndpointIPtr endpt = ICE_MAKE_SHARED(UdpEndpointI, _instance);
|
|
437
498
|
endpt->initWithOptions(args, oaEndpoint);
|
|
438
499
|
return endpt;
|
|
439
500
|
}
|
|
440
501
|
|
|
441
502
|
EndpointIPtr
|
|
442
|
-
IceInternal::UdpEndpointFactory::read(
|
|
503
|
+
IceInternal::UdpEndpointFactory::read(InputStream* s) const
|
|
443
504
|
{
|
|
444
|
-
return
|
|
505
|
+
return ICE_MAKE_SHARED(UdpEndpointI, _instance, s);
|
|
445
506
|
}
|
|
446
507
|
|
|
447
508
|
void
|
|
@@ -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.
|
|
@@ -25,7 +25,9 @@ public:
|
|
|
25
25
|
UdpEndpointI(const ProtocolInstancePtr&, const std::string&, Ice::Int, const Address&, const std::string&,
|
|
26
26
|
Ice::Int, bool, const std::string&, bool);
|
|
27
27
|
UdpEndpointI(const ProtocolInstancePtr&);
|
|
28
|
-
UdpEndpointI(const ProtocolInstancePtr&,
|
|
28
|
+
UdpEndpointI(const ProtocolInstancePtr&, Ice::InputStream*);
|
|
29
|
+
|
|
30
|
+
virtual void streamWriteImpl(Ice::OutputStream*) const;
|
|
29
31
|
|
|
30
32
|
virtual Ice::EndpointInfoPtr getInfo() const;
|
|
31
33
|
|
|
@@ -39,16 +41,22 @@ public:
|
|
|
39
41
|
virtual AcceptorPtr acceptor(const std::string&) const;
|
|
40
42
|
virtual std::string options() const;
|
|
41
43
|
|
|
44
|
+
#ifdef ICE_CPP11_MAPPING
|
|
45
|
+
virtual bool operator==(const Ice::Endpoint&) const;
|
|
46
|
+
virtual bool operator<(const Ice::Endpoint&) const;
|
|
47
|
+
#else
|
|
42
48
|
virtual bool operator==(const Ice::LocalObject&) const;
|
|
43
49
|
virtual bool operator<(const Ice::LocalObject&) const;
|
|
50
|
+
#endif
|
|
44
51
|
|
|
45
52
|
UdpEndpointIPtr endpoint(const UdpTransceiverPtr&) const;
|
|
46
53
|
|
|
47
54
|
using IPEndpointI::connectionId;
|
|
48
55
|
|
|
56
|
+
virtual void initWithOptions(std::vector<std::string>&, bool);
|
|
57
|
+
|
|
49
58
|
protected:
|
|
50
59
|
|
|
51
|
-
virtual void streamWriteImpl(BasicStream*) const;
|
|
52
60
|
virtual void hashInit(Ice::Int&) const;
|
|
53
61
|
virtual void fillEndpointInfo(Ice::IPEndpointInfo*) const;
|
|
54
62
|
virtual bool checkOption(const std::string&, const std::string&, const std::string&);
|
|
@@ -77,7 +85,7 @@ public:
|
|
|
77
85
|
virtual Ice::Short type() const;
|
|
78
86
|
virtual std::string protocol() const;
|
|
79
87
|
virtual EndpointIPtr create(std::vector<std::string>&, bool) const;
|
|
80
|
-
virtual EndpointIPtr read(
|
|
88
|
+
virtual EndpointIPtr read(Ice::InputStream*) const;
|
|
81
89
|
virtual void destroy();
|
|
82
90
|
|
|
83
91
|
virtual EndpointFactoryPtr clone(const ProtocolInstancePtr&) const;
|
|
@@ -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.
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
#include <Ice/Properties.h>
|
|
18
18
|
#include <IceUtil/StringUtil.h>
|
|
19
19
|
|
|
20
|
-
#ifdef
|
|
20
|
+
#ifdef ICE_OS_UWP
|
|
21
21
|
# include <ppltasks.h> // For Concurrency::task
|
|
22
22
|
#endif
|
|
23
23
|
|
|
24
24
|
using namespace std;
|
|
25
25
|
using namespace Ice;
|
|
26
26
|
using namespace IceInternal;
|
|
27
|
-
#ifdef
|
|
27
|
+
#ifdef ICE_OS_UWP
|
|
28
28
|
using namespace Platform;
|
|
29
29
|
using namespace Windows::Foundation;
|
|
30
30
|
using namespace Windows::Storage::Streams;
|
|
@@ -40,11 +40,11 @@ IceInternal::UdpTransceiver::getNativeInfo()
|
|
|
40
40
|
return this;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
#if defined(ICE_USE_IOCP)
|
|
43
|
+
#if defined(ICE_USE_IOCP) || defined(ICE_OS_UWP)
|
|
45
44
|
AsyncInfo*
|
|
46
45
|
IceInternal::UdpTransceiver::getAsyncInfo(SocketOperation status)
|
|
47
46
|
{
|
|
47
|
+
#if defined(ICE_USE_IOCP)
|
|
48
48
|
switch(status)
|
|
49
49
|
{
|
|
50
50
|
case SocketOperationRead:
|
|
@@ -55,31 +55,14 @@ IceInternal::UdpTransceiver::getAsyncInfo(SocketOperation status)
|
|
|
55
55
|
assert(false);
|
|
56
56
|
return 0;
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
IceInternal::UdpTransceiver::setCompletedHandler(SocketOperationCompletedHandler^ handler)
|
|
62
|
-
{
|
|
63
|
-
_completedHandler = handler;
|
|
64
|
-
_writeOperationCompletedHandler = ref new AsyncOperationCompletedHandler<unsigned int>(
|
|
65
|
-
[=] (IAsyncOperation<unsigned int>^ operation, Windows::Foundation::AsyncStatus status)
|
|
66
|
-
{
|
|
67
|
-
if(status != Windows::Foundation::AsyncStatus::Completed)
|
|
68
|
-
{
|
|
69
|
-
_write.count = SOCKET_ERROR;
|
|
70
|
-
_write.error = operation->ErrorCode.Value;
|
|
71
|
-
}
|
|
72
|
-
else
|
|
73
|
-
{
|
|
74
|
-
_write.count = static_cast<int>(operation->GetResults());
|
|
75
|
-
}
|
|
76
|
-
_completedHandler(SocketOperationWrite);
|
|
77
|
-
});
|
|
58
|
+
#elif defined(ICE_OS_UWP)
|
|
59
|
+
return &_write;
|
|
60
|
+
#endif
|
|
78
61
|
}
|
|
79
62
|
#endif
|
|
80
63
|
|
|
81
64
|
SocketOperation
|
|
82
|
-
IceInternal::UdpTransceiver::initialize(Buffer& /*readBuffer*/, Buffer& /*writeBuffer
|
|
65
|
+
IceInternal::UdpTransceiver::initialize(Buffer& /*readBuffer*/, Buffer& /*writeBuffer*/)
|
|
83
66
|
{
|
|
84
67
|
if(_state == StateNeedConnect)
|
|
85
68
|
{
|
|
@@ -90,10 +73,18 @@ IceInternal::UdpTransceiver::initialize(Buffer& /*readBuffer*/, Buffer& /*writeB
|
|
|
90
73
|
{
|
|
91
74
|
#if defined(ICE_USE_IOCP)
|
|
92
75
|
doFinishConnectAsync(_fd, _write);
|
|
93
|
-
#elif defined(
|
|
76
|
+
#elif defined(ICE_OS_UWP)
|
|
94
77
|
if(_write.count == SOCKET_ERROR)
|
|
95
78
|
{
|
|
96
|
-
|
|
79
|
+
try
|
|
80
|
+
{
|
|
81
|
+
checkConnectErrorCode(__FILE__, __LINE__, _write.error);
|
|
82
|
+
}
|
|
83
|
+
catch(Ice::DNSException& ex)
|
|
84
|
+
{
|
|
85
|
+
ex.host = wstringToString(_addr.host->RawName->Data(), Ice::getProcessStringConverter());
|
|
86
|
+
throw;
|
|
87
|
+
}
|
|
97
88
|
}
|
|
98
89
|
#else
|
|
99
90
|
doFinishConnect(_fd);
|
|
@@ -115,16 +106,15 @@ IceInternal::UdpTransceiver::closing(bool, const Ice::LocalException&)
|
|
|
115
106
|
void
|
|
116
107
|
IceInternal::UdpTransceiver::close()
|
|
117
108
|
{
|
|
118
|
-
#ifdef
|
|
109
|
+
#ifdef ICE_OS_UWP
|
|
119
110
|
IceUtil::Mutex::Lock lock(_mutex);
|
|
120
111
|
if(_readPending)
|
|
121
112
|
{
|
|
122
113
|
assert(_received.empty());
|
|
123
|
-
|
|
114
|
+
completed(SocketOperationRead);
|
|
124
115
|
_readPending = false;
|
|
125
116
|
}
|
|
126
117
|
_received.clear();
|
|
127
|
-
_completedHandler = nullptr;
|
|
128
118
|
#endif
|
|
129
119
|
|
|
130
120
|
assert(_fd != INVALID_SOCKET);
|
|
@@ -149,10 +139,10 @@ IceInternal::UdpTransceiver::bind()
|
|
|
149
139
|
// address won't be the multicast address and the client will
|
|
150
140
|
// therefore reject the datagram.
|
|
151
141
|
//
|
|
152
|
-
const_cast<Address&>(_addr) = getAddressForServer("", _port, getProtocolSupport(_addr), false);
|
|
142
|
+
const_cast<Address&>(_addr) = getAddressForServer("", _port, getProtocolSupport(_addr), false, false);
|
|
153
143
|
#endif
|
|
154
144
|
|
|
155
|
-
const_cast<Address&>(_addr) = doBind(_fd, _addr);
|
|
145
|
+
const_cast<Address&>(_addr) = doBind(_fd, _addr, _mcastInterface);
|
|
156
146
|
if(getPort(_mcastAddr) == 0)
|
|
157
147
|
{
|
|
158
148
|
setPort(_mcastAddr, getPort(_addr));
|
|
@@ -192,7 +182,7 @@ IceInternal::UdpTransceiver::write(Buffer& buf)
|
|
|
192
182
|
{
|
|
193
183
|
return SocketOperationNone;
|
|
194
184
|
}
|
|
195
|
-
#ifdef
|
|
185
|
+
#ifdef ICE_OS_UWP
|
|
196
186
|
return SocketOperationWrite;
|
|
197
187
|
#else
|
|
198
188
|
assert(buf.i == buf.b.begin());
|
|
@@ -264,13 +254,13 @@ repeat:
|
|
|
264
254
|
}
|
|
265
255
|
|
|
266
256
|
SocketOperation
|
|
267
|
-
IceInternal::UdpTransceiver::read(Buffer& buf
|
|
257
|
+
IceInternal::UdpTransceiver::read(Buffer& buf)
|
|
268
258
|
{
|
|
269
259
|
if(buf.i == buf.b.end())
|
|
270
260
|
{
|
|
271
261
|
return SocketOperationNone;
|
|
272
262
|
}
|
|
273
|
-
#ifdef
|
|
263
|
+
#ifdef ICE_OS_UWP
|
|
274
264
|
return SocketOperationRead;
|
|
275
265
|
#else
|
|
276
266
|
|
|
@@ -369,7 +359,7 @@ repeat:
|
|
|
369
359
|
#endif
|
|
370
360
|
}
|
|
371
361
|
|
|
372
|
-
#if defined(ICE_USE_IOCP) || defined(
|
|
362
|
+
#if defined(ICE_USE_IOCP) || defined(ICE_OS_UWP)
|
|
373
363
|
bool
|
|
374
364
|
IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
375
365
|
{
|
|
@@ -379,7 +369,7 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
379
369
|
assert(min(_maxPacketSize, _sndSize - _udpOverhead) >= static_cast<int>(buf.b.size()));
|
|
380
370
|
assert(_fd != INVALID_SOCKET);
|
|
381
371
|
|
|
382
|
-
#ifdef
|
|
372
|
+
#ifdef ICE_OS_UWP
|
|
383
373
|
if(_state < StateConnected)
|
|
384
374
|
{
|
|
385
375
|
try
|
|
@@ -390,21 +380,15 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
390
380
|
auto operation = safe_cast<DatagramSocket^>(_fd)->ConnectAsync(_addr.host, _addr.port);
|
|
391
381
|
if(!checkIfErrorOrCompleted(SocketOperationConnect, operation))
|
|
392
382
|
{
|
|
393
|
-
SocketOperationCompletedHandler^ completed = _completedHandler;
|
|
394
383
|
operation->Completed = ref new AsyncActionCompletedHandler(
|
|
395
|
-
[
|
|
384
|
+
[this] (IAsyncAction^ info, Windows::Foundation::AsyncStatus status)
|
|
396
385
|
{
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
{
|
|
404
|
-
_write.count = 0;
|
|
405
|
-
_writer = ref new DataWriter(safe_cast<DatagramSocket^>(_fd)->OutputStream);
|
|
406
|
-
}
|
|
407
|
-
completed(SocketOperationConnect);
|
|
386
|
+
//
|
|
387
|
+
// COMPILERFIX with VC141 using operator!= and operator== inside
|
|
388
|
+
// a lambda callback triggers a compiler bug, we move the code to
|
|
389
|
+
// a seperate private method to workaround the issue.
|
|
390
|
+
//
|
|
391
|
+
connectCompleted(info, status);
|
|
408
392
|
});
|
|
409
393
|
}
|
|
410
394
|
else
|
|
@@ -418,25 +402,15 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
418
402
|
auto operation = safe_cast<DatagramSocket^>(_fd)->GetOutputStreamAsync(_addr.host, _addr.port);
|
|
419
403
|
if(!checkIfErrorOrCompleted(SocketOperationConnect, operation))
|
|
420
404
|
{
|
|
421
|
-
SocketOperationCompletedHandler^ completed = _completedHandler;
|
|
422
405
|
operation->Completed = ref new AsyncOperationCompletedHandler<IOutputStream^>(
|
|
423
|
-
[=]
|
|
406
|
+
[=](IAsyncOperation<IOutputStream^>^ info, Windows::Foundation::AsyncStatus status)
|
|
424
407
|
{
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
{
|
|
432
|
-
_write.count = 0;
|
|
433
|
-
_writer = ref new DataWriter(info->GetResults());
|
|
434
|
-
}
|
|
435
|
-
if(_mcastAddr.host != nullptr)
|
|
436
|
-
{
|
|
437
|
-
setMcastGroup(_fd, _mcastAddr, "");
|
|
438
|
-
}
|
|
439
|
-
completed(SocketOperationConnect);
|
|
408
|
+
//
|
|
409
|
+
// COMPILERFIX with VC141 using operator!= and operator== inside
|
|
410
|
+
// a lambda callback triggers a compiler bug, we move the code to
|
|
411
|
+
// a seperate private method to workaround the issue.
|
|
412
|
+
//
|
|
413
|
+
getOutputStreamMcastCompleted(info, status);
|
|
440
414
|
});
|
|
441
415
|
}
|
|
442
416
|
else
|
|
@@ -452,7 +426,7 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
452
426
|
}
|
|
453
427
|
catch(Platform::Exception^ ex)
|
|
454
428
|
{
|
|
455
|
-
checkConnectErrorCode(__FILE__, __LINE__, ex->HResult
|
|
429
|
+
checkConnectErrorCode(__FILE__, __LINE__, ex->HResult);
|
|
456
430
|
}
|
|
457
431
|
return false;
|
|
458
432
|
}
|
|
@@ -460,52 +434,16 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
460
434
|
{
|
|
461
435
|
try
|
|
462
436
|
{
|
|
463
|
-
SocketOperationCompletedHandler^ completed = _completedHandler;
|
|
464
437
|
DatagramSocket^ fd = safe_cast<DatagramSocket^>(_fd);
|
|
465
438
|
concurrency::create_task(fd->GetOutputStreamAsync(_peerAddr.host, _peerAddr.port)).then(
|
|
466
|
-
[
|
|
439
|
+
[=, &buf](concurrency::task<IOutputStream^> task)
|
|
467
440
|
{
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
Windows::Foundation::AsyncStatus status = operation->Status;
|
|
475
|
-
if(status == Windows::Foundation::AsyncStatus::Completed)
|
|
476
|
-
{
|
|
477
|
-
//
|
|
478
|
-
// NOTE: unlike other methods, it's important to modify _write.count
|
|
479
|
-
// _before_ calling checkIfErrorOrCompleted since this isn't called
|
|
480
|
-
// with the connection mutex but from a Windows thread pool thread.
|
|
481
|
-
// So we can't modify the _write structure after calling the
|
|
482
|
-
// completed callback.
|
|
483
|
-
//
|
|
484
|
-
_write.count = operation->GetResults();
|
|
485
|
-
completed(SocketOperationWrite);
|
|
486
|
-
}
|
|
487
|
-
else if(status == Windows::Foundation::AsyncStatus::Started)
|
|
488
|
-
{
|
|
489
|
-
operation->Completed = _writeOperationCompletedHandler;
|
|
490
|
-
}
|
|
491
|
-
else
|
|
492
|
-
{
|
|
493
|
-
if(_state < StateConnected)
|
|
494
|
-
{
|
|
495
|
-
checkConnectErrorCode(__FILE__, __LINE__, operation->ErrorCode.Value, _addr.host);
|
|
496
|
-
}
|
|
497
|
-
else
|
|
498
|
-
{
|
|
499
|
-
checkErrorCode(__FILE__, __LINE__, operation->ErrorCode.Value);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
catch(Platform::Exception^ pex)
|
|
504
|
-
{
|
|
505
|
-
_write.count = SOCKET_ERROR;
|
|
506
|
-
_write.error = pex->HResult;
|
|
507
|
-
completed(SocketOperationWrite);
|
|
508
|
-
}
|
|
441
|
+
//
|
|
442
|
+
// COMPILERFIX with VC141 using operator!= and operator== inside
|
|
443
|
+
// a lambda callback triggers a compiler bug, we move the code to
|
|
444
|
+
// a seperate private method to workaround the issue.
|
|
445
|
+
//
|
|
446
|
+
getOutputStreamCompleted(task, buf);
|
|
509
447
|
});
|
|
510
448
|
}
|
|
511
449
|
catch(Platform::Exception^ ex)
|
|
@@ -519,15 +457,7 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
519
457
|
try
|
|
520
458
|
{
|
|
521
459
|
_writer->WriteBytes(ref new Array<unsigned char>(&*buf.i, static_cast<int>(buf.b.size())));
|
|
522
|
-
|
|
523
|
-
if(checkIfErrorOrCompleted(SocketOperationWrite, operation))
|
|
524
|
-
{
|
|
525
|
-
_write.count = operation->GetResults();
|
|
526
|
-
}
|
|
527
|
-
else
|
|
528
|
-
{
|
|
529
|
-
operation->Completed = _writeOperationCompletedHandler;
|
|
530
|
-
}
|
|
460
|
+
queueOperation(SocketOperationWrite, _writer->StoreAsync());
|
|
531
461
|
}
|
|
532
462
|
catch(Platform::Exception^ ex)
|
|
533
463
|
{
|
|
@@ -541,7 +471,7 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
541
471
|
int err;
|
|
542
472
|
if(_state == StateConnected)
|
|
543
473
|
{
|
|
544
|
-
err = WSASend(_fd, &_write.buf, 1, &_write.count, 0, &_write,
|
|
474
|
+
err = WSASend(_fd, &_write.buf, 1, &_write.count, 0, &_write, ICE_NULLPTR);
|
|
545
475
|
}
|
|
546
476
|
else
|
|
547
477
|
{
|
|
@@ -562,7 +492,7 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
562
492
|
throw ex;
|
|
563
493
|
}
|
|
564
494
|
err = WSASendTo(_fd, &_write.buf, 1, &_write.count, 0, &_peerAddr.sa,
|
|
565
|
-
len, &_write,
|
|
495
|
+
len, &_write, ICE_NULLPTR);
|
|
566
496
|
}
|
|
567
497
|
|
|
568
498
|
if(err == SOCKET_ERROR)
|
|
@@ -587,6 +517,76 @@ IceInternal::UdpTransceiver::startWrite(Buffer& buf)
|
|
|
587
517
|
return true;
|
|
588
518
|
}
|
|
589
519
|
|
|
520
|
+
#ifdef ICE_OS_UWP
|
|
521
|
+
void
|
|
522
|
+
IceInternal::UdpTransceiver::connectCompleted(Windows::Foundation::IAsyncAction^ action,
|
|
523
|
+
Windows::Foundation::AsyncStatus status)
|
|
524
|
+
{
|
|
525
|
+
if(status != Windows::Foundation::AsyncStatus::Completed)
|
|
526
|
+
{
|
|
527
|
+
_write.count = SOCKET_ERROR;
|
|
528
|
+
_write.error = action->ErrorCode.Value;
|
|
529
|
+
}
|
|
530
|
+
else
|
|
531
|
+
{
|
|
532
|
+
_write.count = 0;
|
|
533
|
+
_writer = ref new DataWriter(safe_cast<DatagramSocket^>(_fd)->OutputStream);
|
|
534
|
+
}
|
|
535
|
+
completed(SocketOperationConnect);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
void
|
|
539
|
+
IceInternal::UdpTransceiver::getOutputStreamMcastCompleted(IAsyncOperation<IOutputStream^>^ operation,
|
|
540
|
+
Windows::Foundation::AsyncStatus status)
|
|
541
|
+
{
|
|
542
|
+
if(status != Windows::Foundation::AsyncStatus::Completed)
|
|
543
|
+
{
|
|
544
|
+
_write.count = SOCKET_ERROR;
|
|
545
|
+
_write.error = operation->ErrorCode.Value;
|
|
546
|
+
}
|
|
547
|
+
else
|
|
548
|
+
{
|
|
549
|
+
_write.count = 0;
|
|
550
|
+
_writer = ref new DataWriter(operation->GetResults());
|
|
551
|
+
}
|
|
552
|
+
if(_mcastAddr.host != nullptr)
|
|
553
|
+
{
|
|
554
|
+
setMcastGroup(_fd, _mcastAddr, "");
|
|
555
|
+
}
|
|
556
|
+
completed(SocketOperationConnect);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
void
|
|
560
|
+
IceInternal::UdpTransceiver::getOutputStreamCompleted(concurrency::task<IOutputStream^> task, Buffer& buf)
|
|
561
|
+
{
|
|
562
|
+
try
|
|
563
|
+
{
|
|
564
|
+
DataWriter^ writer = ref new DataWriter(task.get());
|
|
565
|
+
writer->WriteBytes(ref new Array<unsigned char>(&*buf.i, static_cast<int>(buf.b.size())));
|
|
566
|
+
DataWriterStoreOperation^ operation = writer->StoreAsync();
|
|
567
|
+
if(operation->Status == Windows::Foundation::AsyncStatus::Completed)
|
|
568
|
+
{
|
|
569
|
+
//
|
|
570
|
+
// NOTE: unlike other methods, it's important to modify _write.count
|
|
571
|
+
// _before_ calling checkIfErrorOrCompleted since this isn't called
|
|
572
|
+
// with the connection mutex but from a Windows thread pool thread.
|
|
573
|
+
// So we can't modify the _write structure after calling the
|
|
574
|
+
// completed callback.
|
|
575
|
+
//
|
|
576
|
+
_write.count = operation->GetResults();
|
|
577
|
+
}
|
|
578
|
+
queueOperation(SocketOperationWrite, operation);
|
|
579
|
+
}
|
|
580
|
+
catch(Platform::Exception^ pex)
|
|
581
|
+
{
|
|
582
|
+
_write.count = SOCKET_ERROR;
|
|
583
|
+
_write.error = pex->HResult;
|
|
584
|
+
completed(SocketOperationWrite);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
#endif
|
|
589
|
+
|
|
590
590
|
void
|
|
591
591
|
IceInternal::UdpTransceiver::finishWrite(Buffer& buf)
|
|
592
592
|
{
|
|
@@ -597,7 +597,7 @@ IceInternal::UdpTransceiver::finishWrite(Buffer& buf)
|
|
|
597
597
|
|
|
598
598
|
if(static_cast<int>(_write.count) == SOCKET_ERROR)
|
|
599
599
|
{
|
|
600
|
-
#ifndef
|
|
600
|
+
#ifndef ICE_OS_UWP
|
|
601
601
|
WSASetLastError(_write.error);
|
|
602
602
|
if(connectionLost())
|
|
603
603
|
{
|
|
@@ -627,13 +627,13 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
|
|
|
627
627
|
buf.b.resize(packetSize);
|
|
628
628
|
buf.i = buf.b.begin();
|
|
629
629
|
assert(!buf.b.empty() && buf.i != buf.b.end());
|
|
630
|
-
#ifndef
|
|
630
|
+
#ifndef ICE_OS_UWP
|
|
631
631
|
_read.buf.len = packetSize;
|
|
632
632
|
_read.buf.buf = reinterpret_cast<char*>(&*buf.i);
|
|
633
633
|
int err;
|
|
634
634
|
if(_state == StateConnected)
|
|
635
635
|
{
|
|
636
|
-
err = WSARecv(_fd, &_read.buf, 1, &_read.count, &_read.flags, &_read,
|
|
636
|
+
err = WSARecv(_fd, &_read.buf, 1, &_read.count, &_read.flags, &_read, ICE_NULLPTR);
|
|
637
637
|
}
|
|
638
638
|
else
|
|
639
639
|
{
|
|
@@ -641,7 +641,7 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
|
|
|
641
641
|
_readAddrLen = static_cast<socklen_t>(sizeof(sockaddr_storage));
|
|
642
642
|
|
|
643
643
|
err = WSARecvFrom(_fd, &_read.buf, 1, &_read.count, &_read.flags,
|
|
644
|
-
&_readAddr.sa, &_readAddrLen, &_read,
|
|
644
|
+
&_readAddr.sa, &_readAddrLen, &_read, ICE_NULLPTR);
|
|
645
645
|
}
|
|
646
646
|
|
|
647
647
|
if(err == SOCKET_ERROR)
|
|
@@ -671,7 +671,7 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
|
|
|
671
671
|
assert(!_readPending);
|
|
672
672
|
if(!_received.empty())
|
|
673
673
|
{
|
|
674
|
-
|
|
674
|
+
completed(SocketOperationRead);
|
|
675
675
|
}
|
|
676
676
|
else
|
|
677
677
|
{
|
|
@@ -681,9 +681,9 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf)
|
|
|
681
681
|
}
|
|
682
682
|
|
|
683
683
|
void
|
|
684
|
-
IceInternal::UdpTransceiver::finishRead(Buffer& buf
|
|
684
|
+
IceInternal::UdpTransceiver::finishRead(Buffer& buf)
|
|
685
685
|
{
|
|
686
|
-
#ifdef
|
|
686
|
+
#ifdef ICE_OS_UWP
|
|
687
687
|
IceUtil::Mutex::Lock lock(_mutex);
|
|
688
688
|
assert(!_readPending && (!_received.empty() || _fd == INVALID_SOCKET));
|
|
689
689
|
if(_fd == INVALID_SOCKET)
|
|
@@ -787,7 +787,7 @@ IceInternal::UdpTransceiver::toString() const
|
|
|
787
787
|
}
|
|
788
788
|
else
|
|
789
789
|
{
|
|
790
|
-
#ifndef
|
|
790
|
+
#ifndef ICE_OS_UWP
|
|
791
791
|
s << fdToString(_fd);
|
|
792
792
|
#else
|
|
793
793
|
Address localAddr;
|
|
@@ -809,7 +809,15 @@ IceInternal::UdpTransceiver::toDetailedString() const
|
|
|
809
809
|
{
|
|
810
810
|
ostringstream os;
|
|
811
811
|
os << toString();
|
|
812
|
-
vector<string> intfs
|
|
812
|
+
vector<string> intfs;
|
|
813
|
+
if(isAddressValid(_mcastAddr))
|
|
814
|
+
{
|
|
815
|
+
intfs = getInterfacesForMulticast(_mcastInterface, getProtocolSupport(_mcastAddr));
|
|
816
|
+
}
|
|
817
|
+
else
|
|
818
|
+
{
|
|
819
|
+
intfs = getHostsForEndpointExpand(inetAddrToString(_addr), _instance->protocolSupport(), true);
|
|
820
|
+
}
|
|
813
821
|
if(!intfs.empty())
|
|
814
822
|
{
|
|
815
823
|
os << "\nlocal interfaces = ";
|
|
@@ -821,8 +829,8 @@ IceInternal::UdpTransceiver::toDetailedString() const
|
|
|
821
829
|
Ice::ConnectionInfoPtr
|
|
822
830
|
IceInternal::UdpTransceiver::getInfo() const
|
|
823
831
|
{
|
|
824
|
-
Ice::UDPConnectionInfoPtr info =
|
|
825
|
-
#if defined(
|
|
832
|
+
Ice::UDPConnectionInfoPtr info = ICE_MAKE_SHARED(Ice::UDPConnectionInfo);
|
|
833
|
+
#if defined(ICE_OS_UWP)
|
|
826
834
|
if(isMulticast(_addr) || isAddressValid(_mcastAddr))
|
|
827
835
|
{
|
|
828
836
|
info->remotePort = 0;
|
|
@@ -897,7 +905,7 @@ IceInternal::UdpTransceiver::effectivePort() const
|
|
|
897
905
|
|
|
898
906
|
IceInternal::UdpTransceiver::UdpTransceiver(const ProtocolInstancePtr& instance,
|
|
899
907
|
const Address& addr,
|
|
900
|
-
#ifdef
|
|
908
|
+
#ifdef ICE_OS_UWP
|
|
901
909
|
const Address&,
|
|
902
910
|
const string&,
|
|
903
911
|
int
|
|
@@ -915,7 +923,7 @@ IceInternal::UdpTransceiver::UdpTransceiver(const ProtocolInstancePtr& instance,
|
|
|
915
923
|
#if defined(ICE_USE_IOCP)
|
|
916
924
|
, _read(SocketOperationRead),
|
|
917
925
|
_write(SocketOperationWrite)
|
|
918
|
-
#elif defined(
|
|
926
|
+
#elif defined(ICE_OS_UWP)
|
|
919
927
|
, _readPending(false)
|
|
920
928
|
#endif
|
|
921
929
|
{
|
|
@@ -923,7 +931,7 @@ IceInternal::UdpTransceiver::UdpTransceiver(const ProtocolInstancePtr& instance,
|
|
|
923
931
|
setBufSize(-1, -1);
|
|
924
932
|
setBlock(_fd, false);
|
|
925
933
|
|
|
926
|
-
#ifndef
|
|
934
|
+
#ifndef ICE_OS_UWP
|
|
927
935
|
_mcastAddr.saStorage.ss_family = AF_UNSPEC;
|
|
928
936
|
_peerAddr.saStorage.ss_family = AF_UNSPEC; // Not initialized yet.
|
|
929
937
|
|
|
@@ -972,7 +980,6 @@ IceInternal::UdpTransceiver::UdpTransceiver(const ProtocolInstancePtr& instance,
|
|
|
972
980
|
});
|
|
973
981
|
#endif
|
|
974
982
|
|
|
975
|
-
|
|
976
983
|
#ifdef ICE_USE_IOCP
|
|
977
984
|
//
|
|
978
985
|
// On Windows when using IOCP, we must make sure that the socket is connected without
|
|
@@ -990,11 +997,11 @@ IceInternal::UdpTransceiver::UdpTransceiver(const UdpEndpointIPtr& endpoint, con
|
|
|
990
997
|
_instance(instance),
|
|
991
998
|
_incoming(true),
|
|
992
999
|
_bound(false),
|
|
993
|
-
_addr(getAddressForServer(host, port, instance->protocolSupport(), instance->preferIPv6())),
|
|
1000
|
+
_addr(getAddressForServer(host, port, instance->protocolSupport(), instance->preferIPv6(), true)),
|
|
994
1001
|
_mcastInterface(mcastInterface),
|
|
995
1002
|
_port(port),
|
|
996
1003
|
_state(connect ? StateNeedConnect : StateNotConnected)
|
|
997
|
-
#ifdef
|
|
1004
|
+
#ifdef ICE_OS_UWP
|
|
998
1005
|
, _readPending(false)
|
|
999
1006
|
#elif defined(ICE_USE_IOCP)
|
|
1000
1007
|
, _read(SocketOperationRead),
|
|
@@ -1005,7 +1012,7 @@ IceInternal::UdpTransceiver::UdpTransceiver(const UdpEndpointIPtr& endpoint, con
|
|
|
1005
1012
|
setBufSize(-1, -1);
|
|
1006
1013
|
setBlock(_fd, false);
|
|
1007
1014
|
|
|
1008
|
-
#ifndef
|
|
1015
|
+
#ifndef ICE_OS_UWP
|
|
1009
1016
|
memset(&_mcastAddr.saStorage, 0, sizeof(sockaddr_storage));
|
|
1010
1017
|
memset(&_peerAddr.saStorage, 0, sizeof(sockaddr_storage));
|
|
1011
1018
|
_peerAddr.saStorage.ss_family = AF_UNSPEC;
|
|
@@ -1142,43 +1149,7 @@ IceInternal::UdpTransceiver::setBufSize(int rcvSize, int sndSize)
|
|
|
1142
1149
|
}
|
|
1143
1150
|
}
|
|
1144
1151
|
|
|
1145
|
-
#ifdef
|
|
1146
|
-
bool
|
|
1147
|
-
IceInternal::UdpTransceiver::checkIfErrorOrCompleted(SocketOperation op, IAsyncInfo^ info)
|
|
1148
|
-
{
|
|
1149
|
-
//
|
|
1150
|
-
// NOTE: It's important to only check for info->Status once as it
|
|
1151
|
-
// might change during the checks below (the Status can be changed
|
|
1152
|
-
// by the Windows thread pool concurrently).
|
|
1153
|
-
//
|
|
1154
|
-
// We consider that a canceled async status is the same as an
|
|
1155
|
-
// error. A canceled async status can occur if there's a timeout
|
|
1156
|
-
// and the socket is closed.
|
|
1157
|
-
//
|
|
1158
|
-
Windows::Foundation::AsyncStatus status = info->Status;
|
|
1159
|
-
if(status == Windows::Foundation::AsyncStatus::Completed)
|
|
1160
|
-
{
|
|
1161
|
-
_completedHandler(op);
|
|
1162
|
-
return true;
|
|
1163
|
-
}
|
|
1164
|
-
else if(status == Windows::Foundation::AsyncStatus::Started)
|
|
1165
|
-
{
|
|
1166
|
-
return false;
|
|
1167
|
-
}
|
|
1168
|
-
else
|
|
1169
|
-
{
|
|
1170
|
-
if(_state < StateConnected)
|
|
1171
|
-
{
|
|
1172
|
-
checkConnectErrorCode(__FILE__, __LINE__, info->ErrorCode.Value, _addr.host);
|
|
1173
|
-
}
|
|
1174
|
-
else
|
|
1175
|
-
{
|
|
1176
|
-
checkErrorCode(__FILE__, __LINE__, info->ErrorCode.Value);
|
|
1177
|
-
}
|
|
1178
|
-
return true; // Prevent compiler warning.
|
|
1179
|
-
}
|
|
1180
|
-
}
|
|
1181
|
-
|
|
1152
|
+
#ifdef ICE_OS_UWP
|
|
1182
1153
|
void
|
|
1183
1154
|
IceInternal::UdpTransceiver::appendMessage(DatagramSocketMessageReceivedEventArgs^ args)
|
|
1184
1155
|
{
|
|
@@ -1198,7 +1169,7 @@ IceInternal::UdpTransceiver::appendMessage(DatagramSocketMessageReceivedEventArg
|
|
|
1198
1169
|
//
|
|
1199
1170
|
if(_readPending)
|
|
1200
1171
|
{
|
|
1201
|
-
|
|
1172
|
+
completed(SocketOperationRead);
|
|
1202
1173
|
_readPending = false;
|
|
1203
1174
|
}
|
|
1204
1175
|
}
|