zeroc-ice 3.6.5 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/BZIP2_LICENSE +42 -0
- data/ICE_LICENSE +17 -17
- data/LICENSE +12 -12
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +150 -53
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +2 -12
- data/ext/Connection.cpp +89 -68
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +16 -45
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -5
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +4 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/Operation.cpp +33 -44
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +22 -57
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +5 -5
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +244 -171
- data/ext/Types.h +118 -66
- data/ext/Util.cpp +13 -9
- data/ext/Util.h +10 -10
- data/ext/ValueFactoryManager.cpp +445 -0
- data/ext/ValueFactoryManager.h +100 -0
- data/ext/extconf.rb +47 -45
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/Application.h +77 -60
- data/ext/ice/cpp/include/Ice/AsyncResult.h +34 -318
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +4 -2
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +5 -10
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
- data/ext/ice/cpp/include/Ice/Buffer.h +10 -10
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +14 -12
- data/ext/ice/cpp/include/Ice/Comparable.h +130 -0
- data/ext/ice/cpp/include/Ice/Config.h +7 -36
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +107 -11
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +5 -1
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +28 -0
- data/ext/ice/cpp/include/Ice/{DefaultObjectFactory.h → DefaultValueFactory.h} +28 -14
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +4 -6
- data/ext/ice/cpp/include/Ice/Dispatcher.h +14 -13
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +7 -5
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Exception.h +66 -56
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +11 -12
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +27 -25
- data/ext/ice/cpp/include/Ice/Format.h +6 -1
- data/ext/ice/cpp/include/Ice/Functional.h +33 -33
- data/ext/ice/cpp/include/Ice/GCObject.h +9 -5
- data/ext/ice/cpp/include/Ice/Handle.h +6 -11
- data/ext/ice/cpp/include/Ice/Ice.h +9 -5
- data/ext/ice/cpp/include/{IceUtil → Ice}/IconvStringConverter.h +108 -62
- data/ext/ice/cpp/include/Ice/Incoming.h +109 -33
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +63 -23
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +7 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +178 -38
- data/ext/ice/cpp/include/Ice/InputStream.h +994 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -2
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +46 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +9 -9
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +20 -14
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +114 -65
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +23 -5
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +99 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +17 -4
- data/ext/ice/cpp/include/Ice/Object.h +105 -56
- data/ext/ice/cpp/include/Ice/ObjectF.h +8 -3
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +18 -8
- data/ext/ice/cpp/include/Ice/Optional.h +1084 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +655 -84
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +12 -6
- data/ext/ice/cpp/include/Ice/OutputStream.h +753 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +19 -12
- data/ext/ice/cpp/include/Ice/Proxy.h +1329 -717
- data/ext/ice/cpp/include/Ice/ProxyF.h +11 -33
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +34 -50
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +22 -3
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +10 -4
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +6 -1
- data/ext/ice/cpp/include/{IceUtil → Ice}/SHA1.h +16 -16
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +13 -18
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +46 -20
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +14 -6
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +159 -49
- data/ext/ice/cpp/include/Ice/StringConverter.h +52 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/{slice/Ice/ObjectFactoryF.ice → ext/ice/cpp/include/Ice/UUID.h} +9 -7
- data/ext/ice/cpp/include/{IceUtil → Ice}/UniquePtr.h +21 -22
- data/ext/ice/cpp/include/Ice/UniqueRef.h +98 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +40 -8
- data/ext/ice/cpp/include/Ice/Value.h +104 -0
- data/{slice/Freeze/ConnectionF.ice → ext/ice/cpp/include/Ice/ValueF.h} +11 -7
- data/ext/ice/cpp/include/IceSSL/Config.h +8 -23
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +17 -6
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +130 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +172 -259
- data/ext/ice/cpp/include/IceSSL/SChannel.h +66 -0
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +66 -0
- data/ext/ice/cpp/include/IceSSL/UWP.h +58 -0
- data/ext/ice/cpp/include/IceUtil/Atomic.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Cond.h +17 -18
- data/ext/ice/cpp/include/IceUtil/Config.h +138 -39
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +97 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +5 -5
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +23 -17
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -3
- data/ext/ice/cpp/include/IceUtil/Exception.h +157 -67
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +148 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Handle.h +11 -11
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +4 -10
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Iterator.h +2 -2
- data/ext/ice/cpp/include/IceUtil/Lock.h +8 -10
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -2
- data/ext/ice/cpp/include/IceUtil/Mutex.h +17 -11
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +2 -2
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +4 -4
- data/ext/ice/cpp/include/IceUtil/Optional.h +32 -18
- data/ext/ice/cpp/include/IceUtil/Options.h +17 -18
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +55 -29
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +6 -6
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +11 -10
- data/ext/ice/cpp/include/IceUtil/Random.h +3 -3
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +7 -8
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +58 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -9
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +8 -2
- data/ext/ice/cpp/include/IceUtil/Shared.h +5 -7
- data/ext/ice/cpp/{src → include}/IceUtil/StopWatch.h +2 -2
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +77 -72
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +32 -21
- data/ext/ice/cpp/include/IceUtil/Thread.h +10 -12
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +33 -42
- data/ext/ice/cpp/include/IceUtil/Time.h +3 -3
- data/ext/ice/cpp/include/IceUtil/Timer.h +14 -13
- data/ext/ice/cpp/include/IceUtil/UUID.h +2 -2
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/{Ice → generated/Ice}/BuiltinSequences.h +41 -8
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +364 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/CommunicatorF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Connection.h +872 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ConnectionF.h +46 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Current.h +71 -8
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +582 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointF.h +62 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/EndpointTypes.h +31 -16
- data/ext/ice/cpp/include/{Ice → generated/Ice}/FacetMap.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/Identity.h +221 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContext.h +72 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ImplicitContextF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +602 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/InstrumentationF.h +54 -8
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +2802 -0
- data/ext/ice/cpp/include/generated/Ice/Locator.h +2036 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LocatorF.h +53 -12
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Logger.h +71 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/LoggerF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +2649 -0
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +302 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ObjectAdapterF.h +40 -8
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +142 -0
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +197 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PluginF.h +43 -8
- data/ext/ice/cpp/include/generated/Ice/Process.h +536 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ProcessF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/Properties.h +88 -21
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +749 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/PropertiesF.h +48 -10
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +1449 -0
- data/ext/ice/cpp/include/generated/Ice/Router.h +1032 -0
- data/ext/ice/cpp/include/{Ice → generated/Ice}/RouterF.h +45 -10
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocator.h +65 -13
- data/ext/ice/cpp/include/{Ice → generated/Ice}/ServantLocatorF.h +40 -8
- data/ext/ice/cpp/include/{Ice → generated/Ice}/SliceChecksumDict.h +23 -8
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +169 -0
- data/ext/ice/cpp/include/generated/Ice/Version.h +334 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +172 -0
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +98 -0
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +156 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +18 -14
- data/ext/ice/cpp/src/Ice/ACM.h +9 -2
- data/ext/ice/cpp/{include → src}/Ice/ACMF.h +10 -5
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +4 -3
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.cpp +9 -9
- data/ext/ice/cpp/src/{IceUtil → Ice}/ArgVector.h +7 -7
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +15 -538
- data/ext/ice/cpp/src/Ice/Base64.cpp +11 -11
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +40 -12
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +15 -10
- data/ext/ice/cpp/src/Ice/Buffer.cpp +74 -12
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +20 -6
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +85 -190
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +17 -18
- data/ext/ice/cpp/src/Ice/Communicator.cpp +39 -8
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +271 -104
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +84 -28
- data/ext/ice/cpp/src/{IceUtil → Ice}/Cond.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +58 -125
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +11 -22
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +6 -2
- data/ext/ice/cpp/src/Ice/Connection.cpp +88 -8
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +158 -80
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +41 -23
- data/ext/ice/cpp/{include → src}/Ice/ConnectionFactoryF.h +8 -3
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +707 -653
- data/ext/ice/cpp/src/Ice/ConnectionI.h +97 -69
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +2 -15
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +4 -3
- data/ext/ice/cpp/src/Ice/Connector.cpp +6 -1
- data/ext/ice/cpp/src/Ice/Connector.h +4 -3
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/CountDownLatch.cpp +4 -4
- data/ext/ice/cpp/src/Ice/Current.cpp +29 -6
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +6 -5
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +5 -25
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +29 -19
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +85 -6
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +152 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +72 -6
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +35 -19
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +17 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +35 -9
- data/ext/ice/cpp/src/Ice/EndpointIF.h +18 -5
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +18 -6
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +6 -4
- data/ext/ice/cpp/src/Ice/EventHandler.h +13 -8
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +5 -2
- data/ext/ice/cpp/src/Ice/Exception.cpp +95 -86
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +20 -6
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +37 -28
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -4
- data/ext/ice/cpp/src/Ice/GCObject.cpp +28 -25
- data/ext/ice/cpp/src/Ice/HashUtil.h +2 -3
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -2
- data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +92 -53
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +19 -10
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +6 -2
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +56 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +24 -10
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +14 -14
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +7 -5
- data/ext/ice/cpp/src/Ice/Incoming.cpp +276 -245
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +104 -209
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +5 -4
- data/ext/ice/cpp/src/Ice/Initialize.cpp +299 -172
- data/ext/ice/cpp/src/Ice/InputStream.cpp +2773 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +191 -231
- data/ext/ice/cpp/src/Ice/Instance.h +30 -18
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +106 -7
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +117 -99
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +30 -31
- data/ext/ice/cpp/src/Ice/LocalException.cpp +1190 -416
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Locator.cpp +1167 -1215
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +129 -163
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +29 -29
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +35 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +178 -73
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +4 -4
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +14 -44
- data/ext/ice/cpp/src/Ice/LoggerI.h +7 -13
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +10 -12
- data/ext/ice/cpp/src/Ice/Metrics.cpp +1059 -1069
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +49 -19
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Network.cpp +534 -170
- data/ext/ice/cpp/src/Ice/Network.h +100 -23
- data/ext/ice/cpp/src/Ice/NetworkF.h +2 -2
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +21 -14
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +5 -2
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +217 -221
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -6
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +35 -14
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +13 -7
- data/ext/ice/cpp/{include → src}/Ice/ObjectAdapterFactoryF.h +5 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +184 -58
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +32 -26
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +9 -32
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +40 -18
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +14 -5
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +803 -365
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +1399 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +45 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +13 -13
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +5 -6
- data/ext/ice/cpp/src/Ice/Process.cpp +256 -114
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/Properties.cpp +38 -8
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +340 -328
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +81 -17
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +29 -5
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +25 -26
- data/ext/ice/cpp/src/Ice/PropertiesI.h +8 -11
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +107 -50
- data/ext/ice/cpp/src/Ice/PropertyNames.h +4 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +37 -2
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +9 -20
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +6 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +3 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +690 -964
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +23 -32
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +16 -11
- data/ext/ice/cpp/src/Ice/Reference.cpp +75 -69
- data/ext/ice/cpp/src/Ice/Reference.h +27 -22
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +18 -21
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +12 -12
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +18 -4
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +672 -552
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +5 -3
- data/ext/ice/cpp/src/Ice/RequestHandler.h +10 -13
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +10 -6
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +3 -6
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +16 -7
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +6 -12
- data/ext/ice/cpp/src/Ice/RetryQueue.h +7 -6
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +523 -474
- data/ext/ice/cpp/src/Ice/RouterF.cpp +29 -6
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +91 -70
- data/ext/ice/cpp/src/Ice/RouterInfo.h +43 -32
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/{IceUtil → Ice}/SHA1.cpp +21 -21
- data/ext/ice/cpp/src/Ice/Selector.cpp +989 -923
- data/ext/ice/cpp/src/Ice/Selector.h +100 -147
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +37 -6
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +27 -5
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +2 -2
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +20 -6
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +2 -2
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +72 -20
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +173 -18
- data/ext/ice/cpp/src/Ice/StreamSocket.h +13 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +48 -17
- data/ext/ice/cpp/src/Ice/StringUtil.h +35 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +8 -4
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +2 -3
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +158 -32
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +12 -5
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -7
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +40 -32
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +11 -8
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +12 -27
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -10
- data/ext/ice/cpp/src/{IceUtil → Ice}/Thread.cpp +24 -41
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +175 -267
- data/ext/ice/cpp/src/Ice/ThreadPool.h +38 -43
- data/ext/ice/cpp/src/{IceUtil → Ice}/Timer.cpp +28 -21
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +2 -2
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +53 -31
- data/ext/ice/cpp/src/Ice/TraceUtil.h +13 -6
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -2
- data/ext/ice/cpp/src/Ice/Transceiver.h +8 -7
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +2 -8
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -2
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +92 -31
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +12 -4
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +150 -179
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +15 -17
- data/ext/ice/cpp/src/Ice/Value.cpp +81 -0
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +84 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +70 -0
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +42 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +24 -14
- data/ext/ice/cpp/src/Ice/VirtualShared.h +43 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +3 -9
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +3 -7
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +5 -11
- data/ext/ice/cpp/src/Ice/WSConnector.h +3 -6
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +185 -80
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +21 -31
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +41 -37
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +7 -21
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +526 -264
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +341 -455
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +86 -26
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +59 -23
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +315 -61
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +83 -36
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +57 -59
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +3 -3
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +396 -159
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +251 -355
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +52 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +526 -131
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +19 -165
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +8 -17
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +284 -0
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +69 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +39 -11
- data/ext/ice/cpp/src/{Ice/ObjectFactoryF.cpp → IceSSL/ConnectionInfoF.cpp} +31 -9
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +14 -56
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +6 -13
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +205 -197
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +41 -33
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +39 -10
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -6
- data/ext/ice/cpp/src/IceSSL/Instance.h +7 -7
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +11 -7
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +588 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +117 -152
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +64 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +132 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +400 -89
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +36 -21
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +63 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +71 -41
- data/ext/ice/cpp/src/IceSSL/PluginI.h +13 -18
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +9 -54
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +7 -7
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +585 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +491 -75
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +126 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +32 -0
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +78 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +126 -169
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +19 -22
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +79 -74
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +24 -187
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +4 -19
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +862 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +56 -214
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +60 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +31 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +80 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +137 -144
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +25 -28
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +857 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +46 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +9 -13
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +4 -4
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +3 -3
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +271 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +343 -0
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +46 -0
- data/ext/ice/cpp/{include/Ice/ObjectFactoryManagerF.h → src/IceSSL/UWPEngineF.h} +13 -8
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +94 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +388 -0
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +76 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +66 -1256
- data/ext/ice/cpp/src/IceSSL/Util.h +48 -137
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +162 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +22 -22
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +34 -26
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +20 -31
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +25 -116
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +23 -46
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +7 -6
- data/ext/ice/cpp/src/IceUtil/Random.cpp +13 -13
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +3 -9
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +8 -3
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +501 -264
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +540 -235
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +37 -74
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +10 -10
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +98 -97
- data/ext/ice/cpp/src/IceUtil/Unicode.h +21 -35
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +838 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +815 -163
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +76 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +2 -2
- data/ext/ice/cpp/{include → src}/Slice/Checksum.h +2 -2
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +25 -78
- data/ext/ice/cpp/{include → src}/Slice/FileTracker.h +9 -9
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1994 -1943
- data/ext/ice/cpp/src/Slice/Grammar.h +44 -24
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +14 -14
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2658 -1927
- data/ext/ice/cpp/{include → src}/Slice/JavaUtil.h +178 -59
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
- data/ext/ice/cpp/src/Slice/MD5.h +1 -1
- data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -1
- data/ext/ice/cpp/src/Slice/MD5I.h +1 -1
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +12 -15
- data/ext/ice/cpp/{include → src}/Slice/PHPUtil.h +6 -15
- data/ext/ice/cpp/src/Slice/Parser.cpp +802 -307
- data/ext/ice/cpp/{include → src}/Slice/Parser.h +76 -84
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +43 -21
- data/ext/ice/cpp/{include → src}/Slice/Preprocessor.h +7 -12
- data/ext/ice/cpp/src/Slice/Python.cpp +207 -86
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +683 -679
- data/ext/ice/cpp/{include → src}/Slice/PythonUtil.h +19 -8
- data/ext/ice/cpp/src/Slice/Ruby.cpp +38 -34
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +177 -445
- data/ext/ice/cpp/{include → src}/Slice/RubyUtil.h +6 -6
- data/ext/ice/cpp/src/Slice/Scanner.cpp +218 -306
- data/ext/ice/cpp/src/Slice/{Util.cpp → SliceUtil.cpp} +37 -64
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +374 -0
- data/ext/ice/cpp/src/Slice/Util.h +54 -0
- data/ext/ice/mcpp/Makefile +5 -2
- data/ice.gemspec +2 -7
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +7 -46
- data/lib/Glacier2/PermissionsVerifier.rb +24 -95
- data/lib/Glacier2/PermissionsVerifierF.rb +3 -3
- data/lib/Glacier2/Router.rb +32 -74
- data/lib/Glacier2/RouterF.rb +3 -3
- data/lib/Glacier2/SSLInfo.rb +4 -7
- data/lib/Glacier2/Session.rb +88 -307
- data/lib/Ice.rb +83 -52
- data/lib/Ice/BuiltinSequences.rb +4 -4
- data/lib/Ice/Communicator.rb +56 -58
- data/lib/Ice/CommunicatorF.rb +3 -3
- data/lib/Ice/Connection.rb +153 -162
- data/lib/Ice/ConnectionF.rb +3 -3
- data/lib/Ice/Current.rb +4 -11
- data/lib/Ice/Endpoint.rb +57 -133
- data/lib/Ice/EndpointF.rb +3 -3
- data/lib/Ice/EndpointTypes.rb +3 -7
- data/lib/Ice/FacetMap.rb +4 -4
- data/lib/Ice/Identity.rb +5 -8
- data/lib/Ice/ImplicitContext.rb +5 -34
- data/lib/Ice/ImplicitContextF.rb +3 -3
- data/lib/Ice/Instrumentation.rb +23 -275
- data/lib/Ice/InstrumentationF.rb +3 -3
- data/lib/Ice/LocalException.rb +95 -141
- data/lib/Ice/Locator.rb +51 -165
- data/lib/Ice/LocatorF.rb +3 -3
- data/lib/Ice/Logger.rb +5 -34
- data/lib/Ice/LoggerF.rb +3 -3
- data/lib/Ice/Metrics.rb +61 -416
- data/lib/Ice/ObjectAdapter.rb +34 -0
- data/lib/Ice/ObjectAdapterF.rb +3 -3
- data/lib/Ice/ObjectFactory.rb +5 -30
- data/lib/Ice/Plugin.rb +7 -60
- data/lib/Ice/PluginF.rb +3 -3
- data/lib/Ice/Process.rb +16 -52
- data/lib/Ice/ProcessF.rb +3 -3
- data/lib/Ice/Properties.rb +5 -41
- data/lib/Ice/PropertiesAdmin.rb +19 -56
- data/lib/Ice/PropertiesF.rb +3 -3
- data/lib/Ice/RemoteLogger.rb +34 -115
- data/lib/Ice/Router.rb +29 -101
- data/lib/Ice/RouterF.rb +3 -3
- data/lib/Ice/ServantLocator.rb +31 -0
- data/lib/Ice/{ObjectFactoryF.rb → ServantLocatorF.rb} +6 -6
- data/lib/Ice/SliceChecksumDict.rb +3 -3
- data/lib/Ice/ValueFactory.rb +33 -0
- data/lib/Ice/Version.rb +5 -11
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +44 -148
- data/lib/IceGrid.rb +1 -4
- data/lib/IceGrid/Admin.rb +551 -427
- data/lib/IceGrid/Descriptor.rb +62 -529
- data/lib/IceGrid/Exception.rb +24 -45
- data/lib/IceGrid/FileParser.rb +14 -50
- data/lib/IceGrid/PluginFacade.rb +40 -0
- data/lib/IceGrid/Registry.rb +151 -58
- data/lib/IceGrid/Session.rb +25 -64
- data/lib/IceGrid/UserAccountMapper.rb +14 -50
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +5 -11
- data/lib/IcePatch2/FileServer.rb +33 -76
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +79 -206
- data/lib/IceStorm/Metrics.rb +11 -89
- data/slice/Glacier2/Metrics.ice +8 -4
- data/slice/Glacier2/PermissionsVerifier.ice +10 -7
- data/slice/Glacier2/PermissionsVerifierF.ice +7 -4
- data/slice/Glacier2/Router.ice +10 -8
- data/slice/Glacier2/RouterF.ice +7 -4
- data/slice/Glacier2/SSLInfo.ice +8 -5
- data/slice/Glacier2/Session.ice +15 -13
- data/slice/Ice/BuiltinSequences.ice +7 -4
- data/slice/Ice/Communicator.ice +141 -66
- data/slice/Ice/CommunicatorF.ice +7 -4
- data/slice/Ice/Connection.ice +183 -86
- data/slice/Ice/ConnectionF.ice +7 -4
- data/slice/Ice/Current.ice +13 -9
- data/slice/Ice/Endpoint.ice +63 -14
- data/slice/Ice/EndpointF.ice +7 -4
- data/slice/Ice/EndpointTypes.ice +8 -6
- data/slice/Ice/FacetMap.ice +7 -4
- data/slice/Ice/Identity.ice +13 -5
- data/slice/Ice/ImplicitContext.ice +20 -18
- data/slice/Ice/ImplicitContextF.ice +7 -4
- data/slice/Ice/Instrumentation.ice +20 -19
- data/slice/Ice/InstrumentationF.ice +8 -5
- data/slice/Ice/LocalException.ice +87 -87
- data/slice/Ice/Locator.ice +19 -18
- data/slice/Ice/LocatorF.ice +7 -4
- data/slice/Ice/Logger.ice +9 -7
- data/slice/Ice/LoggerF.ice +7 -4
- data/slice/Ice/Metrics.ice +18 -14
- data/slice/Ice/ObjectAdapter.ice +30 -13
- data/slice/Ice/ObjectAdapterF.ice +7 -4
- data/slice/Ice/ObjectFactory.ice +15 -12
- data/slice/Ice/Plugin.ice +9 -6
- data/slice/Ice/PluginF.ice +8 -5
- data/slice/Ice/Process.ice +9 -6
- data/slice/Ice/ProcessF.ice +7 -4
- data/slice/Ice/Properties.ice +15 -12
- data/slice/Ice/PropertiesAdmin.ice +9 -5
- data/slice/Ice/PropertiesF.ice +7 -4
- data/slice/Ice/RemoteLogger.ice +33 -24
- data/slice/Ice/Router.ice +16 -7
- data/slice/Ice/RouterF.ice +7 -4
- data/slice/Ice/ServantLocator.ice +13 -10
- data/slice/Ice/ServantLocatorF.ice +7 -4
- data/slice/Ice/SliceChecksumDict.ice +7 -4
- data/slice/Ice/ValueFactory.ice +127 -0
- data/slice/Ice/Version.ice +9 -5
- data/slice/IceBT/ConnectionInfo.ice +53 -0
- data/slice/IceBT/EndpointInfo.ice +51 -0
- data/slice/IceBT/Types.ice +39 -0
- data/slice/IceBox/IceBox.ice +20 -21
- data/slice/IceDiscovery/IceDiscovery.ice +9 -5
- data/slice/IceGrid/Admin.ice +390 -30
- data/slice/IceGrid/Descriptor.ice +37 -29
- data/slice/IceGrid/Exception.ice +33 -27
- data/slice/IceGrid/FileParser.ice +9 -6
- data/slice/IceGrid/PluginFacade.ice +11 -9
- data/slice/IceGrid/Registry.ice +139 -16
- data/slice/IceGrid/Session.ice +10 -8
- data/slice/IceGrid/UserAccountMapper.ice +9 -6
- data/slice/IceIAP/ConnectionInfo.ice +70 -0
- data/slice/IceIAP/EndpointInfo.ice +64 -0
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +9 -7
- data/slice/IcePatch2/FileInfo.ice +9 -8
- data/slice/IcePatch2/FileServer.ice +17 -13
- data/slice/IceSSL/ConnectionInfo.ice +14 -17
- data/slice/IceSSL/ConnectionInfoF.ice +24 -0
- data/slice/IceSSL/EndpointInfo.ice +9 -30
- data/slice/IceStorm/IceStorm.ice +22 -18
- data/slice/IceStorm/Metrics.ice +9 -5
- metadata +154 -120
- data/ext/ObjectFactory.cpp +0 -140
- data/ext/ObjectFactory.h +0 -50
- data/ext/ice/cpp/include/Ice/BasicStream.h +0 -1335
- data/ext/ice/cpp/include/Ice/Communicator.h +0 -200
- data/ext/ice/cpp/include/Ice/Connection.h +0 -497
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +0 -62
- data/ext/ice/cpp/include/Ice/Endpoint.h +0 -341
- data/ext/ice/cpp/include/Ice/Identity.h +0 -168
- data/ext/ice/cpp/include/Ice/Instrumentation.h +0 -365
- data/ext/ice/cpp/include/Ice/LocalException.h +0 -1030
- data/ext/ice/cpp/include/Ice/Locator.h +0 -2193
- data/ext/ice/cpp/include/Ice/Metrics.h +0 -2974
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +0 -168
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +0 -92
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +0 -66
- data/ext/ice/cpp/include/Ice/Outgoing.h +0 -225
- data/ext/ice/cpp/include/Ice/Plugin.h +0 -125
- data/ext/ice/cpp/include/Ice/Process.h +0 -574
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +0 -830
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +0 -1500
- data/ext/ice/cpp/include/Ice/Router.h +0 -1159
- data/ext/ice/cpp/include/Ice/Stream.h +0 -447
- data/ext/ice/cpp/include/Ice/StreamF.h +0 -30
- data/ext/ice/cpp/include/Ice/Version.h +0 -262
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +0 -158
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +0 -142
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +0 -119
- data/ext/ice/cpp/include/IceUtil/Cache.h +0 -362
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +0 -65
- data/ext/ice/cpp/include/Slice/CsUtil.h +0 -92
- data/ext/ice/cpp/include/Slice/DotNetNames.h +0 -34
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +0 -127
- data/ext/ice/cpp/include/Slice/Util.h +0 -56
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +0 -3428
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +0 -62
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +0 -139
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +0 -43
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +0 -694
- data/ext/ice/cpp/src/Ice/Stream.cpp +0 -53
- data/ext/ice/cpp/src/Ice/StreamI.cpp +0 -832
- data/ext/ice/cpp/src/Ice/StreamI.h +0 -198
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +0 -1336
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +0 -792
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +0 -185
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +0 -2660
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +0 -146
- data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +0 -1310
- data/lib/IceGrid/Locator.rb +0 -106
- data/lib/IceGrid/Observer.rb +0 -572
- data/lib/IceGrid/Query.rb +0 -169
- data/slice/Freeze/BackgroundSaveEvictor.ice +0 -111
- data/slice/Freeze/CatalogData.ice +0 -49
- data/slice/Freeze/Connection.ice +0 -121
- data/slice/Freeze/DB.ice +0 -37
- data/slice/Freeze/Evictor.ice +0 -346
- data/slice/Freeze/EvictorF.ice +0 -22
- data/slice/Freeze/EvictorStorage.ice +0 -72
- data/slice/Freeze/Exception.ice +0 -100
- data/slice/Freeze/Transaction.ice +0 -58
- data/slice/Freeze/TransactionalEvictor.ice +0 -50
- data/slice/IceGrid/Locator.ice +0 -57
- data/slice/IceGrid/Observer.ice +0 -395
- data/slice/IceGrid/Query.ice +0 -131
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// **********************************************************************
|
|
2
2
|
//
|
|
3
|
-
// Copyright (c) 2003-
|
|
3
|
+
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
|
|
4
4
|
//
|
|
5
5
|
// This copy of Ice is licensed to you under the terms described in the
|
|
6
6
|
// ICE_LICENSE file included in this distribution.
|
|
@@ -11,11 +11,24 @@
|
|
|
11
11
|
#define ICE_OUTGOING_ASYNC_H
|
|
12
12
|
|
|
13
13
|
#include <IceUtil/Timer.h>
|
|
14
|
+
#include <IceUtil/Monitor.h>
|
|
14
15
|
#include <Ice/OutgoingAsyncF.h>
|
|
15
|
-
#include <Ice/AsyncResult.h>
|
|
16
16
|
#include <Ice/CommunicatorF.h>
|
|
17
17
|
#include <Ice/ConnectionIF.h>
|
|
18
18
|
#include <Ice/ObjectAdapterF.h>
|
|
19
|
+
#include <Ice/RequestHandlerF.h>
|
|
20
|
+
#include <Ice/ConnectionF.h>
|
|
21
|
+
#include <Ice/OutputStream.h>
|
|
22
|
+
#include <Ice/InputStream.h>
|
|
23
|
+
#include <Ice/ObserverHelper.h>
|
|
24
|
+
#include <Ice/LocalException.h>
|
|
25
|
+
#include <Ice/UniquePtr.h>
|
|
26
|
+
|
|
27
|
+
#ifndef ICE_CPP11_MAPPING
|
|
28
|
+
# include <Ice/AsyncResult.h>
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#include <exception>
|
|
19
32
|
|
|
20
33
|
namespace IceInternal
|
|
21
34
|
{
|
|
@@ -23,25 +36,80 @@ namespace IceInternal
|
|
|
23
36
|
class RetryException;
|
|
24
37
|
class CollocatedRequestHandler;
|
|
25
38
|
|
|
39
|
+
class ICE_API OutgoingAsyncCompletionCallback
|
|
40
|
+
{
|
|
41
|
+
public:
|
|
42
|
+
virtual ~OutgoingAsyncCompletionCallback();
|
|
43
|
+
|
|
44
|
+
protected:
|
|
45
|
+
|
|
46
|
+
virtual bool handleSent(bool, bool) = 0;
|
|
47
|
+
virtual bool handleException(const Ice::Exception&) = 0;
|
|
48
|
+
virtual bool handleResponse(bool) = 0;
|
|
49
|
+
|
|
50
|
+
virtual void handleInvokeSent(bool, OutgoingAsyncBase*) const = 0;
|
|
51
|
+
virtual void handleInvokeException(const Ice::Exception&, OutgoingAsyncBase*) const = 0;
|
|
52
|
+
virtual void handleInvokeResponse(bool, OutgoingAsyncBase*) const = 0;
|
|
53
|
+
};
|
|
54
|
+
|
|
26
55
|
//
|
|
27
56
|
// Base class for handling asynchronous invocations. This class is
|
|
28
57
|
// responsible for the handling of the output stream and the child
|
|
29
58
|
// invocation observer.
|
|
30
59
|
//
|
|
31
|
-
class ICE_API OutgoingAsyncBase : public
|
|
60
|
+
class ICE_API OutgoingAsyncBase : public virtual OutgoingAsyncCompletionCallback,
|
|
61
|
+
#ifdef ICE_CPP11_MAPPING
|
|
62
|
+
public std::enable_shared_from_this<OutgoingAsyncBase>
|
|
63
|
+
#else
|
|
64
|
+
public Ice::AsyncResult
|
|
65
|
+
#endif
|
|
32
66
|
{
|
|
33
67
|
public:
|
|
34
68
|
|
|
35
69
|
virtual bool sent();
|
|
36
|
-
virtual bool
|
|
37
|
-
virtual bool
|
|
70
|
+
virtual bool exception(const Ice::Exception&);
|
|
71
|
+
virtual bool response();
|
|
72
|
+
|
|
73
|
+
void invokeSentAsync();
|
|
74
|
+
void invokeExceptionAsync();
|
|
75
|
+
void invokeResponseAsync();
|
|
76
|
+
|
|
77
|
+
void invokeSent();
|
|
78
|
+
void invokeException();
|
|
79
|
+
void invokeResponse();
|
|
38
80
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
81
|
+
virtual void cancelable(const IceInternal::CancellationHandlerPtr&);
|
|
82
|
+
void cancel();
|
|
83
|
+
|
|
84
|
+
#ifndef ICE_CPP11_MAPPING
|
|
85
|
+
virtual Ice::Int getHash() const;
|
|
86
|
+
|
|
87
|
+
virtual Ice::CommunicatorPtr getCommunicator() const;
|
|
88
|
+
virtual Ice::ConnectionPtr getConnection() const;
|
|
89
|
+
virtual Ice::ObjectPrx getProxy() const;
|
|
90
|
+
|
|
91
|
+
virtual Ice::LocalObjectPtr getCookie() const;
|
|
92
|
+
virtual const std::string& getOperation() const;
|
|
93
|
+
|
|
94
|
+
virtual bool isCompleted() const;
|
|
95
|
+
virtual void waitForCompleted();
|
|
96
|
+
|
|
97
|
+
virtual bool isSent() const;
|
|
98
|
+
virtual void waitForSent();
|
|
99
|
+
|
|
100
|
+
virtual bool sentSynchronously() const;
|
|
101
|
+
|
|
102
|
+
virtual void throwLocalException() const;
|
|
103
|
+
|
|
104
|
+
virtual bool _waitForResponse();
|
|
105
|
+
virtual Ice::InputStream* _startReadParams();
|
|
106
|
+
virtual void _endReadParams();
|
|
107
|
+
virtual void _readEmptyParams();
|
|
108
|
+
virtual void _readParamEncaps(const ::Ice::Byte*&, ::Ice::Int&);
|
|
109
|
+
virtual void _throwUserException();
|
|
110
|
+
|
|
111
|
+
virtual void _scheduleCallback(const CallbackPtr&);
|
|
112
|
+
#endif
|
|
45
113
|
|
|
46
114
|
void attachRemoteObserver(const Ice::ConnectionInfoPtr& c, const Ice::EndpointPtr& endpt, Ice::Int requestId)
|
|
47
115
|
{
|
|
@@ -55,24 +123,71 @@ public:
|
|
|
55
123
|
_childObserver.attach(getObserver().getCollocatedObserver(adapter, requestId, size));
|
|
56
124
|
}
|
|
57
125
|
|
|
58
|
-
|
|
126
|
+
Ice::OutputStream* getOs()
|
|
59
127
|
{
|
|
60
128
|
return &_os;
|
|
61
129
|
}
|
|
62
130
|
|
|
63
|
-
|
|
131
|
+
Ice::InputStream* getIs()
|
|
132
|
+
{
|
|
133
|
+
return &_is;
|
|
134
|
+
}
|
|
64
135
|
|
|
65
136
|
protected:
|
|
66
137
|
|
|
67
|
-
OutgoingAsyncBase(const
|
|
68
|
-
|
|
138
|
+
OutgoingAsyncBase(const InstancePtr&);
|
|
139
|
+
|
|
140
|
+
bool sentImpl(bool);
|
|
141
|
+
bool exceptionImpl(const Ice::Exception&);
|
|
142
|
+
bool responseImpl(bool, bool);
|
|
69
143
|
|
|
70
|
-
|
|
71
|
-
|
|
144
|
+
void cancel(const Ice::LocalException&);
|
|
145
|
+
void checkCanceled();
|
|
146
|
+
|
|
147
|
+
void warning(const std::exception&) const;
|
|
148
|
+
void warning() const;
|
|
149
|
+
|
|
150
|
+
//
|
|
151
|
+
// This virtual method is necessary for the communicator flush
|
|
152
|
+
// batch requests implementation.
|
|
153
|
+
//
|
|
154
|
+
virtual IceInternal::InvocationObserver& getObserver()
|
|
155
|
+
{
|
|
156
|
+
return _observer;
|
|
157
|
+
}
|
|
72
158
|
|
|
159
|
+
const InstancePtr _instance;
|
|
160
|
+
Ice::ConnectionPtr _cachedConnection;
|
|
161
|
+
bool _sentSynchronously;
|
|
162
|
+
bool _doneInSent;
|
|
163
|
+
unsigned char _state;
|
|
164
|
+
|
|
165
|
+
#ifdef ICE_CPP11_MAPPING
|
|
166
|
+
std::mutex _m;
|
|
167
|
+
using Lock = std::lock_guard<std::mutex>;
|
|
168
|
+
#else
|
|
169
|
+
IceUtil::Monitor<IceUtil::Mutex> _m;
|
|
170
|
+
typedef IceUtil::Monitor<IceUtil::Mutex>::Lock Lock;
|
|
171
|
+
Ice::LocalObjectPtr _cookie;
|
|
172
|
+
#endif
|
|
173
|
+
|
|
174
|
+
IceInternal::UniquePtr<Ice::Exception> _ex;
|
|
175
|
+
IceInternal::UniquePtr<Ice::LocalException> _cancellationException;
|
|
176
|
+
|
|
177
|
+
InvocationObserver _observer;
|
|
73
178
|
ObserverHelperT<Ice::Instrumentation::ChildInvocationObserver> _childObserver;
|
|
74
179
|
|
|
75
|
-
|
|
180
|
+
Ice::OutputStream _os;
|
|
181
|
+
Ice::InputStream _is;
|
|
182
|
+
|
|
183
|
+
CancellationHandlerPtr _cancellationHandler;
|
|
184
|
+
|
|
185
|
+
static const unsigned char OK;
|
|
186
|
+
static const unsigned char Sent;
|
|
187
|
+
#ifndef ICE_CPP11_MAPPING
|
|
188
|
+
static const unsigned char Done;
|
|
189
|
+
static const unsigned char EndCalled;
|
|
190
|
+
#endif
|
|
76
191
|
};
|
|
77
192
|
|
|
78
193
|
//
|
|
@@ -81,38 +196,44 @@ protected:
|
|
|
81
196
|
// correct notified of failures and make sure the retry task is
|
|
82
197
|
// correctly canceled when the invocation completes.
|
|
83
198
|
//
|
|
84
|
-
class ICE_API ProxyOutgoingAsyncBase : public OutgoingAsyncBase,
|
|
199
|
+
class ICE_API ProxyOutgoingAsyncBase : public OutgoingAsyncBase,
|
|
200
|
+
public IceUtil::TimerTask
|
|
85
201
|
{
|
|
86
202
|
public:
|
|
87
203
|
|
|
88
204
|
virtual AsyncStatus invokeRemote(const Ice::ConnectionIPtr&, bool, bool) = 0;
|
|
89
205
|
virtual AsyncStatus invokeCollocated(CollocatedRequestHandler*) = 0;
|
|
90
206
|
|
|
91
|
-
virtual Ice::
|
|
92
|
-
|
|
93
|
-
using OutgoingAsyncBase::sent;
|
|
94
|
-
virtual bool completed(const Ice::Exception&);
|
|
95
|
-
void retryException(const Ice::Exception&);
|
|
207
|
+
virtual bool exception(const Ice::Exception&);
|
|
96
208
|
virtual void cancelable(const CancellationHandlerPtr&);
|
|
97
209
|
|
|
210
|
+
void retryException(const Ice::Exception&);
|
|
98
211
|
void retry();
|
|
99
212
|
void abort(const Ice::Exception&);
|
|
100
213
|
|
|
214
|
+
#ifdef ICE_CPP11_MAPPING
|
|
215
|
+
std::shared_ptr<ProxyOutgoingAsyncBase> shared_from_this()
|
|
216
|
+
{
|
|
217
|
+
return std::static_pointer_cast<ProxyOutgoingAsyncBase>(OutgoingAsyncBase::shared_from_this());
|
|
218
|
+
}
|
|
219
|
+
#else
|
|
220
|
+
virtual Ice::ObjectPrx getProxy() const;
|
|
221
|
+
virtual Ice::CommunicatorPtr getCommunicator() const;
|
|
222
|
+
#endif
|
|
223
|
+
|
|
101
224
|
protected:
|
|
102
225
|
|
|
103
|
-
ProxyOutgoingAsyncBase(const Ice::
|
|
104
|
-
|
|
226
|
+
ProxyOutgoingAsyncBase(const Ice::ObjectPrxPtr&);
|
|
227
|
+
~ProxyOutgoingAsyncBase();
|
|
105
228
|
|
|
106
229
|
void invokeImpl(bool);
|
|
230
|
+
bool sentImpl(bool);
|
|
231
|
+
bool exceptionImpl(const Ice::Exception&);
|
|
232
|
+
bool responseImpl(bool, bool);
|
|
107
233
|
|
|
108
|
-
bool sent(bool);
|
|
109
|
-
bool finished(const Ice::Exception&);
|
|
110
|
-
bool finished(bool);
|
|
111
|
-
|
|
112
|
-
int handleException(const Ice::Exception&);
|
|
113
234
|
virtual void runTimerTask();
|
|
114
235
|
|
|
115
|
-
const Ice::
|
|
236
|
+
const Ice::ObjectPrxPtr _proxy;
|
|
116
237
|
RequestHandlerPtr _handler;
|
|
117
238
|
Ice::OperationMode _mode;
|
|
118
239
|
|
|
@@ -129,133 +250,583 @@ class ICE_API OutgoingAsync : public ProxyOutgoingAsyncBase
|
|
|
129
250
|
{
|
|
130
251
|
public:
|
|
131
252
|
|
|
132
|
-
OutgoingAsync(const Ice::
|
|
253
|
+
OutgoingAsync(const Ice::ObjectPrxPtr&, bool);
|
|
133
254
|
|
|
134
|
-
void prepare(const std::string&, Ice::OperationMode, const Ice::Context
|
|
255
|
+
void prepare(const std::string&, Ice::OperationMode, const Ice::Context&);
|
|
135
256
|
|
|
136
257
|
virtual bool sent();
|
|
258
|
+
virtual bool response();
|
|
137
259
|
|
|
138
260
|
virtual AsyncStatus invokeRemote(const Ice::ConnectionIPtr&, bool, bool);
|
|
139
261
|
virtual AsyncStatus invokeCollocated(CollocatedRequestHandler*);
|
|
140
262
|
|
|
141
|
-
using ProxyOutgoingAsyncBase::completed;
|
|
142
|
-
virtual bool completed();
|
|
143
|
-
|
|
144
263
|
void abort(const Ice::Exception&);
|
|
264
|
+
void invoke(const std::string&);
|
|
265
|
+
#ifdef ICE_CPP11_MAPPING
|
|
266
|
+
void invoke(const std::string&, Ice::OperationMode, Ice::FormatType, const Ice::Context&,
|
|
267
|
+
std::function<void(Ice::OutputStream*)>);
|
|
268
|
+
void throwUserException();
|
|
269
|
+
#endif
|
|
145
270
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
BasicStream* startWriteParams(Ice::FormatType format)
|
|
271
|
+
Ice::OutputStream* startWriteParams(Ice::FormatType format)
|
|
149
272
|
{
|
|
150
|
-
_os.
|
|
273
|
+
_os.startEncapsulation(_encoding, format);
|
|
151
274
|
return &_os;
|
|
152
275
|
}
|
|
153
276
|
void endWriteParams()
|
|
154
277
|
{
|
|
155
|
-
_os.
|
|
278
|
+
_os.endEncapsulation();
|
|
156
279
|
}
|
|
157
280
|
void writeEmptyParams()
|
|
158
281
|
{
|
|
159
|
-
_os.
|
|
282
|
+
_os.writeEmptyEncapsulation(_encoding);
|
|
160
283
|
}
|
|
161
284
|
void writeParamEncaps(const ::Ice::Byte* encaps, ::Ice::Int size)
|
|
162
285
|
{
|
|
163
286
|
if(size == 0)
|
|
164
287
|
{
|
|
165
|
-
_os.
|
|
288
|
+
_os.writeEmptyEncapsulation(_encoding);
|
|
166
289
|
}
|
|
167
290
|
else
|
|
168
291
|
{
|
|
169
|
-
_os.
|
|
292
|
+
_os.writeEncapsulation(encaps, size);
|
|
170
293
|
}
|
|
171
294
|
}
|
|
172
295
|
|
|
173
|
-
|
|
296
|
+
protected:
|
|
297
|
+
|
|
298
|
+
const Ice::EncodingVersion _encoding;
|
|
299
|
+
|
|
300
|
+
#ifdef ICE_CPP11_MAPPING
|
|
301
|
+
std::function<void(const ::Ice::UserException&)> _userException;
|
|
302
|
+
#endif
|
|
303
|
+
|
|
304
|
+
bool _synchronous;
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
namespace IceInternal
|
|
310
|
+
{
|
|
311
|
+
|
|
312
|
+
#ifdef ICE_CPP11_MAPPING
|
|
313
|
+
|
|
314
|
+
class ICE_API LambdaInvoke : public virtual OutgoingAsyncCompletionCallback
|
|
315
|
+
{
|
|
316
|
+
public:
|
|
317
|
+
|
|
318
|
+
LambdaInvoke(std::function<void(::std::exception_ptr)> exception, std::function<void(bool)> sent) :
|
|
319
|
+
_exception(std::move(exception)), _sent(std::move(sent))
|
|
174
320
|
{
|
|
175
|
-
return &_is;
|
|
176
321
|
}
|
|
177
322
|
|
|
178
|
-
|
|
323
|
+
protected:
|
|
179
324
|
|
|
180
|
-
|
|
325
|
+
virtual bool handleSent(bool, bool) override;
|
|
326
|
+
virtual bool handleException(const Ice::Exception&) override;
|
|
327
|
+
virtual bool handleResponse(bool) override;
|
|
328
|
+
|
|
329
|
+
virtual void handleInvokeSent(bool, OutgoingAsyncBase*) const override;
|
|
330
|
+
virtual void handleInvokeException(const Ice::Exception&, OutgoingAsyncBase*) const override;
|
|
331
|
+
virtual void handleInvokeResponse(bool, OutgoingAsyncBase*) const override;
|
|
332
|
+
|
|
333
|
+
std::function<void(::std::exception_ptr)> _exception;
|
|
334
|
+
std::function<void(bool)> _sent;
|
|
335
|
+
std::function<void(bool)> _response;
|
|
181
336
|
};
|
|
182
337
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
//
|
|
186
|
-
class ICE_API ProxyFlushBatchAsync : public ProxyOutgoingAsyncBase
|
|
338
|
+
template<typename Promise>
|
|
339
|
+
class PromiseInvoke : public virtual OutgoingAsyncCompletionCallback
|
|
187
340
|
{
|
|
188
341
|
public:
|
|
189
342
|
|
|
190
|
-
|
|
343
|
+
auto
|
|
344
|
+
getFuture() -> decltype(std::declval<Promise>().get_future())
|
|
345
|
+
{
|
|
346
|
+
return _promise.get_future();
|
|
347
|
+
}
|
|
191
348
|
|
|
192
|
-
|
|
193
|
-
virtual AsyncStatus invokeCollocated(CollocatedRequestHandler*);
|
|
349
|
+
protected:
|
|
194
350
|
|
|
195
|
-
|
|
351
|
+
Promise _promise;
|
|
352
|
+
std::function<void(bool)> _response;
|
|
196
353
|
|
|
197
354
|
private:
|
|
198
355
|
|
|
199
|
-
|
|
356
|
+
virtual bool handleSent(bool, bool) override
|
|
357
|
+
{
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
virtual bool handleException(const Ice::Exception& ex) override
|
|
362
|
+
{
|
|
363
|
+
try
|
|
364
|
+
{
|
|
365
|
+
ex.ice_throw();
|
|
366
|
+
}
|
|
367
|
+
catch(const Ice::Exception&)
|
|
368
|
+
{
|
|
369
|
+
_promise.set_exception(std::current_exception());
|
|
370
|
+
}
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
virtual bool handleResponse(bool ok) override
|
|
375
|
+
{
|
|
376
|
+
_response(ok);
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
virtual void handleInvokeSent(bool, OutgoingAsyncBase*) const override
|
|
381
|
+
{
|
|
382
|
+
assert(false);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
virtual void handleInvokeException(const Ice::Exception&, OutgoingAsyncBase*) const override
|
|
386
|
+
{
|
|
387
|
+
assert(false);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
virtual void handleInvokeResponse(bool, OutgoingAsyncBase*) const override
|
|
391
|
+
{
|
|
392
|
+
assert(false);
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
template<typename T>
|
|
397
|
+
class OutgoingAsyncT : public OutgoingAsync
|
|
398
|
+
{
|
|
399
|
+
public:
|
|
400
|
+
|
|
401
|
+
using OutgoingAsync::OutgoingAsync;
|
|
402
|
+
|
|
403
|
+
void
|
|
404
|
+
invoke(const std::string& operation,
|
|
405
|
+
Ice::OperationMode mode,
|
|
406
|
+
Ice::FormatType format,
|
|
407
|
+
const Ice::Context& ctx,
|
|
408
|
+
std::function<void(Ice::OutputStream*)> write,
|
|
409
|
+
std::function<void(const Ice::UserException&)> userException)
|
|
410
|
+
{
|
|
411
|
+
_read = [](Ice::InputStream* stream)
|
|
412
|
+
{
|
|
413
|
+
T v;
|
|
414
|
+
stream->read(v);
|
|
415
|
+
return v;
|
|
416
|
+
};
|
|
417
|
+
_userException = std::move(userException);
|
|
418
|
+
OutgoingAsync::invoke(operation, mode, format, ctx, std::move(write));
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
void
|
|
422
|
+
invoke(const std::string& operation,
|
|
423
|
+
Ice::OperationMode mode,
|
|
424
|
+
Ice::FormatType format,
|
|
425
|
+
const Ice::Context& ctx,
|
|
426
|
+
std::function<void(Ice::OutputStream*)> write,
|
|
427
|
+
std::function<void(const Ice::UserException&)> userException,
|
|
428
|
+
std::function<T(Ice::InputStream*)> read)
|
|
429
|
+
{
|
|
430
|
+
_read = std::move(read);
|
|
431
|
+
_userException = std::move(userException);
|
|
432
|
+
OutgoingAsync::invoke(operation, mode, format, ctx, std::move(write));
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
protected:
|
|
436
|
+
|
|
437
|
+
std::function<T(Ice::InputStream*)> _read;
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
template<>
|
|
441
|
+
class OutgoingAsyncT<void> : public OutgoingAsync
|
|
442
|
+
{
|
|
443
|
+
public:
|
|
444
|
+
|
|
445
|
+
using OutgoingAsync::OutgoingAsync;
|
|
446
|
+
|
|
447
|
+
void
|
|
448
|
+
invoke(const std::string& operation,
|
|
449
|
+
Ice::OperationMode mode,
|
|
450
|
+
Ice::FormatType format,
|
|
451
|
+
const Ice::Context& ctx,
|
|
452
|
+
std::function<void(Ice::OutputStream*)> write,
|
|
453
|
+
std::function<void(const Ice::UserException&)> userException)
|
|
454
|
+
{
|
|
455
|
+
_userException = std::move(userException);
|
|
456
|
+
OutgoingAsync::invoke(operation, mode, format, ctx, std::move(write));
|
|
457
|
+
}
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
template<typename R>
|
|
461
|
+
class LambdaOutgoing : public OutgoingAsyncT<R>, public LambdaInvoke
|
|
462
|
+
{
|
|
463
|
+
public:
|
|
464
|
+
|
|
465
|
+
LambdaOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy,
|
|
466
|
+
std::function<void(R)> response,
|
|
467
|
+
std::function<void(::std::exception_ptr)> ex,
|
|
468
|
+
std::function<void(bool)> sent) :
|
|
469
|
+
OutgoingAsyncT<R>(proxy, false), LambdaInvoke(std::move(ex), std::move(sent))
|
|
470
|
+
{
|
|
471
|
+
_response = [this, response](bool ok)
|
|
472
|
+
{
|
|
473
|
+
if(!ok)
|
|
474
|
+
{
|
|
475
|
+
this->throwUserException();
|
|
476
|
+
}
|
|
477
|
+
else if(response)
|
|
478
|
+
{
|
|
479
|
+
assert(this->_read);
|
|
480
|
+
this->_is.startEncapsulation();
|
|
481
|
+
R v = this->_read(&this->_is);
|
|
482
|
+
this->_is.endEncapsulation();
|
|
483
|
+
try
|
|
484
|
+
{
|
|
485
|
+
response(std::move(v));
|
|
486
|
+
}
|
|
487
|
+
catch(...)
|
|
488
|
+
{
|
|
489
|
+
throw std::current_exception();
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
}
|
|
200
494
|
};
|
|
201
|
-
|
|
495
|
+
|
|
496
|
+
template<>
|
|
497
|
+
class LambdaOutgoing<void> : public OutgoingAsyncT<void>, public LambdaInvoke
|
|
498
|
+
{
|
|
499
|
+
public:
|
|
500
|
+
|
|
501
|
+
LambdaOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy,
|
|
502
|
+
std::function<void()> response,
|
|
503
|
+
std::function<void(::std::exception_ptr)> ex,
|
|
504
|
+
std::function<void(bool)> sent) :
|
|
505
|
+
OutgoingAsyncT<void>(proxy, false), LambdaInvoke(std::move(ex), std::move(sent))
|
|
506
|
+
{
|
|
507
|
+
_response = [this, response](bool ok)
|
|
508
|
+
{
|
|
509
|
+
if(!ok)
|
|
510
|
+
{
|
|
511
|
+
this->throwUserException();
|
|
512
|
+
}
|
|
513
|
+
else if(response)
|
|
514
|
+
{
|
|
515
|
+
if(!this->_is.b.empty())
|
|
516
|
+
{
|
|
517
|
+
this->_is.skipEmptyEncapsulation();
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
try
|
|
521
|
+
{
|
|
522
|
+
response();
|
|
523
|
+
}
|
|
524
|
+
catch(...)
|
|
525
|
+
{
|
|
526
|
+
throw std::current_exception();
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
|
|
533
|
+
class CustomLambdaOutgoing : public OutgoingAsync, public LambdaInvoke
|
|
534
|
+
{
|
|
535
|
+
public:
|
|
536
|
+
|
|
537
|
+
CustomLambdaOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy,
|
|
538
|
+
std::function<void(Ice::InputStream*)> read,
|
|
539
|
+
std::function<void(::std::exception_ptr)> ex,
|
|
540
|
+
std::function<void(bool)> sent) :
|
|
541
|
+
OutgoingAsync(proxy, false), LambdaInvoke(std::move(ex), std::move(sent))
|
|
542
|
+
{
|
|
543
|
+
_response = [this, read](bool ok)
|
|
544
|
+
{
|
|
545
|
+
if(!ok)
|
|
546
|
+
{
|
|
547
|
+
this->throwUserException();
|
|
548
|
+
}
|
|
549
|
+
else if(read)
|
|
550
|
+
{
|
|
551
|
+
//
|
|
552
|
+
// Read and respond
|
|
553
|
+
//
|
|
554
|
+
read(&this->_is);
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
void
|
|
560
|
+
invoke(const std::string& operation,
|
|
561
|
+
Ice::OperationMode mode,
|
|
562
|
+
Ice::FormatType format,
|
|
563
|
+
const Ice::Context& ctx,
|
|
564
|
+
std::function<void(Ice::OutputStream*)> write,
|
|
565
|
+
std::function<void(const Ice::UserException&)> userException)
|
|
566
|
+
{
|
|
567
|
+
_userException = std::move(userException);
|
|
568
|
+
OutgoingAsync::invoke(operation, mode, format, ctx, std::move(write));
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
template<typename P, typename R>
|
|
573
|
+
class PromiseOutgoing : public OutgoingAsyncT<R>, public PromiseInvoke<P>
|
|
574
|
+
{
|
|
575
|
+
public:
|
|
576
|
+
|
|
577
|
+
PromiseOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy, bool sync) :
|
|
578
|
+
OutgoingAsyncT<R>(proxy, sync)
|
|
579
|
+
{
|
|
580
|
+
this->_response = [this](bool ok)
|
|
581
|
+
{
|
|
582
|
+
if(ok)
|
|
583
|
+
{
|
|
584
|
+
assert(this->_read);
|
|
585
|
+
this->_is.startEncapsulation();
|
|
586
|
+
R v = this->_read(&this->_is);
|
|
587
|
+
this->_is.endEncapsulation();
|
|
588
|
+
this->_promise.set_value(v);
|
|
589
|
+
}
|
|
590
|
+
else
|
|
591
|
+
{
|
|
592
|
+
this->throwUserException();
|
|
593
|
+
}
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
template<typename P>
|
|
599
|
+
class PromiseOutgoing<P, void> : public OutgoingAsyncT<void>, public PromiseInvoke<P>
|
|
600
|
+
{
|
|
601
|
+
public:
|
|
602
|
+
|
|
603
|
+
PromiseOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy, bool sync) :
|
|
604
|
+
OutgoingAsyncT<void>(proxy, sync)
|
|
605
|
+
{
|
|
606
|
+
this->_response = [&](bool ok)
|
|
607
|
+
{
|
|
608
|
+
if(this->_is.b.empty())
|
|
609
|
+
{
|
|
610
|
+
//
|
|
611
|
+
// If there's no response (oneway, batch-oneway proxies), we just set the promise
|
|
612
|
+
// on completion without reading anything from the input stream. This is required for
|
|
613
|
+
// batch invocations.
|
|
614
|
+
//
|
|
615
|
+
this->_promise.set_value();
|
|
616
|
+
}
|
|
617
|
+
else if(ok)
|
|
618
|
+
{
|
|
619
|
+
this->_is.skipEmptyEncapsulation();
|
|
620
|
+
this->_promise.set_value();
|
|
621
|
+
}
|
|
622
|
+
else
|
|
623
|
+
{
|
|
624
|
+
this->throwUserException();
|
|
625
|
+
}
|
|
626
|
+
};
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
virtual bool handleSent(bool done, bool) override
|
|
630
|
+
{
|
|
631
|
+
if(done)
|
|
632
|
+
{
|
|
633
|
+
PromiseInvoke<P>::_promise.set_value();
|
|
634
|
+
}
|
|
635
|
+
return false;
|
|
636
|
+
}
|
|
637
|
+
};
|
|
638
|
+
|
|
639
|
+
#else
|
|
202
640
|
|
|
203
641
|
//
|
|
204
|
-
//
|
|
642
|
+
// Base class for all callbacks.
|
|
205
643
|
//
|
|
206
|
-
class ICE_API
|
|
644
|
+
class ICE_API CallbackBase : public IceUtil::Shared
|
|
207
645
|
{
|
|
208
646
|
public:
|
|
209
647
|
|
|
210
|
-
|
|
648
|
+
virtual ~CallbackBase();
|
|
211
649
|
|
|
212
|
-
|
|
213
|
-
|
|
650
|
+
void checkCallback(bool, bool);
|
|
651
|
+
|
|
652
|
+
virtual void completed(const ::Ice::AsyncResultPtr&) const = 0;
|
|
653
|
+
virtual IceUtil::Handle<CallbackBase> verify(const ::Ice::LocalObjectPtr&) = 0;
|
|
654
|
+
virtual void sent(const ::Ice::AsyncResultPtr&) const = 0;
|
|
655
|
+
virtual bool hasSentCallback() const = 0;
|
|
656
|
+
};
|
|
657
|
+
typedef IceUtil::Handle<CallbackBase> CallbackBasePtr;
|
|
658
|
+
|
|
659
|
+
//
|
|
660
|
+
// Base class for generic callbacks.
|
|
661
|
+
//
|
|
662
|
+
class ICE_API GenericCallbackBase : public virtual CallbackBase
|
|
663
|
+
{
|
|
664
|
+
public:
|
|
214
665
|
|
|
215
|
-
|
|
666
|
+
virtual ~GenericCallbackBase();
|
|
216
667
|
};
|
|
217
|
-
typedef IceUtil::Handle<ProxyGetConnection> ProxyGetConnectionPtr;
|
|
218
668
|
|
|
219
669
|
//
|
|
220
|
-
//
|
|
670
|
+
// See comments in OutgoingAsync.cpp
|
|
671
|
+
//
|
|
672
|
+
extern ICE_API CallbackBasePtr dummyCallback;
|
|
673
|
+
|
|
674
|
+
//
|
|
675
|
+
// Generic callback template that requires the caller to down-cast the
|
|
676
|
+
// proxy and the cookie that are obtained from the AsyncResult.
|
|
221
677
|
//
|
|
222
|
-
class
|
|
678
|
+
template<class T>
|
|
679
|
+
class AsyncCallback : public GenericCallbackBase
|
|
223
680
|
{
|
|
224
681
|
public:
|
|
225
682
|
|
|
226
|
-
|
|
227
|
-
|
|
683
|
+
typedef T callback_type;
|
|
684
|
+
typedef IceUtil::Handle<T> TPtr;
|
|
228
685
|
|
|
229
|
-
|
|
686
|
+
typedef void (T::*Callback)(const ::Ice::AsyncResultPtr&);
|
|
687
|
+
|
|
688
|
+
AsyncCallback(const TPtr& instance, Callback cb, Callback sentcb = 0) :
|
|
689
|
+
_callback(instance), _completed(cb), _sent(sentcb)
|
|
690
|
+
{
|
|
691
|
+
checkCallback(instance, cb != 0);
|
|
692
|
+
}
|
|
230
693
|
|
|
231
|
-
void
|
|
694
|
+
virtual void completed(const ::Ice::AsyncResultPtr& result) const
|
|
695
|
+
{
|
|
696
|
+
(_callback.get()->*_completed)(result);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr&)
|
|
700
|
+
{
|
|
701
|
+
return this; // Nothing to do, the cookie is not type-safe.
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
virtual void sent(const ::Ice::AsyncResultPtr& result) const
|
|
705
|
+
{
|
|
706
|
+
if(_sent)
|
|
707
|
+
{
|
|
708
|
+
(_callback.get()->*_sent)(result);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
virtual bool hasSentCallback() const
|
|
713
|
+
{
|
|
714
|
+
return _sent != 0;
|
|
715
|
+
}
|
|
232
716
|
|
|
233
717
|
private:
|
|
234
718
|
|
|
235
|
-
|
|
719
|
+
TPtr _callback;
|
|
720
|
+
Callback _completed;
|
|
721
|
+
Callback _sent;
|
|
236
722
|
};
|
|
237
|
-
typedef IceUtil::Handle<ConnectionFlushBatchAsync> ConnectionFlushBatchAsyncPtr;
|
|
238
723
|
|
|
239
|
-
|
|
240
|
-
// Class for handling Ice::Communicator::begin_flushBatchRequests
|
|
241
|
-
//
|
|
242
|
-
class ICE_API CommunicatorFlushBatchAsync : public Ice::AsyncResult
|
|
724
|
+
class CallbackCompletion : public virtual OutgoingAsyncCompletionCallback
|
|
243
725
|
{
|
|
244
726
|
public:
|
|
245
727
|
|
|
246
|
-
|
|
247
|
-
|
|
728
|
+
CallbackCompletion(const CallbackBasePtr& cb, const Ice::LocalObjectPtr& cookie) : _callback(cb)
|
|
729
|
+
{
|
|
730
|
+
if(!_callback)
|
|
731
|
+
{
|
|
732
|
+
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__);
|
|
733
|
+
}
|
|
734
|
+
const_cast<CallbackBasePtr&>(_callback) = _callback->verify(cookie);
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
virtual bool handleSent(bool, bool alreadySent)
|
|
738
|
+
{
|
|
739
|
+
return _callback && _callback->hasSentCallback() && !alreadySent;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
virtual bool handleException(const Ice::Exception&)
|
|
743
|
+
{
|
|
744
|
+
return _callback;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
virtual bool handleResponse(bool)
|
|
748
|
+
{
|
|
749
|
+
return _callback;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
virtual void handleInvokeSent(bool, OutgoingAsyncBase* outAsync) const
|
|
753
|
+
{
|
|
754
|
+
_callback->sent(outAsync);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
virtual void handleInvokeException(const Ice::Exception&, OutgoingAsyncBase* outAsync) const
|
|
758
|
+
{
|
|
759
|
+
_callback->completed(outAsync);
|
|
760
|
+
}
|
|
248
761
|
|
|
249
|
-
void
|
|
250
|
-
|
|
762
|
+
virtual void handleInvokeResponse(bool, OutgoingAsyncBase* outAsync) const
|
|
763
|
+
{
|
|
764
|
+
_callback->completed(outAsync);
|
|
765
|
+
}
|
|
251
766
|
|
|
252
767
|
private:
|
|
253
768
|
|
|
254
|
-
|
|
769
|
+
const CallbackBasePtr _callback;
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
class CallbackOutgoing : public OutgoingAsync, public CallbackCompletion
|
|
773
|
+
{
|
|
774
|
+
public:
|
|
775
|
+
|
|
776
|
+
CallbackOutgoing(const Ice::ObjectPrx& proxy,
|
|
777
|
+
const std::string& operation,
|
|
778
|
+
const CallbackBasePtr& cb,
|
|
779
|
+
const Ice::LocalObjectPtr& cookie,
|
|
780
|
+
bool sync) :
|
|
781
|
+
OutgoingAsync(proxy, sync), CallbackCompletion(cb, cookie), _operation(operation)
|
|
782
|
+
{
|
|
783
|
+
_cookie = cookie;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
virtual const std::string&
|
|
787
|
+
getOperation() const
|
|
788
|
+
{
|
|
789
|
+
return _operation;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
private:
|
|
255
793
|
|
|
256
|
-
|
|
794
|
+
const std::string& _operation;
|
|
257
795
|
};
|
|
258
796
|
|
|
797
|
+
#endif
|
|
798
|
+
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
#ifndef ICE_CPP11_MAPPING
|
|
802
|
+
|
|
803
|
+
namespace Ice
|
|
804
|
+
{
|
|
805
|
+
|
|
806
|
+
typedef IceUtil::Handle< ::IceInternal::GenericCallbackBase> CallbackPtr;
|
|
807
|
+
|
|
808
|
+
template<class T> CallbackPtr
|
|
809
|
+
newCallback(const IceUtil::Handle<T>& instance,
|
|
810
|
+
void (T::*cb)(const AsyncResultPtr&),
|
|
811
|
+
void (T::*sentcb)(const AsyncResultPtr&) = 0)
|
|
812
|
+
{
|
|
813
|
+
return new ::IceInternal::AsyncCallback<T>(instance, cb, sentcb);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
template<class T> CallbackPtr
|
|
817
|
+
newCallback(T* instance,
|
|
818
|
+
void (T::*cb)(const AsyncResultPtr&),
|
|
819
|
+
void (T::*sentcb)(const AsyncResultPtr&) = 0)
|
|
820
|
+
{
|
|
821
|
+
return new ::IceInternal::AsyncCallback<T>(instance, cb, sentcb);
|
|
822
|
+
}
|
|
823
|
+
|
|
259
824
|
}
|
|
260
825
|
|
|
826
|
+
//
|
|
827
|
+
// Operation callbacks are specified in Proxy.h
|
|
828
|
+
//
|
|
829
|
+
|
|
830
|
+
#endif
|
|
831
|
+
|
|
261
832
|
#endif
|