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.
|
|
@@ -17,91 +17,595 @@
|
|
|
17
17
|
#include <Ice/ImplicitContextI.h>
|
|
18
18
|
#include <Ice/ThreadPool.h>
|
|
19
19
|
#include <Ice/RetryQueue.h>
|
|
20
|
+
#include <Ice/ConnectionFactory.h>
|
|
21
|
+
#include <Ice/ObjectAdapterFactory.h>
|
|
22
|
+
#include <Ice/LoggerUtil.h>
|
|
20
23
|
|
|
21
24
|
using namespace std;
|
|
22
25
|
using namespace Ice;
|
|
23
26
|
using namespace IceInternal;
|
|
24
27
|
|
|
28
|
+
#ifndef ICE_CPP11_MAPPING
|
|
25
29
|
IceUtil::Shared* IceInternal::upCast(OutgoingAsyncBase* p) { return p; }
|
|
26
30
|
IceUtil::Shared* IceInternal::upCast(ProxyOutgoingAsyncBase* p) { return p; }
|
|
27
31
|
IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
|
|
28
|
-
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
const unsigned char OutgoingAsyncBase::OK = 0x1;
|
|
35
|
+
const unsigned char OutgoingAsyncBase::Sent = 0x2;
|
|
36
|
+
#ifndef ICE_CPP11_MAPPING
|
|
37
|
+
const unsigned char OutgoingAsyncBase::Done = 0x4;
|
|
38
|
+
const unsigned char OutgoingAsyncBase::EndCalled = 0x8;
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
OutgoingAsyncCompletionCallback::~OutgoingAsyncCompletionCallback()
|
|
42
|
+
{
|
|
43
|
+
// Out of line to avoid weak vtable
|
|
44
|
+
}
|
|
29
45
|
|
|
30
46
|
bool
|
|
31
47
|
OutgoingAsyncBase::sent()
|
|
32
48
|
{
|
|
33
|
-
return
|
|
49
|
+
return sentImpl(true);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
bool
|
|
53
|
+
OutgoingAsyncBase::exception(const Exception& ex)
|
|
54
|
+
{
|
|
55
|
+
return exceptionImpl(ex);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
bool
|
|
59
|
+
OutgoingAsyncBase::response()
|
|
60
|
+
{
|
|
61
|
+
assert(false); // Must be overriden by request that can handle responses
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
void
|
|
66
|
+
OutgoingAsyncBase::invokeSentAsync()
|
|
67
|
+
{
|
|
68
|
+
class AsynchronousSent : public DispatchWorkItem
|
|
69
|
+
{
|
|
70
|
+
public:
|
|
71
|
+
|
|
72
|
+
AsynchronousSent(const ConnectionPtr& connection, const OutgoingAsyncBasePtr& outAsync) :
|
|
73
|
+
DispatchWorkItem(connection), _outAsync(outAsync)
|
|
74
|
+
{
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
virtual void
|
|
78
|
+
run()
|
|
79
|
+
{
|
|
80
|
+
_outAsync->invokeSent();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private:
|
|
84
|
+
|
|
85
|
+
const OutgoingAsyncBasePtr _outAsync;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
//
|
|
89
|
+
// This is called when it's not safe to call the sent callback
|
|
90
|
+
// synchronously from this thread. Instead the exception callback
|
|
91
|
+
// is called asynchronously from the client thread pool.
|
|
92
|
+
//
|
|
93
|
+
try
|
|
94
|
+
{
|
|
95
|
+
_instance->clientThreadPool()->dispatch(new AsynchronousSent(_cachedConnection, ICE_SHARED_FROM_THIS));
|
|
96
|
+
}
|
|
97
|
+
catch(const Ice::CommunicatorDestroyedException&)
|
|
98
|
+
{
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
void
|
|
103
|
+
OutgoingAsyncBase::invokeExceptionAsync()
|
|
104
|
+
{
|
|
105
|
+
class AsynchronousException : public DispatchWorkItem
|
|
106
|
+
{
|
|
107
|
+
public:
|
|
108
|
+
|
|
109
|
+
AsynchronousException(const ConnectionPtr& c, const OutgoingAsyncBasePtr& outAsync) :
|
|
110
|
+
DispatchWorkItem(c), _outAsync(outAsync)
|
|
111
|
+
{
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
virtual void
|
|
115
|
+
run()
|
|
116
|
+
{
|
|
117
|
+
_outAsync->invokeException();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
private:
|
|
121
|
+
|
|
122
|
+
const OutgoingAsyncBasePtr _outAsync;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
//
|
|
126
|
+
// CommunicatorDestroyedException is the only exception that can propagate directly from this method.
|
|
127
|
+
//
|
|
128
|
+
_instance->clientThreadPool()->dispatch(new AsynchronousException(_cachedConnection, ICE_SHARED_FROM_THIS));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
void
|
|
132
|
+
OutgoingAsyncBase::invokeResponseAsync()
|
|
133
|
+
{
|
|
134
|
+
class AsynchronousResponse : public DispatchWorkItem
|
|
135
|
+
{
|
|
136
|
+
public:
|
|
137
|
+
|
|
138
|
+
AsynchronousResponse(const ConnectionPtr& connection, const OutgoingAsyncBasePtr& outAsync) :
|
|
139
|
+
DispatchWorkItem(connection), _outAsync(outAsync)
|
|
140
|
+
{
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
virtual void
|
|
144
|
+
run()
|
|
145
|
+
{
|
|
146
|
+
_outAsync->invokeResponse();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private:
|
|
150
|
+
|
|
151
|
+
const OutgoingAsyncBasePtr _outAsync;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
//
|
|
155
|
+
// CommunicatorDestroyedException is the only exception that can propagate directly from this method.
|
|
156
|
+
//
|
|
157
|
+
_instance->clientThreadPool()->dispatch(new AsynchronousResponse(_cachedConnection, ICE_SHARED_FROM_THIS));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
void
|
|
161
|
+
OutgoingAsyncBase::invokeSent()
|
|
162
|
+
{
|
|
163
|
+
try
|
|
164
|
+
{
|
|
165
|
+
handleInvokeSent(_sentSynchronously, this);
|
|
166
|
+
}
|
|
167
|
+
catch(const std::exception& ex)
|
|
168
|
+
{
|
|
169
|
+
warning(ex);
|
|
170
|
+
}
|
|
171
|
+
catch(...)
|
|
172
|
+
{
|
|
173
|
+
warning();
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if(_observer && _doneInSent)
|
|
177
|
+
{
|
|
178
|
+
_observer.detach();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
void
|
|
183
|
+
OutgoingAsyncBase::invokeException()
|
|
184
|
+
{
|
|
185
|
+
try
|
|
186
|
+
{
|
|
187
|
+
handleInvokeException(*_ex, this);
|
|
188
|
+
}
|
|
189
|
+
catch(const std::exception& ex)
|
|
190
|
+
{
|
|
191
|
+
warning(ex);
|
|
192
|
+
}
|
|
193
|
+
catch(...)
|
|
194
|
+
{
|
|
195
|
+
warning();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
_observer.detach();
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
void
|
|
202
|
+
OutgoingAsyncBase::invokeResponse()
|
|
203
|
+
{
|
|
204
|
+
if(_ex)
|
|
205
|
+
{
|
|
206
|
+
invokeException();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
try
|
|
211
|
+
{
|
|
212
|
+
#ifdef ICE_CPP11_MAPPING
|
|
213
|
+
try
|
|
214
|
+
{
|
|
215
|
+
handleInvokeResponse(_state & OK, this);
|
|
216
|
+
}
|
|
217
|
+
catch(const Ice::Exception& ex)
|
|
218
|
+
{
|
|
219
|
+
if(handleException(ex))
|
|
220
|
+
{
|
|
221
|
+
handleInvokeException(ex, this);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch(const exception_ptr& ex)
|
|
225
|
+
{
|
|
226
|
+
rethrow_exception(ex);
|
|
227
|
+
}
|
|
228
|
+
#else
|
|
229
|
+
handleInvokeResponse(_state & OK, this);
|
|
230
|
+
#endif
|
|
231
|
+
}
|
|
232
|
+
catch(const std::exception& ex)
|
|
233
|
+
{
|
|
234
|
+
warning(ex);
|
|
235
|
+
}
|
|
236
|
+
catch(...)
|
|
237
|
+
{
|
|
238
|
+
warning();
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
_observer.detach();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
void
|
|
245
|
+
OutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
|
|
246
|
+
{
|
|
247
|
+
Lock sync(_m);
|
|
248
|
+
if(_cancellationException)
|
|
249
|
+
{
|
|
250
|
+
try
|
|
251
|
+
{
|
|
252
|
+
_cancellationException->ice_throw();
|
|
253
|
+
}
|
|
254
|
+
catch(const Ice::LocalException&)
|
|
255
|
+
{
|
|
256
|
+
_cancellationException.reset();
|
|
257
|
+
throw;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
_cancellationHandler = handler;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
void
|
|
264
|
+
OutgoingAsyncBase::cancel()
|
|
265
|
+
{
|
|
266
|
+
cancel(Ice::InvocationCanceledException(__FILE__, __LINE__));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
OutgoingAsyncBase::OutgoingAsyncBase(const InstancePtr& instance) :
|
|
270
|
+
_instance(instance),
|
|
271
|
+
_sentSynchronously(false),
|
|
272
|
+
_doneInSent(false),
|
|
273
|
+
_state(0),
|
|
274
|
+
_os(instance.get(), Ice::currentProtocolEncoding),
|
|
275
|
+
_is(instance.get(), Ice::currentProtocolEncoding)
|
|
276
|
+
{
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
bool
|
|
280
|
+
OutgoingAsyncBase::sentImpl(bool done)
|
|
281
|
+
{
|
|
282
|
+
Lock sync(_m);
|
|
283
|
+
bool alreadySent = (_state & Sent) > 0;
|
|
284
|
+
_state |= Sent;
|
|
285
|
+
if(done)
|
|
286
|
+
{
|
|
287
|
+
_doneInSent = true;
|
|
288
|
+
_childObserver.detach();
|
|
289
|
+
_cancellationHandler = 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
#ifndef ICE_CPP11_MAPPING
|
|
293
|
+
if(done)
|
|
294
|
+
{
|
|
295
|
+
_state |= Done | OK;
|
|
296
|
+
}
|
|
297
|
+
_m.notifyAll();
|
|
298
|
+
#endif
|
|
299
|
+
|
|
300
|
+
bool invoke = handleSent(done, alreadySent);
|
|
301
|
+
if(!invoke && _doneInSent)
|
|
302
|
+
{
|
|
303
|
+
_observer.detach();
|
|
304
|
+
}
|
|
305
|
+
return invoke;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
bool
|
|
309
|
+
OutgoingAsyncBase::exceptionImpl(const Exception& ex)
|
|
310
|
+
{
|
|
311
|
+
Lock sync(_m);
|
|
312
|
+
ICE_SET_EXCEPTION_FROM_CLONE(_ex, ex.ice_clone());
|
|
313
|
+
if(_childObserver)
|
|
314
|
+
{
|
|
315
|
+
_childObserver.failed(ex.ice_id());
|
|
316
|
+
_childObserver.detach();
|
|
317
|
+
}
|
|
318
|
+
_cancellationHandler = 0;
|
|
319
|
+
_observer.failed(ex.ice_id());
|
|
320
|
+
|
|
321
|
+
#ifndef ICE_CPP11_MAPPING
|
|
322
|
+
_state |= Done;
|
|
323
|
+
_m.notifyAll();
|
|
324
|
+
#endif
|
|
325
|
+
|
|
326
|
+
bool invoke = handleException(ex);
|
|
327
|
+
if(!invoke)
|
|
328
|
+
{
|
|
329
|
+
_observer.detach();
|
|
330
|
+
}
|
|
331
|
+
return invoke;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
bool
|
|
335
|
+
OutgoingAsyncBase::responseImpl(bool ok, bool invoke)
|
|
336
|
+
{
|
|
337
|
+
Lock sync(_m);
|
|
338
|
+
if(ok)
|
|
339
|
+
{
|
|
340
|
+
_state |= OK;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
_cancellationHandler = 0;
|
|
344
|
+
|
|
345
|
+
#ifndef ICE_CPP11_MAPPING
|
|
346
|
+
_state |= Done;
|
|
347
|
+
_m.notifyAll();
|
|
348
|
+
#endif
|
|
349
|
+
|
|
350
|
+
try
|
|
351
|
+
{
|
|
352
|
+
invoke &= handleResponse(ok);
|
|
353
|
+
}
|
|
354
|
+
catch(const Ice::Exception& ex)
|
|
355
|
+
{
|
|
356
|
+
ICE_SET_EXCEPTION_FROM_CLONE(_ex, ex.ice_clone());
|
|
357
|
+
invoke = handleException(ex);
|
|
358
|
+
}
|
|
359
|
+
if(!invoke)
|
|
360
|
+
{
|
|
361
|
+
_observer.detach();
|
|
362
|
+
}
|
|
363
|
+
return invoke;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
void
|
|
367
|
+
OutgoingAsyncBase::cancel(const Ice::LocalException& ex)
|
|
368
|
+
{
|
|
369
|
+
CancellationHandlerPtr handler;
|
|
370
|
+
{
|
|
371
|
+
Lock sync(_m);
|
|
372
|
+
ICE_SET_EXCEPTION_FROM_CLONE(_cancellationException, ex.ice_clone());
|
|
373
|
+
if(!_cancellationHandler)
|
|
374
|
+
{
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
handler = _cancellationHandler;
|
|
378
|
+
}
|
|
379
|
+
handler->asyncRequestCanceled(ICE_SHARED_FROM_THIS, ex);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
#ifndef ICE_CPP11_MAPPING
|
|
383
|
+
|
|
384
|
+
Int
|
|
385
|
+
OutgoingAsyncBase::getHash() const
|
|
386
|
+
{
|
|
387
|
+
return static_cast<Int>(reinterpret_cast<Long>(this) >> 4);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
CommunicatorPtr
|
|
391
|
+
OutgoingAsyncBase::getCommunicator() const
|
|
392
|
+
{
|
|
393
|
+
return 0;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
ConnectionPtr
|
|
397
|
+
OutgoingAsyncBase::getConnection() const
|
|
398
|
+
{
|
|
399
|
+
return 0;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
ObjectPrxPtr
|
|
403
|
+
OutgoingAsyncBase::getProxy() const
|
|
404
|
+
{
|
|
405
|
+
return 0;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
Ice::LocalObjectPtr
|
|
409
|
+
OutgoingAsyncBase::getCookie() const
|
|
410
|
+
{
|
|
411
|
+
return _cookie;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
const std::string&
|
|
415
|
+
OutgoingAsyncBase::getOperation() const
|
|
416
|
+
{
|
|
417
|
+
assert(false); // Must be overriden
|
|
418
|
+
static string empty;
|
|
419
|
+
return empty;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
bool
|
|
423
|
+
OutgoingAsyncBase::isCompleted() const
|
|
424
|
+
{
|
|
425
|
+
Lock sync(_m);
|
|
426
|
+
return (_state & Done) > 0;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
void
|
|
430
|
+
OutgoingAsyncBase::waitForCompleted()
|
|
431
|
+
{
|
|
432
|
+
Lock sync(_m);
|
|
433
|
+
while(!(_state & Done))
|
|
434
|
+
{
|
|
435
|
+
_m.wait();
|
|
436
|
+
}
|
|
34
437
|
}
|
|
35
438
|
|
|
36
439
|
bool
|
|
37
|
-
OutgoingAsyncBase::
|
|
440
|
+
OutgoingAsyncBase::isSent() const
|
|
38
441
|
{
|
|
39
|
-
|
|
442
|
+
Lock sync(_m);
|
|
443
|
+
return (_state & Sent) > 0;
|
|
40
444
|
}
|
|
41
445
|
|
|
42
|
-
|
|
43
|
-
OutgoingAsyncBase::
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
446
|
+
void
|
|
447
|
+
OutgoingAsyncBase::waitForSent()
|
|
448
|
+
{
|
|
449
|
+
Lock sync(_m);
|
|
450
|
+
while(!(_state & Sent) && !_ex.get())
|
|
451
|
+
{
|
|
452
|
+
_m.wait();
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
bool
|
|
457
|
+
OutgoingAsyncBase::sentSynchronously() const
|
|
458
|
+
{
|
|
459
|
+
return _sentSynchronously;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
void
|
|
463
|
+
OutgoingAsyncBase::throwLocalException() const
|
|
464
|
+
{
|
|
465
|
+
Lock sync(_m);
|
|
466
|
+
if(_ex.get())
|
|
467
|
+
{
|
|
468
|
+
_ex->ice_throw();
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
bool
|
|
473
|
+
OutgoingAsyncBase::_waitForResponse()
|
|
474
|
+
{
|
|
475
|
+
Lock sync(_m);
|
|
476
|
+
if(_state & EndCalled)
|
|
477
|
+
{
|
|
478
|
+
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "end_ method called more than once");
|
|
479
|
+
}
|
|
480
|
+
_state |= EndCalled;
|
|
481
|
+
while(!(_state & Done))
|
|
482
|
+
{
|
|
483
|
+
_m.wait();
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
if(_ex.get())
|
|
487
|
+
{
|
|
488
|
+
_ex->ice_throw();
|
|
489
|
+
}
|
|
490
|
+
return _state & OK;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
Ice::InputStream*
|
|
494
|
+
OutgoingAsyncBase::_startReadParams()
|
|
495
|
+
{
|
|
496
|
+
_is.startEncapsulation();
|
|
497
|
+
return &_is;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
void
|
|
501
|
+
OutgoingAsyncBase::_endReadParams()
|
|
502
|
+
{
|
|
503
|
+
_is.endEncapsulation();
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
void
|
|
507
|
+
OutgoingAsyncBase::_readEmptyParams()
|
|
508
|
+
{
|
|
509
|
+
_is.skipEmptyEncapsulation();
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
void
|
|
513
|
+
OutgoingAsyncBase::_readParamEncaps(const ::Ice::Byte*& encaps, ::Ice::Int& sz)
|
|
514
|
+
{
|
|
515
|
+
_is.readEncapsulation(encaps, sz);
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
void
|
|
519
|
+
OutgoingAsyncBase::_throwUserException()
|
|
520
|
+
{
|
|
521
|
+
try
|
|
522
|
+
{
|
|
523
|
+
_is.startEncapsulation();
|
|
524
|
+
_is.throwException();
|
|
525
|
+
}
|
|
526
|
+
catch(const Ice::UserException&)
|
|
527
|
+
{
|
|
528
|
+
_is.endEncapsulation();
|
|
529
|
+
throw;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
void
|
|
534
|
+
OutgoingAsyncBase::_scheduleCallback(const CallbackPtr& cb)
|
|
535
|
+
{
|
|
536
|
+
//
|
|
537
|
+
// NOTE: for internal use only. This should only be called when the invocation has
|
|
538
|
+
// completed. Accessing _cachedConnection is not safe otherwise.
|
|
539
|
+
//
|
|
540
|
+
|
|
541
|
+
class WorkItem : public DispatchWorkItem
|
|
542
|
+
{
|
|
543
|
+
public:
|
|
544
|
+
|
|
545
|
+
WorkItem(const ConnectionPtr& connection, const CallbackPtr& cb) :
|
|
546
|
+
DispatchWorkItem(connection), _cb(cb)
|
|
547
|
+
{
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
virtual void run()
|
|
551
|
+
{
|
|
552
|
+
_cb->run();
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
private:
|
|
556
|
+
|
|
557
|
+
CallbackPtr _cb;
|
|
558
|
+
};
|
|
48
559
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
560
|
+
//
|
|
561
|
+
// CommunicatorDestroyedException is the only exception that can propagate directly from this method.
|
|
562
|
+
//
|
|
563
|
+
_instance->clientThreadPool()->dispatch(new WorkItem(_cachedConnection, cb));
|
|
53
564
|
}
|
|
54
565
|
|
|
55
|
-
|
|
56
|
-
const InstancePtr& instance,
|
|
57
|
-
const string& operation,
|
|
58
|
-
const CallbackBasePtr& delegate,
|
|
59
|
-
const LocalObjectPtr& cookie) :
|
|
60
|
-
AsyncResult(communicator, instance, operation, delegate, cookie),
|
|
61
|
-
_os(instance.get(), Ice::currentProtocolEncoding)
|
|
62
|
-
{
|
|
63
|
-
}
|
|
566
|
+
#endif
|
|
64
567
|
|
|
65
|
-
|
|
66
|
-
OutgoingAsyncBase::
|
|
568
|
+
void
|
|
569
|
+
OutgoingAsyncBase::warning(const std::exception& exc) const
|
|
67
570
|
{
|
|
68
|
-
if(
|
|
571
|
+
if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
|
|
69
572
|
{
|
|
70
|
-
|
|
573
|
+
Ice::Warning out(_instance->initializationData().logger);
|
|
574
|
+
const Ice::Exception* ex = dynamic_cast<const Ice::Exception*>(&exc);
|
|
575
|
+
if(ex)
|
|
576
|
+
{
|
|
577
|
+
out << "Ice::Exception raised by AMI callback:\n" << *ex;
|
|
578
|
+
}
|
|
579
|
+
else
|
|
580
|
+
{
|
|
581
|
+
out << "std::exception raised by AMI callback:\n" << exc.what();
|
|
582
|
+
}
|
|
71
583
|
}
|
|
72
|
-
return AsyncResult::sent(done);
|
|
73
584
|
}
|
|
74
585
|
|
|
75
|
-
|
|
76
|
-
OutgoingAsyncBase::
|
|
586
|
+
void
|
|
587
|
+
OutgoingAsyncBase::warning() const
|
|
77
588
|
{
|
|
78
|
-
if(
|
|
589
|
+
if(_instance->initializationData().properties->getPropertyAsIntWithDefault("Ice.Warn.AMICallback", 1) > 0)
|
|
79
590
|
{
|
|
80
|
-
|
|
81
|
-
|
|
591
|
+
Ice::Warning out(_instance->initializationData().logger);
|
|
592
|
+
out << "unknown exception raised by AMI callback";
|
|
82
593
|
}
|
|
83
|
-
return AsyncResult::finished(ex);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
Ice::ObjectPrx
|
|
87
|
-
ProxyOutgoingAsyncBase::getProxy() const
|
|
88
|
-
{
|
|
89
|
-
return _proxy;
|
|
90
594
|
}
|
|
91
595
|
|
|
92
596
|
bool
|
|
93
|
-
ProxyOutgoingAsyncBase::
|
|
597
|
+
ProxyOutgoingAsyncBase::exception(const Exception& exc)
|
|
94
598
|
{
|
|
95
599
|
if(_childObserver)
|
|
96
600
|
{
|
|
97
|
-
_childObserver.failed(exc.
|
|
601
|
+
_childObserver.failed(exc.ice_id());
|
|
98
602
|
_childObserver.detach();
|
|
99
603
|
}
|
|
100
604
|
|
|
101
605
|
_cachedConnection = 0;
|
|
102
|
-
if(_proxy->
|
|
606
|
+
if(_proxy->_getReference()->getInvocationTimeout() == -2)
|
|
103
607
|
{
|
|
104
|
-
_instance->timer()->cancel(
|
|
608
|
+
_instance->timer()->cancel(ICE_SHARED_FROM_THIS);
|
|
105
609
|
}
|
|
106
610
|
|
|
107
611
|
//
|
|
@@ -115,13 +619,27 @@ ProxyOutgoingAsyncBase::completed(const Exception& exc)
|
|
|
115
619
|
// the retry interval is 0. This method can be called with the
|
|
116
620
|
// connection locked so we can't just retry here.
|
|
117
621
|
//
|
|
118
|
-
_instance->retryQueue()->add(
|
|
622
|
+
_instance->retryQueue()->add(ICE_SHARED_FROM_THIS, _proxy->_handleException(exc, _handler, _mode, _sent, _cnt));
|
|
119
623
|
return false;
|
|
120
624
|
}
|
|
121
625
|
catch(const Exception& ex)
|
|
122
626
|
{
|
|
123
|
-
return
|
|
627
|
+
return exceptionImpl(ex); // No retries, we're done
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
void
|
|
632
|
+
ProxyOutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
|
|
633
|
+
{
|
|
634
|
+
if(_proxy->_getReference()->getInvocationTimeout() == -2 && _cachedConnection)
|
|
635
|
+
{
|
|
636
|
+
const int timeout = _cachedConnection->timeout();
|
|
637
|
+
if(timeout > 0)
|
|
638
|
+
{
|
|
639
|
+
_instance->timer()->schedule(ICE_SHARED_FROM_THIS, IceUtil::Time::milliSeconds(timeout));
|
|
640
|
+
}
|
|
124
641
|
}
|
|
642
|
+
OutgoingAsyncBase::cancelable(handler);
|
|
125
643
|
}
|
|
126
644
|
|
|
127
645
|
void
|
|
@@ -135,30 +653,16 @@ ProxyOutgoingAsyncBase::retryException(const Exception& ex)
|
|
|
135
653
|
// require could end up waiting for the flush of the
|
|
136
654
|
// connection to be done.
|
|
137
655
|
//
|
|
138
|
-
_proxy->
|
|
139
|
-
_instance->retryQueue()->add(
|
|
656
|
+
_proxy->_updateRequestHandler(_handler, 0); // Clear request handler and always retry.
|
|
657
|
+
_instance->retryQueue()->add(ICE_SHARED_FROM_THIS, 0);
|
|
140
658
|
}
|
|
141
659
|
catch(const Ice::Exception& exc)
|
|
142
660
|
{
|
|
143
|
-
if(
|
|
144
|
-
{
|
|
145
|
-
invokeCompletedAsync();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
void
|
|
151
|
-
ProxyOutgoingAsyncBase::cancelable(const CancellationHandlerPtr& handler)
|
|
152
|
-
{
|
|
153
|
-
if(_proxy->__reference()->getInvocationTimeout() == -2 && _cachedConnection)
|
|
154
|
-
{
|
|
155
|
-
const int timeout = _cachedConnection->timeout();
|
|
156
|
-
if(timeout > 0)
|
|
661
|
+
if(exception(exc))
|
|
157
662
|
{
|
|
158
|
-
|
|
663
|
+
invokeExceptionAsync();
|
|
159
664
|
}
|
|
160
665
|
}
|
|
161
|
-
AsyncResult::cancelable(handler);
|
|
162
666
|
}
|
|
163
667
|
|
|
164
668
|
void
|
|
@@ -172,9 +676,9 @@ ProxyOutgoingAsyncBase::abort(const Ice::Exception& ex)
|
|
|
172
676
|
{
|
|
173
677
|
assert(!_childObserver);
|
|
174
678
|
|
|
175
|
-
if(
|
|
679
|
+
if(exceptionImpl(ex))
|
|
176
680
|
{
|
|
177
|
-
|
|
681
|
+
invokeExceptionAsync();
|
|
178
682
|
}
|
|
179
683
|
else if(dynamic_cast<const Ice::CommunicatorDestroyedException*>(&ex))
|
|
180
684
|
{
|
|
@@ -187,18 +691,33 @@ ProxyOutgoingAsyncBase::abort(const Ice::Exception& ex)
|
|
|
187
691
|
}
|
|
188
692
|
}
|
|
189
693
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
694
|
+
#ifndef ICE_CPP11_MAPPING
|
|
695
|
+
Ice::ObjectPrx
|
|
696
|
+
ProxyOutgoingAsyncBase::getProxy() const
|
|
697
|
+
{
|
|
698
|
+
return _proxy;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
Ice::CommunicatorPtr
|
|
702
|
+
ProxyOutgoingAsyncBase::getCommunicator() const
|
|
703
|
+
{
|
|
704
|
+
return _proxy->ice_getCommunicator();
|
|
705
|
+
}
|
|
706
|
+
#endif
|
|
707
|
+
|
|
708
|
+
ProxyOutgoingAsyncBase::ProxyOutgoingAsyncBase(const ObjectPrxPtr& prx) :
|
|
709
|
+
OutgoingAsyncBase(prx->_getReference()->getInstance()),
|
|
195
710
|
_proxy(prx),
|
|
196
|
-
_mode(Normal),
|
|
711
|
+
_mode(ICE_ENUM(OperationMode, Normal)),
|
|
197
712
|
_cnt(0),
|
|
198
713
|
_sent(false)
|
|
199
714
|
{
|
|
200
715
|
}
|
|
201
716
|
|
|
717
|
+
ProxyOutgoingAsyncBase::~ProxyOutgoingAsyncBase()
|
|
718
|
+
{
|
|
719
|
+
}
|
|
720
|
+
|
|
202
721
|
void
|
|
203
722
|
ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
|
|
204
723
|
{
|
|
@@ -206,10 +725,10 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
|
|
|
206
725
|
{
|
|
207
726
|
if(userThread)
|
|
208
727
|
{
|
|
209
|
-
int invocationTimeout = _proxy->
|
|
728
|
+
int invocationTimeout = _proxy->_getReference()->getInvocationTimeout();
|
|
210
729
|
if(invocationTimeout > 0)
|
|
211
730
|
{
|
|
212
|
-
_instance->timer()->schedule(
|
|
731
|
+
_instance->timer()->schedule(ICE_SHARED_FROM_THIS, IceUtil::Time::milliSeconds(invocationTimeout));
|
|
213
732
|
}
|
|
214
733
|
}
|
|
215
734
|
else
|
|
@@ -222,8 +741,8 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
|
|
|
222
741
|
try
|
|
223
742
|
{
|
|
224
743
|
_sent = false;
|
|
225
|
-
_handler = _proxy->
|
|
226
|
-
AsyncStatus status = _handler->sendAsyncRequest(
|
|
744
|
+
_handler = _proxy->_getRequestHandler();
|
|
745
|
+
AsyncStatus status = _handler->sendAsyncRequest(ICE_SHARED_FROM_THIS);
|
|
227
746
|
if(status & AsyncStatusSent)
|
|
228
747
|
{
|
|
229
748
|
if(userThread)
|
|
@@ -246,19 +765,19 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
|
|
|
246
765
|
}
|
|
247
766
|
catch(const RetryException&)
|
|
248
767
|
{
|
|
249
|
-
_proxy->
|
|
768
|
+
_proxy->_updateRequestHandler(_handler, 0); // Clear request handler and always retry.
|
|
250
769
|
}
|
|
251
770
|
catch(const Exception& ex)
|
|
252
771
|
{
|
|
253
772
|
if(_childObserver)
|
|
254
773
|
{
|
|
255
|
-
_childObserver.failed(ex.
|
|
774
|
+
_childObserver.failed(ex.ice_id());
|
|
256
775
|
_childObserver.detach();
|
|
257
776
|
}
|
|
258
|
-
int interval =
|
|
777
|
+
int interval = _proxy->_handleException(ex, _handler, _mode, _sent, _cnt);
|
|
259
778
|
if(interval > 0)
|
|
260
779
|
{
|
|
261
|
-
_instance->retryQueue()->add(
|
|
780
|
+
_instance->retryQueue()->add(ICE_SHARED_FROM_THIS, interval);
|
|
262
781
|
return;
|
|
263
782
|
}
|
|
264
783
|
else
|
|
@@ -272,63 +791,57 @@ ProxyOutgoingAsyncBase::invokeImpl(bool userThread)
|
|
|
272
791
|
{
|
|
273
792
|
//
|
|
274
793
|
// If called from the user thread we re-throw, the exception
|
|
275
|
-
// will be catch by the caller and abort() will be called.
|
|
794
|
+
// will be catch by the caller and abort(ex) will be called.
|
|
276
795
|
//
|
|
277
796
|
if(userThread)
|
|
278
797
|
{
|
|
279
798
|
throw;
|
|
280
799
|
}
|
|
281
|
-
else if(
|
|
800
|
+
else if(exceptionImpl(ex)) // No retries, we're done
|
|
282
801
|
{
|
|
283
|
-
|
|
802
|
+
invokeExceptionAsync();
|
|
284
803
|
}
|
|
285
804
|
}
|
|
286
805
|
}
|
|
287
806
|
|
|
288
807
|
bool
|
|
289
|
-
ProxyOutgoingAsyncBase::
|
|
808
|
+
ProxyOutgoingAsyncBase::sentImpl(bool done)
|
|
290
809
|
{
|
|
291
810
|
_sent = true;
|
|
292
811
|
if(done)
|
|
293
812
|
{
|
|
294
|
-
if(_proxy->
|
|
813
|
+
if(_proxy->_getReference()->getInvocationTimeout() != -1)
|
|
295
814
|
{
|
|
296
|
-
_instance->timer()->cancel(
|
|
815
|
+
_instance->timer()->cancel(ICE_SHARED_FROM_THIS);
|
|
297
816
|
}
|
|
298
817
|
}
|
|
299
|
-
return OutgoingAsyncBase::
|
|
818
|
+
return OutgoingAsyncBase::sentImpl(done);
|
|
300
819
|
}
|
|
301
820
|
|
|
302
821
|
bool
|
|
303
|
-
ProxyOutgoingAsyncBase::
|
|
822
|
+
ProxyOutgoingAsyncBase::exceptionImpl(const Exception& ex)
|
|
304
823
|
{
|
|
305
|
-
if(_proxy->
|
|
824
|
+
if(_proxy->_getReference()->getInvocationTimeout() != -1)
|
|
306
825
|
{
|
|
307
|
-
_instance->timer()->cancel(
|
|
826
|
+
_instance->timer()->cancel(ICE_SHARED_FROM_THIS);
|
|
308
827
|
}
|
|
309
|
-
return OutgoingAsyncBase::
|
|
828
|
+
return OutgoingAsyncBase::exceptionImpl(ex);
|
|
310
829
|
}
|
|
311
830
|
|
|
312
831
|
bool
|
|
313
|
-
ProxyOutgoingAsyncBase::
|
|
832
|
+
ProxyOutgoingAsyncBase::responseImpl(bool ok, bool invoke)
|
|
314
833
|
{
|
|
315
|
-
if(_proxy->
|
|
834
|
+
if(_proxy->_getReference()->getInvocationTimeout() != -1)
|
|
316
835
|
{
|
|
317
|
-
_instance->timer()->cancel(
|
|
836
|
+
_instance->timer()->cancel(ICE_SHARED_FROM_THIS);
|
|
318
837
|
}
|
|
319
|
-
return
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
int
|
|
323
|
-
ProxyOutgoingAsyncBase::handleException(const Exception& exc)
|
|
324
|
-
{
|
|
325
|
-
return _proxy->__handleException(exc, _handler, _mode, _sent, _cnt);
|
|
838
|
+
return OutgoingAsyncBase::responseImpl(ok, invoke);
|
|
326
839
|
}
|
|
327
840
|
|
|
328
841
|
void
|
|
329
842
|
ProxyOutgoingAsyncBase::runTimerTask()
|
|
330
843
|
{
|
|
331
|
-
if(_proxy->
|
|
844
|
+
if(_proxy->_getReference()->getInvocationTimeout() == -2)
|
|
332
845
|
{
|
|
333
846
|
cancel(ConnectionTimeoutException(__FILE__, __LINE__));
|
|
334
847
|
}
|
|
@@ -338,24 +851,22 @@ ProxyOutgoingAsyncBase::runTimerTask()
|
|
|
338
851
|
}
|
|
339
852
|
}
|
|
340
853
|
|
|
341
|
-
OutgoingAsync::OutgoingAsync(const
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
ProxyOutgoingAsyncBase(prx, operation, delegate, cookie),
|
|
346
|
-
_encoding(getCompatibleEncoding(prx->__reference()->getEncoding()))
|
|
854
|
+
OutgoingAsync::OutgoingAsync(const ObjectPrxPtr& prx, bool synchronous) :
|
|
855
|
+
ProxyOutgoingAsyncBase(prx),
|
|
856
|
+
_encoding(getCompatibleEncoding(prx->_getReference()->getEncoding())),
|
|
857
|
+
_synchronous(synchronous)
|
|
347
858
|
{
|
|
348
859
|
}
|
|
349
860
|
|
|
350
861
|
void
|
|
351
|
-
OutgoingAsync::prepare(const string& operation, OperationMode mode, const Context
|
|
862
|
+
OutgoingAsync::prepare(const string& operation, OperationMode mode, const Context& context)
|
|
352
863
|
{
|
|
353
|
-
checkSupportedProtocol(getCompatibleProtocol(_proxy->
|
|
864
|
+
checkSupportedProtocol(getCompatibleProtocol(_proxy->_getReference()->getProtocol()));
|
|
354
865
|
|
|
355
866
|
_mode = mode;
|
|
356
|
-
_observer.attach(_proxy
|
|
867
|
+
_observer.attach(_proxy, operation, context);
|
|
357
868
|
|
|
358
|
-
switch(_proxy->
|
|
869
|
+
switch(_proxy->_getReference()->getMode())
|
|
359
870
|
{
|
|
360
871
|
case Reference::ModeTwoway:
|
|
361
872
|
case Reference::ModeOneway:
|
|
@@ -368,12 +879,12 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
|
|
|
368
879
|
case Reference::ModeBatchOneway:
|
|
369
880
|
case Reference::ModeBatchDatagram:
|
|
370
881
|
{
|
|
371
|
-
_proxy->
|
|
882
|
+
_proxy->_getBatchRequestQueue()->prepareBatchRequest(&_os);
|
|
372
883
|
break;
|
|
373
884
|
}
|
|
374
885
|
}
|
|
375
886
|
|
|
376
|
-
Reference* ref = _proxy->
|
|
887
|
+
Reference* ref = _proxy->_getReference().get();
|
|
377
888
|
|
|
378
889
|
_os.write(ref->getIdentity());
|
|
379
890
|
|
|
@@ -394,12 +905,22 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
|
|
|
394
905
|
|
|
395
906
|
_os.write(static_cast<Byte>(_mode));
|
|
396
907
|
|
|
397
|
-
|
|
908
|
+
#if defined(_MSC_VER) && (_MSC_VER <= 1600)
|
|
909
|
+
//
|
|
910
|
+
// COMPILERFIX VC90 and VC100 get confused with namespaces and we need to
|
|
911
|
+
// defined both Ice::noExplicitContext and IceProxy::Ice::noExplicitContext
|
|
912
|
+
// see comments in Ice/Proxy.h.
|
|
913
|
+
//
|
|
914
|
+
if(&context != &Ice::noExplicitContext &&
|
|
915
|
+
&context != &IceProxy::Ice::noExplicitContext)
|
|
916
|
+
#else
|
|
917
|
+
if(&context != &Ice::noExplicitContext)
|
|
918
|
+
#endif
|
|
398
919
|
{
|
|
399
920
|
//
|
|
400
921
|
// Explicit context
|
|
401
922
|
//
|
|
402
|
-
_os.write(
|
|
923
|
+
_os.write(context);
|
|
403
924
|
}
|
|
404
925
|
else
|
|
405
926
|
{
|
|
@@ -422,61 +943,11 @@ OutgoingAsync::prepare(const string& operation, OperationMode mode, const Contex
|
|
|
422
943
|
bool
|
|
423
944
|
OutgoingAsync::sent()
|
|
424
945
|
{
|
|
425
|
-
return ProxyOutgoingAsyncBase::
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
AsyncStatus
|
|
429
|
-
OutgoingAsync::invokeRemote(const ConnectionIPtr& connection, bool compress, bool response)
|
|
430
|
-
{
|
|
431
|
-
_cachedConnection = connection;
|
|
432
|
-
return connection->sendAsyncRequest(this, compress, response, 0);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
AsyncStatus
|
|
436
|
-
OutgoingAsync::invokeCollocated(CollocatedRequestHandler* handler)
|
|
437
|
-
{
|
|
438
|
-
return handler->invokeAsyncRequest(this, 0);
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
void
|
|
442
|
-
OutgoingAsync::abort(const Exception& ex)
|
|
443
|
-
{
|
|
444
|
-
const Reference::Mode mode = _proxy->__reference()->getMode();
|
|
445
|
-
if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
|
|
446
|
-
{
|
|
447
|
-
//
|
|
448
|
-
// If we didn't finish a batch oneway or datagram request, we
|
|
449
|
-
// must notify the connection about that we give up ownership
|
|
450
|
-
// of the batch stream.
|
|
451
|
-
//
|
|
452
|
-
_proxy->__getBatchRequestQueue()->abortBatchRequest(&_os);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
ProxyOutgoingAsyncBase::abort(ex);
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
void
|
|
459
|
-
OutgoingAsync::invoke()
|
|
460
|
-
{
|
|
461
|
-
const Reference::Mode mode = _proxy->__reference()->getMode();
|
|
462
|
-
if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
|
|
463
|
-
{
|
|
464
|
-
_sentSynchronously = true;
|
|
465
|
-
_proxy->__getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, getOperation());
|
|
466
|
-
finished(true);
|
|
467
|
-
return; // Don't call sent/completed callback for batch AMI requests
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
//
|
|
471
|
-
// NOTE: invokeImpl doesn't throw so this can be called from the
|
|
472
|
-
// try block with the catch block calling abort() in case of an
|
|
473
|
-
// exception.
|
|
474
|
-
//
|
|
475
|
-
invokeImpl(true); // userThread = true
|
|
946
|
+
return ProxyOutgoingAsyncBase::sentImpl(!_proxy->ice_isTwoway()); // done = true if it's not a two-way proxy
|
|
476
947
|
}
|
|
477
948
|
|
|
478
949
|
bool
|
|
479
|
-
OutgoingAsync::
|
|
950
|
+
OutgoingAsync::response()
|
|
480
951
|
{
|
|
481
952
|
//
|
|
482
953
|
// NOTE: this method is called from ConnectionI.parseMessage
|
|
@@ -533,7 +1004,7 @@ OutgoingAsync::completed()
|
|
|
533
1004
|
string operation;
|
|
534
1005
|
_is.read(operation, false);
|
|
535
1006
|
|
|
536
|
-
|
|
1007
|
+
IceInternal::UniquePtr<RequestFailedException> ex;
|
|
537
1008
|
switch(replyStatus)
|
|
538
1009
|
{
|
|
539
1010
|
case replyObjectNotExist:
|
|
@@ -574,7 +1045,7 @@ OutgoingAsync::completed()
|
|
|
574
1045
|
string unknown;
|
|
575
1046
|
_is.read(unknown, false);
|
|
576
1047
|
|
|
577
|
-
|
|
1048
|
+
IceInternal::UniquePtr<UnknownException> ex;
|
|
578
1049
|
switch(replyStatus)
|
|
579
1050
|
{
|
|
580
1051
|
case replyUnknownException:
|
|
@@ -612,276 +1083,243 @@ OutgoingAsync::completed()
|
|
|
612
1083
|
}
|
|
613
1084
|
}
|
|
614
1085
|
|
|
615
|
-
return
|
|
1086
|
+
return responseImpl(replyStatus == replyOK, true);
|
|
616
1087
|
}
|
|
617
1088
|
catch(const Exception& ex)
|
|
618
1089
|
{
|
|
619
|
-
return
|
|
1090
|
+
return exception(ex);
|
|
620
1091
|
}
|
|
621
1092
|
}
|
|
622
1093
|
|
|
623
|
-
ProxyFlushBatchAsync::ProxyFlushBatchAsync(const ObjectPrx& proxy,
|
|
624
|
-
const string& operation,
|
|
625
|
-
const CallbackBasePtr& delegate,
|
|
626
|
-
const LocalObjectPtr& cookie) :
|
|
627
|
-
ProxyOutgoingAsyncBase(proxy, operation, delegate, cookie)
|
|
628
|
-
{
|
|
629
|
-
_observer.attach(proxy.get(), operation, 0);
|
|
630
|
-
_batchRequestNum = proxy->__getBatchRequestQueue()->swap(&_os);
|
|
631
|
-
}
|
|
632
|
-
|
|
633
1094
|
AsyncStatus
|
|
634
|
-
|
|
1095
|
+
OutgoingAsync::invokeRemote(const ConnectionIPtr& connection, bool compress, bool response)
|
|
635
1096
|
{
|
|
636
|
-
if(_batchRequestNum == 0)
|
|
637
|
-
{
|
|
638
|
-
if(sent())
|
|
639
|
-
{
|
|
640
|
-
return static_cast<AsyncStatus>(AsyncStatusSent | AsyncStatusInvokeSentCallback);
|
|
641
|
-
}
|
|
642
|
-
else
|
|
643
|
-
{
|
|
644
|
-
return AsyncStatusSent;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
1097
|
_cachedConnection = connection;
|
|
648
|
-
return connection->sendAsyncRequest(
|
|
1098
|
+
return connection->sendAsyncRequest(ICE_SHARED_FROM_THIS, compress, response, 0);
|
|
649
1099
|
}
|
|
650
1100
|
|
|
651
1101
|
AsyncStatus
|
|
652
|
-
|
|
1102
|
+
OutgoingAsync::invokeCollocated(CollocatedRequestHandler* handler)
|
|
653
1103
|
{
|
|
654
|
-
|
|
655
|
-
{
|
|
656
|
-
if(sent())
|
|
657
|
-
{
|
|
658
|
-
return static_cast<AsyncStatus>(AsyncStatusSent | AsyncStatusInvokeSentCallback);
|
|
659
|
-
}
|
|
660
|
-
else
|
|
661
|
-
{
|
|
662
|
-
return AsyncStatusSent;
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
return handler->invokeAsyncRequest(this, _batchRequestNum);
|
|
1104
|
+
return handler->invokeAsyncRequest(this, 0, _synchronous);
|
|
666
1105
|
}
|
|
667
1106
|
|
|
668
1107
|
void
|
|
669
|
-
|
|
670
|
-
{
|
|
671
|
-
checkSupportedProtocol(getCompatibleProtocol(_proxy->__reference()->getProtocol()));
|
|
672
|
-
invokeImpl(true); // userThread = true
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
ProxyGetConnection::ProxyGetConnection(const ObjectPrx& prx,
|
|
676
|
-
const string& operation,
|
|
677
|
-
const CallbackBasePtr& delegate,
|
|
678
|
-
const LocalObjectPtr& cookie) :
|
|
679
|
-
ProxyOutgoingAsyncBase(prx, operation, delegate, cookie)
|
|
680
|
-
{
|
|
681
|
-
_observer.attach(prx.get(), operation, 0);
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
AsyncStatus
|
|
685
|
-
ProxyGetConnection::invokeRemote(const ConnectionIPtr& connection, bool, bool)
|
|
1108
|
+
OutgoingAsync::abort(const Exception& ex)
|
|
686
1109
|
{
|
|
687
|
-
|
|
688
|
-
if(
|
|
1110
|
+
const Reference::Mode mode = _proxy->_getReference()->getMode();
|
|
1111
|
+
if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
|
|
689
1112
|
{
|
|
690
|
-
|
|
1113
|
+
//
|
|
1114
|
+
// If we didn't finish a batch oneway or datagram request, we
|
|
1115
|
+
// must notify the connection about that we give up ownership
|
|
1116
|
+
// of the batch stream.
|
|
1117
|
+
//
|
|
1118
|
+
_proxy->_getBatchRequestQueue()->abortBatchRequest(&_os);
|
|
691
1119
|
}
|
|
692
|
-
|
|
1120
|
+
|
|
1121
|
+
ProxyOutgoingAsyncBase::abort(ex);
|
|
693
1122
|
}
|
|
694
1123
|
|
|
695
|
-
|
|
696
|
-
|
|
1124
|
+
void
|
|
1125
|
+
OutgoingAsync::invoke(const string& operation)
|
|
697
1126
|
{
|
|
698
|
-
|
|
1127
|
+
const Reference::Mode mode = _proxy->_getReference()->getMode();
|
|
1128
|
+
if(mode == Reference::ModeBatchOneway || mode == Reference::ModeBatchDatagram)
|
|
699
1129
|
{
|
|
700
|
-
|
|
1130
|
+
_sentSynchronously = true;
|
|
1131
|
+
_proxy->_getBatchRequestQueue()->finishBatchRequest(&_os, _proxy, operation);
|
|
1132
|
+
responseImpl(true, false); // Don't call sent/completed callback for batch AMI requests
|
|
1133
|
+
return;
|
|
701
1134
|
}
|
|
702
|
-
return AsyncStatusSent;
|
|
703
|
-
}
|
|
704
1135
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
1136
|
+
//
|
|
1137
|
+
// NOTE: invokeImpl doesn't throw so this can be called from the
|
|
1138
|
+
// try block with the catch block calling abort(ex) in case of an
|
|
1139
|
+
// exception.
|
|
1140
|
+
//
|
|
708
1141
|
invokeImpl(true); // userThread = true
|
|
709
1142
|
}
|
|
710
1143
|
|
|
711
|
-
|
|
712
|
-
const CommunicatorPtr& communicator,
|
|
713
|
-
const InstancePtr& instance,
|
|
714
|
-
const string& operation,
|
|
715
|
-
const CallbackBasePtr& delegate,
|
|
716
|
-
const LocalObjectPtr& cookie) :
|
|
717
|
-
OutgoingAsyncBase(communicator, instance, operation, delegate, cookie), _connection(connection)
|
|
718
|
-
{
|
|
719
|
-
_observer.attach(instance.get(), operation);
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
ConnectionPtr
|
|
723
|
-
ConnectionFlushBatchAsync::getConnection() const
|
|
724
|
-
{
|
|
725
|
-
return _connection;
|
|
726
|
-
}
|
|
727
|
-
|
|
1144
|
+
#ifdef ICE_CPP11_MAPPING
|
|
728
1145
|
void
|
|
729
|
-
|
|
1146
|
+
OutgoingAsync::invoke(const string& operation,
|
|
1147
|
+
Ice::OperationMode mode,
|
|
1148
|
+
Ice::FormatType format,
|
|
1149
|
+
const Ice::Context& context,
|
|
1150
|
+
function<void(Ice::OutputStream*)> write)
|
|
730
1151
|
{
|
|
731
1152
|
try
|
|
732
1153
|
{
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
if(batchRequestNum == 0)
|
|
1154
|
+
prepare(operation, mode, context);
|
|
1155
|
+
if(write)
|
|
736
1156
|
{
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
status = static_cast<AsyncStatus>(status | AsyncStatusInvokeSentCallback);
|
|
741
|
-
}
|
|
1157
|
+
_os.startEncapsulation(_encoding, format);
|
|
1158
|
+
write(&_os);
|
|
1159
|
+
_os.endEncapsulation();
|
|
742
1160
|
}
|
|
743
1161
|
else
|
|
744
1162
|
{
|
|
745
|
-
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
if(status & AsyncStatusSent)
|
|
749
|
-
{
|
|
750
|
-
_sentSynchronously = true;
|
|
751
|
-
if(status & AsyncStatusInvokeSentCallback)
|
|
752
|
-
{
|
|
753
|
-
invokeSent();
|
|
754
|
-
}
|
|
1163
|
+
_os.writeEmptyEncapsulation(_encoding);
|
|
755
1164
|
}
|
|
1165
|
+
invoke(operation);
|
|
756
1166
|
}
|
|
757
|
-
catch(const
|
|
1167
|
+
catch(const Ice::Exception& ex)
|
|
758
1168
|
{
|
|
759
|
-
|
|
760
|
-
{
|
|
761
|
-
invokeCompletedAsync();
|
|
762
|
-
}
|
|
1169
|
+
abort(ex);
|
|
763
1170
|
}
|
|
764
|
-
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
void
|
|
1174
|
+
OutgoingAsync::throwUserException()
|
|
1175
|
+
{
|
|
1176
|
+
try
|
|
765
1177
|
{
|
|
766
|
-
|
|
1178
|
+
_is.startEncapsulation();
|
|
1179
|
+
_is.throwException();
|
|
1180
|
+
}
|
|
1181
|
+
catch(const UserException& ex)
|
|
1182
|
+
{
|
|
1183
|
+
_is.endEncapsulation();
|
|
1184
|
+
if(_userException)
|
|
767
1185
|
{
|
|
768
|
-
|
|
1186
|
+
_userException(ex);
|
|
769
1187
|
}
|
|
1188
|
+
throw UnknownUserException(__FILE__, __LINE__, ex.ice_id());
|
|
770
1189
|
}
|
|
771
1190
|
}
|
|
772
1191
|
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
1192
|
+
#endif
|
|
1193
|
+
|
|
1194
|
+
#ifdef ICE_CPP11_MAPPING
|
|
1195
|
+
|
|
1196
|
+
bool
|
|
1197
|
+
LambdaInvoke::handleSent(bool, bool alreadySent)
|
|
1198
|
+
{
|
|
1199
|
+
return _sent != nullptr && !alreadySent; // Invoke the sent callback only if not already invoked.
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
bool
|
|
1203
|
+
LambdaInvoke::handleException(const Ice::Exception&)
|
|
779
1204
|
{
|
|
780
|
-
|
|
1205
|
+
return _exception != nullptr; // Invoke the callback
|
|
1206
|
+
}
|
|
781
1207
|
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
1208
|
+
bool
|
|
1209
|
+
LambdaInvoke::handleResponse(bool)
|
|
1210
|
+
{
|
|
1211
|
+
return _response != nullptr;
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
void
|
|
1215
|
+
LambdaInvoke::handleInvokeSent(bool sentSynchronously, OutgoingAsyncBase*) const
|
|
1216
|
+
{
|
|
1217
|
+
_sent(sentSynchronously);
|
|
788
1218
|
}
|
|
789
1219
|
|
|
790
1220
|
void
|
|
791
|
-
|
|
1221
|
+
LambdaInvoke::handleInvokeException(const Ice::Exception& ex, OutgoingAsyncBase*) const
|
|
792
1222
|
{
|
|
793
|
-
|
|
1223
|
+
try
|
|
794
1224
|
{
|
|
795
|
-
|
|
1225
|
+
ex.ice_throw();
|
|
1226
|
+
}
|
|
1227
|
+
catch(const Ice::Exception&)
|
|
1228
|
+
{
|
|
1229
|
+
_exception(current_exception());
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
796
1232
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
_observer(observer)
|
|
803
|
-
{
|
|
804
|
-
}
|
|
1233
|
+
void
|
|
1234
|
+
LambdaInvoke::handleInvokeResponse(bool ok, OutgoingAsyncBase*) const
|
|
1235
|
+
{
|
|
1236
|
+
_response(ok);
|
|
1237
|
+
}
|
|
805
1238
|
|
|
806
|
-
|
|
807
|
-
{
|
|
808
|
-
_childObserver.detach();
|
|
809
|
-
_outAsync->check(false);
|
|
810
|
-
return false;
|
|
811
|
-
}
|
|
1239
|
+
#else // C++98
|
|
812
1240
|
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
_childObserver.failed(ex.ice_name());
|
|
816
|
-
_childObserver.detach();
|
|
817
|
-
_outAsync->check(false);
|
|
818
|
-
return false;
|
|
819
|
-
}
|
|
1241
|
+
namespace
|
|
1242
|
+
{
|
|
820
1243
|
|
|
821
|
-
|
|
1244
|
+
//
|
|
1245
|
+
// Dummy class derived from CallbackBase
|
|
1246
|
+
// We use this class for the dummyCallback extern pointer in OutgoingAsync. In turn,
|
|
1247
|
+
// this allows us to test whether the user supplied a null delegate instance to the
|
|
1248
|
+
// generated begin_ method without having to generate a separate test to throw IllegalArgumentException
|
|
1249
|
+
// in the inlined versions of the begin_ method. In other words, this reduces the amount of generated
|
|
1250
|
+
// object code.
|
|
1251
|
+
//
|
|
1252
|
+
class DummyCallback : public CallbackBase
|
|
1253
|
+
{
|
|
1254
|
+
public:
|
|
822
1255
|
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
}
|
|
1256
|
+
DummyCallback()
|
|
1257
|
+
{
|
|
1258
|
+
}
|
|
827
1259
|
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
1260
|
+
virtual void
|
|
1261
|
+
completed(const Ice::AsyncResultPtr&) const
|
|
1262
|
+
{
|
|
1263
|
+
assert(false);
|
|
1264
|
+
}
|
|
831
1265
|
|
|
1266
|
+
virtual CallbackBasePtr
|
|
1267
|
+
verify(const Ice::LocalObjectPtr&)
|
|
832
1268
|
{
|
|
833
|
-
|
|
834
|
-
|
|
1269
|
+
//
|
|
1270
|
+
// Called by the AsyncResult constructor to verify the delegate. The dummy
|
|
1271
|
+
// delegate is passed when the user used a begin_ method without delegate.
|
|
1272
|
+
// By returning 0 here, we tell the AsyncResult that no delegates was
|
|
1273
|
+
// provided.
|
|
1274
|
+
//
|
|
1275
|
+
return 0;
|
|
835
1276
|
}
|
|
836
1277
|
|
|
837
|
-
|
|
1278
|
+
virtual void
|
|
1279
|
+
sent(const AsyncResultPtr&) const
|
|
838
1280
|
{
|
|
839
|
-
|
|
840
|
-
int batchRequestNum = con->getBatchRequestQueue()->swap(flushBatch->getOs());
|
|
841
|
-
if(batchRequestNum == 0)
|
|
842
|
-
{
|
|
843
|
-
flushBatch->sent();
|
|
844
|
-
}
|
|
845
|
-
else
|
|
846
|
-
{
|
|
847
|
-
con->sendAsyncRequest(flushBatch, false, false, batchRequestNum);
|
|
848
|
-
}
|
|
1281
|
+
assert(false);
|
|
849
1282
|
}
|
|
850
|
-
|
|
1283
|
+
|
|
1284
|
+
virtual bool
|
|
1285
|
+
hasSentCallback() const
|
|
851
1286
|
{
|
|
852
|
-
|
|
853
|
-
|
|
1287
|
+
assert(false);
|
|
1288
|
+
return false;
|
|
854
1289
|
}
|
|
1290
|
+
};
|
|
1291
|
+
|
|
855
1292
|
}
|
|
856
1293
|
|
|
857
|
-
|
|
858
|
-
|
|
1294
|
+
//
|
|
1295
|
+
// This gives a pointer value to compare against in the generated
|
|
1296
|
+
// begin_ method to decide whether the caller passed a null pointer
|
|
1297
|
+
// versus the generated inline version of the begin_ method having
|
|
1298
|
+
// passed a pointer to the dummy delegate.
|
|
1299
|
+
//
|
|
1300
|
+
CallbackBasePtr IceInternal::dummyCallback = new DummyCallback;
|
|
1301
|
+
|
|
1302
|
+
CallbackBase::~CallbackBase()
|
|
859
1303
|
{
|
|
860
|
-
|
|
1304
|
+
// Out of line to avoid weak vtable
|
|
861
1305
|
}
|
|
862
1306
|
|
|
863
1307
|
void
|
|
864
|
-
|
|
1308
|
+
CallbackBase::checkCallback(bool obj, bool cb)
|
|
865
1309
|
{
|
|
1310
|
+
if(!obj)
|
|
866
1311
|
{
|
|
867
|
-
IceUtil::
|
|
868
|
-
assert(_useCount > 0);
|
|
869
|
-
if(--_useCount > 0)
|
|
870
|
-
{
|
|
871
|
-
return;
|
|
872
|
-
}
|
|
1312
|
+
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "callback object cannot be null");
|
|
873
1313
|
}
|
|
874
|
-
|
|
875
|
-
if(sent(true))
|
|
1314
|
+
if(!cb)
|
|
876
1315
|
{
|
|
877
|
-
|
|
878
|
-
{
|
|
879
|
-
_sentSynchronously = true;
|
|
880
|
-
invokeSent();
|
|
881
|
-
}
|
|
882
|
-
else
|
|
883
|
-
{
|
|
884
|
-
invokeSentAsync();
|
|
885
|
-
}
|
|
1316
|
+
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "callback cannot be null");
|
|
886
1317
|
}
|
|
887
1318
|
}
|
|
1319
|
+
|
|
1320
|
+
GenericCallbackBase::~GenericCallbackBase()
|
|
1321
|
+
{
|
|
1322
|
+
// Out of line to avoid weak vtable
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
#endif
|