zeroc-ice 3.7.11 → 3.8.1
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/dist/IceRuby/Communicator.cpp +159 -376
- data/dist/IceRuby/Communicator.h +8 -9
- data/dist/IceRuby/Config.h +23 -89
- data/dist/IceRuby/Connection.cpp +111 -219
- data/dist/IceRuby/Connection.h +8 -12
- data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
- data/dist/IceRuby/DefaultSliceLoader.h +25 -0
- data/dist/IceRuby/Endpoint.cpp +63 -65
- data/dist/IceRuby/Endpoint.h +7 -11
- data/dist/IceRuby/ImplicitContext.cpp +26 -31
- data/dist/IceRuby/ImplicitContext.h +6 -10
- data/dist/IceRuby/Init.cpp +27 -40
- data/dist/IceRuby/Logger.cpp +23 -28
- data/dist/IceRuby/Logger.h +8 -12
- data/dist/IceRuby/Operation.cpp +177 -219
- data/dist/IceRuby/Operation.h +15 -18
- data/dist/IceRuby/Properties.cpp +133 -89
- data/dist/IceRuby/Properties.h +6 -10
- data/dist/IceRuby/Proxy.cpp +179 -649
- data/dist/IceRuby/Proxy.h +11 -12
- data/dist/IceRuby/RubySliceLoader.cpp +39 -0
- data/dist/IceRuby/RubySliceLoader.h +27 -0
- data/dist/IceRuby/Slice.cpp +88 -94
- data/dist/IceRuby/Slice.h +3 -7
- data/dist/IceRuby/Types.cpp +987 -1190
- data/dist/IceRuby/Types.h +390 -461
- data/dist/IceRuby/Util.cpp +214 -473
- data/dist/IceRuby/Util.h +378 -479
- data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
- data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
- data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +4 -10
- data/dist/ice/cpp/include/Ice/Buffer.h +116 -111
- data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
- data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
- data/dist/ice/cpp/include/Ice/Config.h +46 -62
- data/dist/ice/cpp/include/Ice/Connection.h +410 -0
- data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
- data/dist/ice/cpp/include/Ice/ConnectionIF.h +6 -28
- data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
- data/dist/ice/cpp/include/Ice/Current.h +60 -0
- data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
- data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
- data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
- data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
- data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
- data/dist/ice/cpp/include/Ice/Exception.h +46 -151
- data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
- data/dist/ice/cpp/include/Ice/Format.h +11 -27
- data/dist/ice/cpp/include/Ice/Ice.h +53 -48
- data/dist/ice/cpp/include/Ice/IconvStringConverter.h +165 -326
- data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
- data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
- data/dist/ice/cpp/include/Ice/Initialize.h +113 -927
- data/dist/ice/cpp/include/Ice/InputStream.h +748 -1320
- data/dist/ice/cpp/include/Ice/InstanceF.h +4 -10
- data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
- data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
- data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
- data/dist/ice/cpp/include/Ice/Logger.h +62 -0
- data/dist/ice/cpp/include/Ice/LoggerUtil.h +124 -147
- data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
- data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +41 -71
- data/dist/ice/cpp/include/Ice/Object.h +151 -490
- data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
- data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
- data/dist/ice/cpp/include/Ice/ObjectF.h +5 -19
- data/dist/ice/cpp/include/Ice/ObserverHelper.h +115 -132
- data/dist/ice/cpp/include/Ice/OutgoingAsync.h +392 -748
- data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
- data/dist/ice/cpp/include/Ice/OutputStream.h +756 -956
- data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
- data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
- data/dist/ice/cpp/include/{IceUtil → Ice}/PopDisableWarnings.h +8 -6
- data/dist/ice/cpp/include/Ice/Properties.h +307 -0
- data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
- data/dist/ice/cpp/include/Ice/Proxy.h +665 -5094
- data/dist/ice/cpp/include/Ice/ProxyF.h +2 -44
- data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
- data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
- data/dist/ice/cpp/include/Ice/ReferenceF.h +4 -19
- data/dist/ice/cpp/include/Ice/RequestHandlerF.h +8 -18
- data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +276 -0
- data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
- data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
- data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
- data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
- data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
- data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +286 -0
- data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
- data/dist/ice/cpp/include/Ice/Service.h +182 -342
- data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
- data/dist/ice/cpp/include/Ice/SlicedData.h +113 -160
- data/dist/ice/cpp/include/Ice/SlicedDataF.h +17 -27
- data/dist/ice/cpp/include/Ice/StreamHelpers.h +532 -1070
- data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
- data/dist/ice/cpp/include/Ice/StringConverter.h +152 -63
- data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
- data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
- data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
- data/dist/ice/cpp/include/Ice/UUID.h +6 -9
- data/dist/ice/cpp/include/Ice/UserException.h +46 -0
- data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +4 -79
- data/dist/ice/cpp/include/Ice/Value.h +103 -115
- data/dist/ice/cpp/include/Ice/ValueF.h +6 -11
- data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +16 -1877
- data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -1185
- data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +46 -146
- data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
- data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +49 -93
- data/dist/ice/cpp/include/generated/Ice/Identity.h +70 -226
- data/dist/ice/cpp/include/generated/Ice/Locator.h +494 -3850
- data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
- data/dist/ice/cpp/include/generated/Ice/Metrics.h +937 -4603
- data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
- data/dist/ice/cpp/include/generated/Ice/Process.h +197 -929
- data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +249 -1301
- data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
- data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +637 -2620
- data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
- data/dist/ice/cpp/include/generated/Ice/Router.h +429 -1783
- data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +18 -65
- data/dist/ice/cpp/include/generated/Ice/Version.h +73 -318
- data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
- data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
- data/dist/ice/cpp/src/Ice/Acceptor.h +28 -24
- data/dist/ice/cpp/src/Ice/AcceptorF.h +6 -14
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
- data/dist/ice/cpp/src/Ice/ArgVector.cpp +17 -18
- data/dist/ice/cpp/src/Ice/ArgVector.h +19 -25
- data/dist/ice/cpp/src/Ice/Base64.cpp +66 -66
- data/dist/ice/cpp/src/Ice/Base64.h +14 -19
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +70 -121
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +37 -47
- data/dist/ice/cpp/src/Ice/Buffer.cpp +73 -41
- data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +215 -249
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +38 -60
- data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
- data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
- data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
- data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +63 -184
- data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +30 -51
- data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +4 -14
- data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
- data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +578 -792
- data/dist/ice/cpp/src/Ice/ConnectionFactory.h +200 -200
- data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +6 -19
- data/dist/ice/cpp/src/Ice/ConnectionI.cpp +1674 -1782
- data/dist/ice/cpp/src/Ice/ConnectionI.h +333 -293
- data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
- data/dist/ice/cpp/src/Ice/Connector.h +25 -19
- data/dist/ice/cpp/src/Ice/ConnectorF.h +4 -11
- data/dist/ice/cpp/src/{IceUtil → Ice}/ConsoleUtil.cpp +32 -53
- data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
- data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
- data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
- data/dist/ice/cpp/src/Ice/DLLMain.cpp +25 -35
- data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +41 -119
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +27 -41
- data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +4 -11
- data/dist/ice/cpp/src/Ice/Demangle.cpp +26 -0
- data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
- data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +44 -112
- data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
- data/dist/ice/cpp/src/Ice/Endian.h +40 -0
- data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +35 -59
- data/dist/ice/cpp/src/Ice/EndpointFactory.h +82 -103
- data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +4 -11
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +54 -87
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +28 -33
- data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +4 -11
- data/dist/ice/cpp/src/Ice/EndpointI.cpp +53 -23
- data/dist/ice/cpp/src/Ice/EndpointI.h +132 -200
- data/dist/ice/cpp/src/Ice/EndpointIF.h +11 -39
- data/dist/ice/cpp/src/Ice/EventHandler.cpp +3 -26
- data/dist/ice/cpp/src/Ice/EventHandler.h +46 -56
- data/dist/ice/cpp/src/Ice/EventHandlerF.h +4 -14
- data/dist/ice/cpp/src/Ice/Exception.cpp +3 -816
- data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
- data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
- data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
- data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
- data/dist/ice/cpp/src/Ice/HashUtil.h +46 -32
- data/dist/ice/cpp/src/Ice/HttpParser.cpp +431 -431
- data/dist/ice/cpp/src/Ice/HttpParser.h +95 -100
- data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +207 -324
- data/dist/ice/cpp/src/Ice/IPEndpointI.h +80 -126
- data/dist/ice/cpp/src/Ice/IPEndpointIF.h +6 -17
- data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
- data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
- data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
- data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
- data/dist/ice/cpp/src/Ice/Initialize.cpp +48 -542
- data/dist/ice/cpp/src/Ice/InputStream.cpp +848 -1385
- data/dist/ice/cpp/src/Ice/Instance.cpp +816 -827
- data/dist/ice/cpp/src/Ice/Instance.h +202 -212
- data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +526 -661
- data/dist/ice/cpp/src/Ice/InstrumentationI.h +171 -192
- data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
- data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
- data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +291 -329
- data/dist/ice/cpp/src/Ice/LocatorInfo.h +144 -157
- data/dist/ice/cpp/src/Ice/LocatorInfoF.h +8 -17
- data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +561 -743
- data/dist/ice/cpp/src/Ice/LoggerAdminI.h +18 -28
- data/dist/ice/cpp/src/Ice/LoggerI.cpp +66 -91
- data/dist/ice/cpp/src/Ice/LoggerI.h +36 -41
- data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
- data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
- data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +14 -38
- data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
- data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +194 -280
- data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
- data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
- data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
- data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
- data/dist/ice/cpp/src/Ice/Network.cpp +595 -917
- data/dist/ice/cpp/src/Ice/Network.h +189 -213
- data/dist/ice/cpp/src/Ice/NetworkF.h +2 -10
- data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +99 -104
- data/dist/ice/cpp/src/Ice/NetworkProxy.h +49 -54
- data/dist/ice/cpp/src/Ice/NetworkProxyF.h +4 -11
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +16 -18
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +22 -27
- data/dist/ice/cpp/src/Ice/Object.cpp +152 -338
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +170 -113
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +41 -41
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +4 -15
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +580 -727
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +149 -145
- data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +36 -17
- data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
- data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
- data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +147 -187
- data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +56 -64
- data/dist/ice/cpp/src/{IceUtil → Ice}/Options.cpp +187 -258
- data/dist/ice/cpp/src/Ice/Options.h +119 -0
- data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +516 -732
- data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
- data/dist/ice/cpp/src/Ice/OutputStream.cpp +610 -543
- data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
- data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
- data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +118 -277
- data/dist/ice/cpp/src/Ice/PluginManagerI.h +41 -48
- data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
- data/dist/ice/cpp/src/Ice/PropertyNames.cpp +519 -1341
- data/dist/ice/cpp/src/Ice/PropertyNames.h +49 -64
- data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
- data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
- data/dist/ice/cpp/src/Ice/Protocol.cpp +129 -94
- data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
- data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +117 -62
- data/dist/ice/cpp/src/Ice/ProtocolInstance.h +63 -82
- data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +4 -11
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +10 -32
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +25 -54
- data/dist/ice/cpp/src/Ice/Proxy.cpp +294 -1357
- data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
- data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
- data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
- data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
- data/dist/ice/cpp/src/Ice/Random.h +23 -0
- data/dist/ice/cpp/src/Ice/Reference.cpp +635 -1097
- data/dist/ice/cpp/src/Ice/Reference.h +314 -298
- data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +320 -378
- data/dist/ice/cpp/src/Ice/ReferenceFactory.h +48 -66
- data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +4 -9
- data/dist/ice/cpp/src/Ice/RequestHandler.cpp +15 -24
- data/dist/ice/cpp/src/Ice/RequestHandler.h +43 -68
- data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
- data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
- data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
- data/dist/ice/cpp/src/Ice/RetryQueue.cpp +51 -57
- data/dist/ice/cpp/src/Ice/RetryQueue.h +39 -46
- data/dist/ice/cpp/src/Ice/RetryQueueF.h +4 -9
- data/dist/ice/cpp/src/Ice/RouterInfo.cpp +97 -201
- data/dist/ice/cpp/src/Ice/RouterInfo.h +61 -118
- data/dist/ice/cpp/src/Ice/RouterInfoF.h +6 -14
- data/dist/ice/cpp/src/Ice/SHA1.cpp +86 -60
- data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
- data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
- data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +521 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +646 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
- data/dist/ice/cpp/src/{IceSSL → Ice/SSL}/RFC2253.cpp +85 -88
- data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +69 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +673 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +118 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1449 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1088 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +825 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1048 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +233 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
- data/dist/ice/cpp/src/Ice/Selector.cpp +341 -606
- data/dist/ice/cpp/src/Ice/Selector.h +167 -224
- data/dist/ice/cpp/src/Ice/ServantManager.cpp +195 -128
- data/dist/ice/cpp/src/Ice/ServantManager.h +52 -55
- data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/Service.cpp +548 -641
- data/dist/ice/cpp/src/Ice/SharedContext.h +13 -26
- data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
- data/dist/ice/cpp/src/Ice/SlicedData.cpp +17 -96
- data/dist/ice/cpp/src/Ice/StreamSocket.cpp +104 -151
- data/dist/ice/cpp/src/Ice/StreamSocket.h +48 -60
- data/dist/ice/cpp/src/Ice/StringConverter.cpp +586 -0
- data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
- data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +41 -47
- data/dist/ice/cpp/src/Ice/SysLoggerI.h +24 -27
- data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +16 -17
- data/dist/ice/cpp/src/Ice/SystemdJournalI.h +19 -25
- data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
- data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +67 -88
- data/dist/ice/cpp/src/Ice/TcpAcceptor.h +34 -40
- data/dist/ice/cpp/src/Ice/TcpConnector.cpp +42 -41
- data/dist/ice/cpp/src/Ice/TcpConnector.h +26 -35
- data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +172 -146
- data/dist/ice/cpp/src/Ice/TcpEndpointI.h +76 -80
- data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +38 -26
- data/dist/ice/cpp/src/Ice/TcpTransceiver.h +40 -45
- data/dist/ice/cpp/src/Ice/ThreadPool.cpp +333 -515
- data/dist/ice/cpp/src/Ice/ThreadPool.h +202 -290
- data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
- data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
- data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
- data/dist/ice/cpp/src/Ice/Timer.cpp +73 -167
- data/dist/ice/cpp/src/Ice/Timer.h +212 -0
- data/dist/ice/cpp/src/Ice/TraceLevels.cpp +11 -29
- data/dist/ice/cpp/src/Ice/TraceLevels.h +22 -28
- data/dist/ice/cpp/src/Ice/TraceLevelsF.h +4 -11
- data/dist/ice/cpp/src/Ice/TraceUtil.cpp +136 -215
- data/dist/ice/cpp/src/Ice/TraceUtil.h +27 -16
- data/dist/ice/cpp/src/Ice/Transceiver.cpp +3 -7
- data/dist/ice/cpp/src/Ice/Transceiver.h +35 -32
- data/dist/ice/cpp/src/Ice/TransceiverF.h +10 -20
- data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
- data/dist/ice/cpp/src/Ice/UdpConnector.cpp +39 -39
- data/dist/ice/cpp/src/Ice/UdpConnector.h +27 -36
- data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +178 -213
- data/dist/ice/cpp/src/Ice/UdpEndpointI.h +82 -85
- data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +201 -221
- data/dist/ice/cpp/src/Ice/UdpTransceiver.h +68 -74
- data/dist/ice/cpp/{include/IceUtil → src/Ice}/UndefSysMacros.h +12 -12
- data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
- data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
- data/dist/ice/cpp/src/Ice/Value.cpp +107 -38
- data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +10 -15
- data/dist/ice/cpp/src/Ice/WSAcceptor.h +31 -37
- data/dist/ice/cpp/src/Ice/WSConnector.cpp +25 -40
- data/dist/ice/cpp/src/Ice/WSConnector.h +26 -33
- data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +164 -217
- data/dist/ice/cpp/src/Ice/WSEndpoint.h +72 -83
- data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +469 -458
- data/dist/ice/cpp/src/Ice/WSTransceiver.h +117 -123
- data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +20 -29
- data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +20 -31
- data/dist/ice/cpp/src/Ice/generated/Identity.cpp +24 -34
- data/dist/ice/cpp/src/Ice/generated/Locator.cpp +454 -1744
- data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
- data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +824 -1971
- data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
- data/dist/ice/cpp/src/Ice/generated/Process.cpp +190 -331
- data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +289 -449
- data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +547 -867
- data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
- data/dist/ice/cpp/src/Ice/generated/Router.cpp +406 -723
- data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +19 -29
- data/dist/ice/cpp/src/Ice/generated/Version.cpp +28 -31
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +76 -139
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +55 -96
- data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +190 -303
- data/dist/ice/cpp/src/IceDiscovery/LookupI.h +126 -185
- data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +56 -77
- data/dist/ice/cpp/src/IceDiscovery/PluginI.h +20 -25
- data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
- data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +14 -37
- data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +411 -649
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
- data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
- data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
- data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
- data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
- data/dist/ice/cpp/src/Slice/FileTracker.cpp +25 -75
- data/dist/ice/cpp/src/Slice/FileTracker.h +35 -56
- data/dist/ice/cpp/src/Slice/Grammar.cpp +2711 -3382
- data/dist/ice/cpp/src/Slice/Grammar.h +95 -75
- data/dist/ice/cpp/src/Slice/GrammarUtil.h +117 -217
- data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +486 -0
- data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
- data/dist/ice/cpp/src/Slice/Parser.cpp +3068 -5223
- data/dist/ice/cpp/src/Slice/Parser.h +1086 -1065
- data/dist/ice/cpp/src/Slice/Preprocessor.cpp +97 -599
- data/dist/ice/cpp/src/Slice/Preprocessor.h +26 -42
- data/dist/ice/cpp/src/Slice/Scanner.cpp +1562 -924
- data/dist/ice/cpp/src/Slice/SliceUtil.cpp +517 -113
- data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +254 -269
- data/dist/ice/cpp/src/Slice/Util.h +126 -35
- data/dist/ice/cpp/src/slice2rb/Main.cpp +13 -15
- data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
- data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
- data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
- data/dist/ice/slice/Glacier2/Metrics.ice +34 -75
- data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +42 -98
- data/dist/ice/slice/Glacier2/Router.ice +80 -173
- data/dist/ice/slice/Glacier2/SSLInfo.ice +23 -40
- data/dist/ice/slice/Glacier2/Session.ice +120 -261
- data/dist/ice/slice/Ice/BuiltinSequences.ice +33 -38
- data/dist/ice/slice/Ice/Context.ice +24 -0
- data/dist/ice/slice/Ice/EndpointTypes.ice +35 -33
- data/dist/ice/slice/Ice/Identity.ice +24 -63
- data/dist/ice/slice/Ice/Locator.ice +61 -226
- data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
- data/dist/ice/slice/Ice/Metrics.ice +189 -424
- data/dist/ice/slice/Ice/OperationMode.ice +38 -0
- data/dist/ice/slice/Ice/Process.ice +16 -52
- data/dist/ice/slice/Ice/PropertiesAdmin.ice +25 -75
- data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
- data/dist/ice/slice/Ice/RemoteLogger.ice +113 -213
- data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
- data/dist/ice/slice/Ice/Router.ice +42 -91
- data/dist/ice/slice/Ice/SliceChecksumDict.ice +7 -25
- data/dist/ice/slice/Ice/Version.ice +31 -39
- data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
- data/dist/ice/slice/IceGrid/Admin.ice +942 -1918
- data/dist/ice/slice/IceGrid/Descriptor.ice +476 -1051
- data/dist/ice/slice/IceGrid/Exception.ice +86 -384
- data/dist/ice/slice/IceGrid/FileParser.ice +23 -59
- data/dist/ice/slice/IceGrid/Registry.ice +117 -256
- data/dist/ice/slice/IceGrid/Session.ice +46 -110
- data/dist/ice/slice/IceGrid/UserAccountMapper.ice +22 -57
- data/dist/ice/slice/IceStorm/IceStorm.ice +173 -401
- data/dist/ice/slice/IceStorm/Metrics.ice +28 -70
- data/dist/lib/Glacier2/Metrics.rb +16 -31
- data/dist/lib/Glacier2/PermissionsVerifier.rb +18 -50
- data/dist/lib/Glacier2/Router.rb +20 -42
- data/dist/lib/Glacier2/SSLInfo.rb +14 -22
- data/dist/lib/Glacier2/Session.rb +53 -113
- data/dist/lib/Glacier2.rb +6 -6
- data/dist/lib/Ice/BuiltinSequences.rb +14 -26
- data/dist/lib/Ice/CompressBatch.rb +50 -0
- data/dist/lib/Ice/Context.rb +12 -0
- data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
- data/dist/lib/Ice/EndpointTypes.rb +14 -55
- data/dist/lib/Ice/Exception.rb +20 -0
- data/dist/lib/Ice/Identity.rb +10 -26
- data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
- data/dist/lib/Ice/InitializationData.rb +12 -0
- data/dist/lib/Ice/LocalExceptions.rb +168 -0
- data/dist/lib/Ice/Locator.rb +21 -134
- data/dist/lib/Ice/LocatorRegistry.rb +73 -0
- data/dist/lib/Ice/Metrics.rb +85 -132
- data/dist/lib/Ice/OperationMode.rb +58 -0
- data/dist/lib/Ice/Process.rb +12 -31
- data/dist/lib/Ice/PropertiesAdmin.rb +12 -36
- data/dist/lib/Ice/PropertyDict.rb +12 -0
- data/dist/lib/Ice/Proxy.rb +85 -0
- data/dist/lib/Ice/ProxyFunctions.rb +69 -0
- data/dist/lib/Ice/RemoteLogger.rb +29 -60
- data/dist/lib/Ice/ReplyStatus.rb +65 -0
- data/dist/lib/Ice/Router.rb +19 -47
- data/dist/lib/Ice/SliceChecksumDict.rb +5 -17
- data/dist/lib/Ice/SliceUtil.rb +41 -0
- data/dist/lib/Ice/Struct.rb +11 -0
- data/dist/lib/Ice/ToStringMode.rb +50 -0
- data/dist/lib/Ice/Value.rb +93 -0
- data/dist/lib/Ice/Version.rb +12 -24
- data/dist/lib/Ice.rb +29 -665
- data/dist/lib/IceBox/ServiceManager.rb +104 -0
- data/dist/lib/IceBox.rb +2 -4
- data/dist/lib/IceGrid/Admin.rb +303 -291
- data/dist/lib/IceGrid/Descriptor.rb +147 -192
- data/dist/lib/IceGrid/Exception.rb +26 -257
- data/dist/lib/IceGrid/FileParser.rb +12 -36
- data/dist/lib/IceGrid/Registry.rb +35 -76
- data/dist/lib/IceGrid/Session.rb +19 -34
- data/dist/lib/IceGrid/UserAccountMapper.rb +11 -34
- data/dist/lib/IceGrid.rb +3 -3
- data/dist/lib/IceStorm/IceStorm.rb +51 -132
- data/dist/lib/IceStorm/Metrics.rb +19 -37
- data/dist/lib/IceStorm.rb +3 -5
- data/extconf.rb +6 -8
- data/ice.gemspec +3 -3
- data/scripts/slice2rb +1 -3
- metadata +206 -386
- data/dist/IceRuby/ValueFactoryManager.cpp +0 -445
- data/dist/IceRuby/ValueFactoryManager.h +0 -95
- data/dist/ice/cpp/include/Ice/Application.h +0 -326
- data/dist/ice/cpp/include/Ice/AsyncResult.h +0 -155
- data/dist/ice/cpp/include/Ice/AsyncResultF.h +0 -23
- data/dist/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
- data/dist/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
- data/dist/ice/cpp/include/Ice/Comparable.h +0 -205
- data/dist/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
- data/dist/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
- data/dist/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
- data/dist/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
- data/dist/ice/cpp/include/Ice/Dispatcher.h +0 -67
- data/dist/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
- data/dist/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
- data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
- data/dist/ice/cpp/include/Ice/FactoryTable.h +0 -73
- data/dist/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
- data/dist/ice/cpp/include/Ice/Functional.h +0 -140
- data/dist/ice/cpp/include/Ice/GCObject.h +0 -76
- data/dist/ice/cpp/include/Ice/Handle.h +0 -182
- data/dist/ice/cpp/include/Ice/Incoming.h +0 -225
- data/dist/ice/cpp/include/Ice/IncomingAsync.h +0 -186
- data/dist/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
- data/dist/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
- data/dist/ice/cpp/include/Ice/LocalObject.h +0 -35
- data/dist/ice/cpp/include/Ice/LocalObjectF.h +0 -21
- data/dist/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
- data/dist/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
- data/dist/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
- data/dist/ice/cpp/include/Ice/Optional.h +0 -1114
- data/dist/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
- data/dist/ice/cpp/include/Ice/Protocol.h +0 -274
- data/dist/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
- data/dist/ice/cpp/include/Ice/ProxyHandle.h +0 -318
- data/dist/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
- data/dist/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
- data/dist/ice/cpp/include/Ice/SHA1.h +0 -40
- data/dist/ice/cpp/include/Ice/ServantManagerF.h +0 -21
- data/dist/ice/cpp/include/Ice/SliceChecksums.h +0 -33
- data/dist/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
- data/dist/ice/cpp/include/Ice/UniquePtr.h +0 -95
- data/dist/ice/cpp/include/Ice/UniqueRef.h +0 -97
- data/dist/ice/cpp/include/IceSSL/Config.h +0 -21
- data/dist/ice/cpp/include/IceSSL/IceSSL.h +0 -24
- data/dist/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
- data/dist/ice/cpp/include/IceSSL/Plugin.h +0 -712
- data/dist/ice/cpp/include/IceSSL/SChannel.h +0 -72
- data/dist/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
- data/dist/ice/cpp/include/IceUtil/Atomic.h +0 -179
- data/dist/ice/cpp/include/IceUtil/Cond.h +0 -317
- data/dist/ice/cpp/include/IceUtil/Config.h +0 -392
- data/dist/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
- data/dist/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
- data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -96
- data/dist/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
- data/dist/ice/cpp/include/IceUtil/Exception.h +0 -394
- data/dist/ice/cpp/include/IceUtil/FileUtil.h +0 -140
- data/dist/ice/cpp/include/IceUtil/Functional.h +0 -389
- data/dist/ice/cpp/include/IceUtil/Handle.h +0 -261
- data/dist/ice/cpp/include/IceUtil/IceUtil.h +0 -40
- data/dist/ice/cpp/include/IceUtil/InputUtil.h +0 -42
- data/dist/ice/cpp/include/IceUtil/Iterator.h +0 -31
- data/dist/ice/cpp/include/IceUtil/Lock.h +0 -128
- data/dist/ice/cpp/include/IceUtil/Monitor.h +0 -243
- data/dist/ice/cpp/include/IceUtil/Mutex.h +0 -349
- data/dist/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
- data/dist/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
- data/dist/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
- data/dist/ice/cpp/include/IceUtil/Optional.h +0 -433
- data/dist/ice/cpp/include/IceUtil/Options.h +0 -135
- data/dist/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
- data/dist/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
- data/dist/ice/cpp/include/IceUtil/Random.h +0 -55
- data/dist/ice/cpp/include/IceUtil/RecMutex.h +0 -107
- data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
- data/dist/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
- data/dist/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
- data/dist/ice/cpp/include/IceUtil/Shared.h +0 -127
- data/dist/ice/cpp/include/IceUtil/StopWatch.h +0 -49
- data/dist/ice/cpp/include/IceUtil/StringConverter.h +0 -195
- data/dist/ice/cpp/include/IceUtil/StringUtil.h +0 -97
- data/dist/ice/cpp/include/IceUtil/Thread.h +0 -160
- data/dist/ice/cpp/include/IceUtil/ThreadException.h +0 -94
- data/dist/ice/cpp/include/IceUtil/Time.h +0 -205
- data/dist/ice/cpp/include/IceUtil/Timer.h +0 -153
- data/dist/ice/cpp/include/IceUtil/UUID.h +0 -21
- data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +0 -475
- data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +0 -1430
- data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +0 -147
- data/dist/ice/cpp/include/generated/Glacier2/Router.h +0 -3260
- data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +0 -125
- data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +0 -223
- data/dist/ice/cpp/include/generated/Glacier2/Session.h +0 -5894
- data/dist/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
- data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/Connection.h +0 -1703
- data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
- data/dist/ice/cpp/include/generated/Ice/Current.h +0 -322
- data/dist/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
- data/dist/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
- data/dist/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
- data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
- data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
- data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
- data/dist/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
- data/dist/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
- data/dist/ice/cpp/include/generated/Ice/Logger.h +0 -237
- data/dist/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
- data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
- data/dist/ice/cpp/include/generated/Ice/Plugin.h +0 -318
- data/dist/ice/cpp/include/generated/Ice/PluginF.h +0 -110
- data/dist/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
- data/dist/ice/cpp/include/generated/Ice/Properties.h +0 -452
- data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
- data/dist/ice/cpp/include/generated/Ice/RouterF.h +0 -125
- data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
- data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
- data/dist/ice/cpp/include/generated/IceBox/IceBox.h +0 -3269
- data/dist/ice/cpp/include/generated/IceGrid/Admin.h +0 -33773
- data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +0 -5254
- data/dist/ice/cpp/include/generated/IceGrid/Exception.h +0 -2834
- data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +0 -824
- data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +0 -635
- data/dist/ice/cpp/include/generated/IceGrid/Registry.h +0 -5089
- data/dist/ice/cpp/include/generated/IceGrid/Session.h +0 -2240
- data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +0 -800
- data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +0 -325
- data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +0 -2891
- data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
- data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
- data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
- data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +0 -6627
- data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +0 -665
- data/dist/ice/cpp/src/Ice/ACM.cpp +0 -380
- data/dist/ice/cpp/src/Ice/ACM.h +0 -119
- data/dist/ice/cpp/src/Ice/ACMF.h +0 -30
- data/dist/ice/cpp/src/Ice/Acceptor.cpp +0 -16
- data/dist/ice/cpp/src/Ice/Application.cpp +0 -661
- data/dist/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
- data/dist/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
- data/dist/ice/cpp/src/Ice/CommunicatorI.h +0 -167
- data/dist/ice/cpp/src/Ice/Cond.cpp +0 -381
- data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
- data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
- data/dist/ice/cpp/src/Ice/Connector.cpp +0 -16
- data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
- data/dist/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
- data/dist/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
- data/dist/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
- data/dist/ice/cpp/src/Ice/GCObject.cpp +0 -442
- data/dist/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
- data/dist/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
- data/dist/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
- data/dist/ice/cpp/src/Ice/Incoming.cpp +0 -795
- data/dist/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
- data/dist/ice/cpp/src/Ice/IncomingRequest.h +0 -33
- data/dist/ice/cpp/src/Ice/LocalObject.cpp +0 -23
- data/dist/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
- data/dist/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
- data/dist/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
- data/dist/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
- data/dist/ice/cpp/src/Ice/PropertiesI.h +0 -70
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
- data/dist/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
- data/dist/ice/cpp/src/Ice/ProxyFactory.h +0 -57
- data/dist/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
- data/dist/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
- data/dist/ice/cpp/src/Ice/ReplyStatus.h +0 -24
- data/dist/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
- data/dist/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
- data/dist/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
- data/dist/ice/cpp/src/Ice/ResponseHandler.h +0 -43
- data/dist/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
- data/dist/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
- data/dist/ice/cpp/src/Ice/StringUtil.h +0 -30
- data/dist/ice/cpp/src/Ice/Thread.cpp +0 -569
- data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
- data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
- data/dist/ice/cpp/src/Ice/VirtualShared.h +0 -38
- data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +0 -79
- data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Connection.cpp +0 -155
- data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Current.cpp +0 -62
- data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +0 -147
- data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +0 -49
- data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +0 -188
- data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +0 -66
- data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +0 -3262
- data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/Logger.cpp +0 -73
- data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +0 -79
- data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +0 -87
- data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/Properties.cpp +0 -78
- data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +0 -83
- data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +0 -154
- data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +0 -49
- data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +0 -146
- data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +0 -52
- data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +0 -477
- data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +0 -156
- data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +0 -570
- data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +0 -93
- data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +0 -1889
- data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +0 -915
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +0 -730
- data/dist/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
- data/dist/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
- data/dist/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
- data/dist/ice/cpp/src/IceSSL/CertificateI.h +0 -64
- data/dist/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
- data/dist/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
- data/dist/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
- data/dist/ice/cpp/src/IceSSL/EndpointI.h +0 -100
- data/dist/ice/cpp/src/IceSSL/Instance.cpp +0 -28
- data/dist/ice/cpp/src/IceSSL/Instance.h +0 -37
- data/dist/ice/cpp/src/IceSSL/InstanceF.h +0 -33
- data/dist/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
- data/dist/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
- data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
- data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
- data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
- data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
- data/dist/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
- data/dist/ice/cpp/src/IceSSL/PluginI.h +0 -67
- data/dist/ice/cpp/src/IceSSL/RFC2253.h +0 -62
- data/dist/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
- data/dist/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
- data/dist/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
- data/dist/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
- data/dist/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
- data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
- data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
- data/dist/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
- data/dist/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
- data/dist/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
- data/dist/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
- data/dist/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
- data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
- data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
- data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
- data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
- data/dist/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
- data/dist/ice/cpp/src/IceSSL/TrustManager.h +0 -46
- data/dist/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
- data/dist/ice/cpp/src/IceSSL/Util.cpp +0 -192
- data/dist/ice/cpp/src/IceSSL/Util.h +0 -99
- data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +0 -75
- data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +0 -61
- data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +0 -75
- data/dist/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
- data/dist/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
- data/dist/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
- data/dist/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
- data/dist/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
- data/dist/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
- data/dist/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
- data/dist/ice/cpp/src/IceUtil/Random.cpp +0 -180
- data/dist/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
- data/dist/ice/cpp/src/IceUtil/Shared.cpp +0 -71
- data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
- data/dist/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
- data/dist/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
- data/dist/ice/cpp/src/IceUtil/Time.cpp +0 -307
- data/dist/ice/cpp/src/IceUtil/UUID.cpp +0 -165
- data/dist/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
- data/dist/ice/cpp/src/IceUtil/Unicode.h +0 -43
- data/dist/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
- data/dist/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
- data/dist/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
- data/dist/ice/cpp/src/Slice/Checksum.cpp +0 -447
- data/dist/ice/cpp/src/Slice/Checksum.h +0 -21
- data/dist/ice/cpp/src/Slice/JavaUtil.cpp +0 -5183
- data/dist/ice/cpp/src/Slice/JavaUtil.h +0 -407
- data/dist/ice/cpp/src/Slice/MD5.cpp +0 -52
- data/dist/ice/cpp/src/Slice/MD5.h +0 -39
- data/dist/ice/cpp/src/Slice/MD5I.cpp +0 -393
- data/dist/ice/cpp/src/Slice/MD5I.h +0 -91
- data/dist/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
- data/dist/ice/cpp/src/Slice/PHPUtil.h +0 -36
- data/dist/ice/cpp/src/Slice/Python.cpp +0 -830
- data/dist/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
- data/dist/ice/cpp/src/Slice/PythonUtil.h +0 -70
- data/dist/ice/cpp/src/Slice/Ruby.cpp +0 -350
- data/dist/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
- data/dist/ice/cpp/src/Slice/RubyUtil.h +0 -49
- data/dist/ice/slice/Glacier2/PermissionsVerifierF.ice +0 -30
- data/dist/ice/slice/Glacier2/RouterF.ice +0 -29
- data/dist/ice/slice/Ice/Communicator.ice +0 -676
- data/dist/ice/slice/Ice/CommunicatorF.ice +0 -31
- data/dist/ice/slice/Ice/Connection.ice +0 -516
- data/dist/ice/slice/Ice/ConnectionF.ice +0 -33
- data/dist/ice/slice/Ice/Current.ice +0 -170
- data/dist/ice/slice/Ice/Endpoint.ice +0 -291
- data/dist/ice/slice/Ice/EndpointF.ice +0 -43
- data/dist/ice/slice/Ice/FacetMap.ice +0 -36
- data/dist/ice/slice/Ice/ImplicitContext.ice +0 -119
- data/dist/ice/slice/Ice/ImplicitContextF.ice +0 -30
- data/dist/ice/slice/Ice/Instrumentation.ice +0 -509
- data/dist/ice/slice/Ice/InstrumentationF.ice +0 -38
- data/dist/ice/slice/Ice/LocalException.ice +0 -1040
- data/dist/ice/slice/Ice/LocatorF.ice +0 -32
- data/dist/ice/slice/Ice/Logger.ice +0 -99
- data/dist/ice/slice/Ice/LoggerF.ice +0 -31
- data/dist/ice/slice/Ice/ObjectAdapter.ice +0 -710
- data/dist/ice/slice/Ice/ObjectAdapterF.ice +0 -31
- data/dist/ice/slice/Ice/ObjectFactory.ice +0 -71
- data/dist/ice/slice/Ice/Plugin.ice +0 -131
- data/dist/ice/slice/Ice/PluginF.ice +0 -36
- data/dist/ice/slice/Ice/ProcessF.ice +0 -31
- data/dist/ice/slice/Ice/Properties.ice +0 -244
- data/dist/ice/slice/Ice/PropertiesF.ice +0 -32
- data/dist/ice/slice/Ice/RouterF.ice +0 -31
- data/dist/ice/slice/Ice/ServantLocator.ice +0 -136
- data/dist/ice/slice/Ice/ServantLocatorF.ice +0 -31
- data/dist/ice/slice/Ice/ValueFactory.ice +0 -133
- data/dist/ice/slice/IceBox/IceBox.ice +0 -216
- data/dist/ice/slice/IceGrid/PluginFacade.ice +0 -329
- data/dist/ice/slice/IcePatch2/FileInfo.ice +0 -85
- data/dist/ice/slice/IcePatch2/FileServer.ice +0 -191
- data/dist/lib/Glacier2/PermissionsVerifierF.rb +0 -30
- data/dist/lib/Glacier2/RouterF.rb +0 -25
- data/dist/lib/Ice/Communicator.rb +0 -87
- data/dist/lib/Ice/CommunicatorF.rb +0 -24
- data/dist/lib/Ice/Connection.rb +0 -413
- data/dist/lib/Ice/ConnectionF.rb +0 -32
- data/dist/lib/Ice/Current.rb +0 -141
- data/dist/lib/Ice/Endpoint.rb +0 -187
- data/dist/lib/Ice/EndpointF.rb +0 -48
- data/dist/lib/Ice/FacetMap.rb +0 -24
- data/dist/lib/Ice/ImplicitContext.rb +0 -26
- data/dist/lib/Ice/ImplicitContextF.rb +0 -24
- data/dist/lib/Ice/Instrumentation.rb +0 -169
- data/dist/lib/Ice/InstrumentationF.rb +0 -31
- data/dist/lib/Ice/LocalException.rb +0 -1031
- data/dist/lib/Ice/LocatorF.rb +0 -30
- data/dist/lib/Ice/Logger.rb +0 -24
- data/dist/lib/Ice/LoggerF.rb +0 -24
- data/dist/lib/Ice/ObjectAdapter.rb +0 -29
- data/dist/lib/Ice/ObjectAdapterF.rb +0 -24
- data/dist/lib/Ice/ObjectFactory.rb +0 -24
- data/dist/lib/Ice/Plugin.rb +0 -30
- data/dist/lib/Ice/PluginF.rb +0 -28
- data/dist/lib/Ice/ProcessF.rb +0 -25
- data/dist/lib/Ice/Properties.rb +0 -25
- data/dist/lib/Ice/PropertiesF.rb +0 -29
- data/dist/lib/Ice/RouterF.rb +0 -25
- data/dist/lib/Ice/ServantLocator.rb +0 -26
- data/dist/lib/Ice/ServantLocatorF.rb +0 -24
- data/dist/lib/Ice/ValueFactory.rb +0 -28
- data/dist/lib/IceBox/IceBox.rb +0 -164
- data/dist/lib/IceGrid/PluginFacade.rb +0 -35
- data/dist/lib/IcePatch2/FileInfo.rb +0 -115
- data/dist/lib/IcePatch2/FileServer.rb +0 -123
- data/dist/lib/IcePatch2.rb +0 -5
|
@@ -1,149 +1,87 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
#include
|
|
6
|
-
#include
|
|
7
|
-
#include
|
|
8
|
-
#include
|
|
9
|
-
#include
|
|
10
|
-
#include
|
|
11
|
-
#include
|
|
12
|
-
#include
|
|
13
|
-
#include
|
|
14
|
-
#include
|
|
15
|
-
#include
|
|
16
|
-
#include
|
|
17
|
-
#include
|
|
18
|
-
#include
|
|
19
|
-
#include
|
|
20
|
-
#include
|
|
21
|
-
#include
|
|
22
|
-
#include
|
|
23
|
-
#include
|
|
24
|
-
#include
|
|
25
|
-
#include
|
|
26
|
-
#include
|
|
27
|
-
|
|
28
|
-
#include <IceUtil/Random.h>
|
|
29
|
-
#include <IceUtil/MutexPtrLock.h>
|
|
1
|
+
// Copyright (c) ZeroC, Inc.
|
|
2
|
+
|
|
3
|
+
#include "Reference.h"
|
|
4
|
+
#include "CollocatedRequestHandler.h"
|
|
5
|
+
#include "ConnectRequestHandler.h"
|
|
6
|
+
#include "ConnectionFactory.h"
|
|
7
|
+
#include "ConnectionI.h"
|
|
8
|
+
#include "DefaultsAndOverrides.h"
|
|
9
|
+
#include "EndpointI.h"
|
|
10
|
+
#include "FixedRequestHandler.h"
|
|
11
|
+
#include "HashUtil.h"
|
|
12
|
+
#include "Ice/LocalExceptions.h"
|
|
13
|
+
#include "Ice/Locator.h"
|
|
14
|
+
#include "Ice/LoggerUtil.h"
|
|
15
|
+
#include "Ice/OutputStream.h"
|
|
16
|
+
#include "Ice/Router.h"
|
|
17
|
+
#include "Ice/StringUtil.h"
|
|
18
|
+
#include "Instance.h"
|
|
19
|
+
#include "LocatorInfo.h"
|
|
20
|
+
#include "ObjectAdapterFactory.h"
|
|
21
|
+
#include "OpaqueEndpointI.h"
|
|
22
|
+
#include "Random.h"
|
|
23
|
+
#include "ReferenceFactory.h"
|
|
24
|
+
#include "RouterInfo.h"
|
|
25
|
+
#include "TargetCompare.h"
|
|
26
|
+
#include "TraceLevels.h"
|
|
30
27
|
|
|
31
|
-
#include <functional>
|
|
32
28
|
#include <algorithm>
|
|
29
|
+
#include <functional>
|
|
33
30
|
|
|
34
31
|
using namespace std;
|
|
35
32
|
using namespace Ice;
|
|
36
33
|
using namespace IceInternal;
|
|
37
34
|
|
|
38
|
-
IceUtil::Shared* IceInternal::upCast(IceInternal::Reference* p) { return p; }
|
|
39
|
-
|
|
40
|
-
namespace
|
|
41
|
-
{
|
|
42
|
-
|
|
43
|
-
IceUtil::Mutex* hashMutex = 0;
|
|
44
|
-
|
|
45
|
-
class Init
|
|
46
|
-
{
|
|
47
|
-
public:
|
|
48
|
-
|
|
49
|
-
Init()
|
|
50
|
-
{
|
|
51
|
-
hashMutex = new IceUtil::Mutex;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
~Init()
|
|
55
|
-
{
|
|
56
|
-
delete hashMutex;
|
|
57
|
-
hashMutex = 0;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
Init init;
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
35
|
CommunicatorPtr
|
|
66
|
-
IceInternal::Reference::getCommunicator() const
|
|
36
|
+
IceInternal::Reference::getCommunicator() const noexcept
|
|
67
37
|
{
|
|
68
38
|
return _communicator;
|
|
69
39
|
}
|
|
70
40
|
|
|
71
41
|
ReferencePtr
|
|
72
|
-
IceInternal::Reference::changeContext(
|
|
42
|
+
IceInternal::Reference::changeContext(Context newContext) const
|
|
73
43
|
{
|
|
74
|
-
ReferencePtr r =
|
|
75
|
-
r->_context =
|
|
44
|
+
ReferencePtr r = clone();
|
|
45
|
+
r->_context = make_shared<SharedContext>(std::move(newContext));
|
|
76
46
|
return r;
|
|
77
47
|
}
|
|
78
48
|
|
|
79
49
|
ReferencePtr
|
|
80
50
|
IceInternal::Reference::changeMode(Mode newMode) const
|
|
81
51
|
{
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
85
|
-
}
|
|
86
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
52
|
+
ReferencePtr r = clone();
|
|
87
53
|
r->_mode = newMode;
|
|
88
54
|
return r;
|
|
89
55
|
}
|
|
90
56
|
|
|
91
57
|
ReferencePtr
|
|
92
|
-
IceInternal::Reference::
|
|
93
|
-
{
|
|
94
|
-
if(newSecure == _secure)
|
|
95
|
-
{
|
|
96
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
97
|
-
}
|
|
98
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
99
|
-
r->_secure = newSecure;
|
|
100
|
-
return r;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
ReferencePtr
|
|
104
|
-
IceInternal::Reference::changeIdentity(const Identity& newIdentity) const
|
|
58
|
+
IceInternal::Reference::changeIdentity(Identity newIdentity) const
|
|
105
59
|
{
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
109
|
-
}
|
|
110
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
111
|
-
r->_identity = newIdentity;
|
|
60
|
+
ReferencePtr r = clone();
|
|
61
|
+
r->_identity = std::move(newIdentity);
|
|
112
62
|
return r;
|
|
113
63
|
}
|
|
114
64
|
|
|
115
65
|
ReferencePtr
|
|
116
|
-
IceInternal::Reference::changeFacet(
|
|
66
|
+
IceInternal::Reference::changeFacet(string newFacet) const
|
|
117
67
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
121
|
-
}
|
|
122
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
123
|
-
r->_facet = newFacet;
|
|
68
|
+
ReferencePtr r = clone();
|
|
69
|
+
r->_facet = std::move(newFacet);
|
|
124
70
|
return r;
|
|
125
71
|
}
|
|
126
72
|
|
|
127
73
|
ReferencePtr
|
|
128
|
-
IceInternal::Reference::changeInvocationTimeout(
|
|
74
|
+
IceInternal::Reference::changeInvocationTimeout(chrono::milliseconds invocationTimeout) const
|
|
129
75
|
{
|
|
130
|
-
|
|
131
|
-
{
|
|
132
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
133
|
-
}
|
|
134
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
76
|
+
ReferencePtr r = clone();
|
|
135
77
|
r->_invocationTimeout = invocationTimeout;
|
|
136
78
|
return r;
|
|
137
79
|
}
|
|
138
80
|
|
|
139
81
|
ReferencePtr
|
|
140
|
-
IceInternal::Reference::changeEncoding(
|
|
82
|
+
IceInternal::Reference::changeEncoding(Ice::EncodingVersion encoding) const
|
|
141
83
|
{
|
|
142
|
-
|
|
143
|
-
{
|
|
144
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
145
|
-
}
|
|
146
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
84
|
+
ReferencePtr r = clone();
|
|
147
85
|
r->_encoding = encoding;
|
|
148
86
|
return r;
|
|
149
87
|
}
|
|
@@ -151,45 +89,33 @@ IceInternal::Reference::changeEncoding(const Ice::EncodingVersion& encoding) con
|
|
|
151
89
|
ReferencePtr
|
|
152
90
|
IceInternal::Reference::changeCompress(bool newCompress) const
|
|
153
91
|
{
|
|
154
|
-
|
|
155
|
-
{
|
|
156
|
-
return ReferencePtr(const_cast<Reference*>(this));
|
|
157
|
-
}
|
|
158
|
-
ReferencePtr r = _instance->referenceFactory()->copy(this);
|
|
92
|
+
ReferencePtr r = clone();
|
|
159
93
|
r->_compress = newCompress;
|
|
160
|
-
r->_overrideCompress = true;
|
|
161
94
|
return r;
|
|
162
95
|
}
|
|
163
96
|
|
|
164
|
-
bool
|
|
165
|
-
IceInternal::Reference::getCompressOverride(
|
|
97
|
+
optional<bool>
|
|
98
|
+
IceInternal::Reference::getCompressOverride() const noexcept
|
|
166
99
|
{
|
|
167
100
|
DefaultsAndOverridesPtr defaultsAndOverrides = getInstance()->defaultsAndOverrides();
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
else if(_overrideCompress)
|
|
173
|
-
{
|
|
174
|
-
compress = _compress;
|
|
175
|
-
}
|
|
176
|
-
else
|
|
177
|
-
{
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
return true;
|
|
101
|
+
optional<bool> compress =
|
|
102
|
+
defaultsAndOverrides->overrideCompress.has_value() ? defaultsAndOverrides->overrideCompress : _compress;
|
|
103
|
+
return compress;
|
|
181
104
|
}
|
|
182
105
|
|
|
183
|
-
|
|
184
|
-
Reference::hash() const
|
|
106
|
+
size_t
|
|
107
|
+
Reference::hash() const noexcept
|
|
185
108
|
{
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
109
|
+
size_t h = 5381;
|
|
110
|
+
hashAdd(h, static_cast<int32_t>(_mode));
|
|
111
|
+
hashAdd(h, _identity.name);
|
|
112
|
+
hashAdd(h, _identity.category);
|
|
113
|
+
hashAdd(h, _context->getValue());
|
|
114
|
+
hashAdd(h, _facet);
|
|
115
|
+
hashAdd(h, _compress);
|
|
116
|
+
// We don't include protocol and encoding in the hash; they are using 1.0 and 1.1, respectively.
|
|
117
|
+
hashAdd(h, _invocationTimeout.count());
|
|
118
|
+
return h;
|
|
193
119
|
}
|
|
194
120
|
|
|
195
121
|
void
|
|
@@ -203,20 +129,20 @@ IceInternal::Reference::streamWrite(OutputStream* s) const
|
|
|
203
129
|
//
|
|
204
130
|
// For compatibility with the old FacetPath.
|
|
205
131
|
//
|
|
206
|
-
if(_facet.empty())
|
|
132
|
+
if (_facet.empty())
|
|
207
133
|
{
|
|
208
|
-
s->write(static_cast<string*>(
|
|
134
|
+
s->write(static_cast<string*>(nullptr), static_cast<string*>(nullptr));
|
|
209
135
|
}
|
|
210
136
|
else
|
|
211
137
|
{
|
|
212
138
|
s->write(&_facet, &_facet + 1);
|
|
213
139
|
}
|
|
214
140
|
|
|
215
|
-
s->write(static_cast<
|
|
141
|
+
s->write(static_cast<uint8_t>(_mode));
|
|
216
142
|
|
|
217
|
-
s->write(
|
|
143
|
+
s->write(false); // secure, no longer used
|
|
218
144
|
|
|
219
|
-
if(s->getEncoding() != Ice::Encoding_1_0)
|
|
145
|
+
if (s->getEncoding() != Ice::Encoding_1_0)
|
|
220
146
|
{
|
|
221
147
|
s->write(_protocol);
|
|
222
148
|
s->write(_encoding);
|
|
@@ -248,7 +174,7 @@ IceInternal::Reference::toString() const
|
|
|
248
174
|
// the identity string in quotes.
|
|
249
175
|
//
|
|
250
176
|
|
|
251
|
-
if(id.find_first_of(separators) != string::npos)
|
|
177
|
+
if (id.find_first_of(separators) != string::npos)
|
|
252
178
|
{
|
|
253
179
|
s << '"' << id << '"';
|
|
254
180
|
}
|
|
@@ -257,7 +183,7 @@ IceInternal::Reference::toString() const
|
|
|
257
183
|
s << id;
|
|
258
184
|
}
|
|
259
185
|
|
|
260
|
-
if(!_facet.empty())
|
|
186
|
+
if (!_facet.empty())
|
|
261
187
|
{
|
|
262
188
|
s << " -f ";
|
|
263
189
|
|
|
@@ -267,7 +193,7 @@ IceInternal::Reference::toString() const
|
|
|
267
193
|
// the reference parser uses as separators, then we enclose
|
|
268
194
|
// the facet string in quotes.
|
|
269
195
|
//
|
|
270
|
-
if(fs.find_first_of(separators) != string::npos)
|
|
196
|
+
if (fs.find_first_of(separators) != string::npos)
|
|
271
197
|
{
|
|
272
198
|
s << '"' << fs << '"';
|
|
273
199
|
}
|
|
@@ -277,11 +203,11 @@ IceInternal::Reference::toString() const
|
|
|
277
203
|
}
|
|
278
204
|
}
|
|
279
205
|
|
|
280
|
-
switch(_mode)
|
|
206
|
+
switch (_mode)
|
|
281
207
|
{
|
|
282
208
|
case ModeTwoway:
|
|
283
209
|
{
|
|
284
|
-
|
|
210
|
+
// Don't print the default mode.
|
|
285
211
|
break;
|
|
286
212
|
}
|
|
287
213
|
|
|
@@ -310,82 +236,66 @@ IceInternal::Reference::toString() const
|
|
|
310
236
|
}
|
|
311
237
|
}
|
|
312
238
|
|
|
313
|
-
if(
|
|
239
|
+
if (_protocol != Protocol_1_0)
|
|
314
240
|
{
|
|
315
|
-
|
|
241
|
+
// We print the protocol unless it's 1.0.
|
|
242
|
+
s << " -p " << _protocol;
|
|
316
243
|
}
|
|
317
244
|
|
|
318
|
-
if
|
|
245
|
+
// We print the encoding if it's not 1.1 or if Ice.Default.EncodingVersion is set to something other than 1.1.
|
|
246
|
+
if (_encoding != Ice::Encoding_1_1 || _instance->defaultsAndOverrides()->defaultEncoding != Ice::Encoding_1_1)
|
|
319
247
|
{
|
|
320
|
-
|
|
321
|
-
// We only print the protocol if it's not 1.0. It's fine as
|
|
322
|
-
// long as we don't add Ice.Default.ProtocolVersion, a
|
|
323
|
-
// stringified proxy will convert back to the same proxy with
|
|
324
|
-
// stringToProxy.
|
|
325
|
-
//
|
|
326
|
-
s << " -p " << _protocol;
|
|
248
|
+
s << " -e " << _encoding;
|
|
327
249
|
}
|
|
328
250
|
|
|
329
|
-
//
|
|
330
|
-
// Always print the encoding version to ensure a stringified proxy
|
|
331
|
-
// will convert back to a proxy with the same encoding with
|
|
332
|
-
// stringToProxy (and won't use Ice.Default.EncodingVersion).
|
|
333
|
-
//
|
|
334
|
-
s << " -e " << _encoding;
|
|
335
|
-
|
|
336
251
|
return s.str();
|
|
337
252
|
|
|
338
253
|
// Derived class writes the remainder of the string.
|
|
339
254
|
}
|
|
340
255
|
|
|
341
256
|
bool
|
|
342
|
-
IceInternal::Reference::operator==(const Reference& r) const
|
|
257
|
+
IceInternal::Reference::operator==(const Reference& r) const noexcept
|
|
343
258
|
{
|
|
344
259
|
//
|
|
345
260
|
// Note: if(this == &r) test is performed by each non-abstract derived class.
|
|
346
261
|
//
|
|
347
262
|
|
|
348
|
-
if(_mode != r._mode)
|
|
263
|
+
if (_mode != r._mode)
|
|
349
264
|
{
|
|
350
265
|
return false;
|
|
351
266
|
}
|
|
352
267
|
|
|
353
|
-
if(
|
|
268
|
+
if (_identity != r._identity)
|
|
354
269
|
{
|
|
355
270
|
return false;
|
|
356
271
|
}
|
|
357
272
|
|
|
358
|
-
if(
|
|
273
|
+
if (_context->getValue() != r._context->getValue())
|
|
359
274
|
{
|
|
360
275
|
return false;
|
|
361
276
|
}
|
|
362
277
|
|
|
363
|
-
if(
|
|
278
|
+
if (_facet != r._facet)
|
|
364
279
|
{
|
|
365
280
|
return false;
|
|
366
281
|
}
|
|
367
282
|
|
|
368
|
-
if(
|
|
283
|
+
if (_compress != r._compress)
|
|
369
284
|
{
|
|
370
285
|
return false;
|
|
371
286
|
}
|
|
372
287
|
|
|
373
|
-
if
|
|
288
|
+
if (_protocol != r._protocol)
|
|
374
289
|
{
|
|
375
290
|
return false;
|
|
376
291
|
}
|
|
377
292
|
|
|
378
|
-
if(
|
|
293
|
+
if (_encoding != r._encoding)
|
|
379
294
|
{
|
|
380
295
|
return false;
|
|
381
296
|
}
|
|
382
297
|
|
|
383
|
-
if(
|
|
384
|
-
{
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
if(_invocationTimeout != r._invocationTimeout)
|
|
298
|
+
if (_invocationTimeout != r._invocationTimeout)
|
|
389
299
|
{
|
|
390
300
|
return false;
|
|
391
301
|
}
|
|
@@ -393,100 +303,80 @@ IceInternal::Reference::operator==(const Reference& r) const
|
|
|
393
303
|
}
|
|
394
304
|
|
|
395
305
|
bool
|
|
396
|
-
IceInternal::Reference::operator<(const Reference& r) const
|
|
306
|
+
IceInternal::Reference::operator<(const Reference& r) const noexcept
|
|
397
307
|
{
|
|
398
308
|
//
|
|
399
309
|
// Note: if(this == &r) test is performed by each non-abstract derived class.
|
|
400
310
|
//
|
|
401
311
|
|
|
402
|
-
if(_mode < r._mode)
|
|
312
|
+
if (_mode < r._mode)
|
|
403
313
|
{
|
|
404
314
|
return true;
|
|
405
315
|
}
|
|
406
|
-
else if(r._mode < _mode)
|
|
316
|
+
else if (r._mode < _mode)
|
|
407
317
|
{
|
|
408
318
|
return false;
|
|
409
319
|
}
|
|
410
320
|
|
|
411
|
-
if(_identity < r._identity)
|
|
321
|
+
if (_identity < r._identity)
|
|
412
322
|
{
|
|
413
323
|
return true;
|
|
414
324
|
}
|
|
415
|
-
else if(r._identity < _identity)
|
|
325
|
+
else if (r._identity < _identity)
|
|
416
326
|
{
|
|
417
327
|
return false;
|
|
418
328
|
}
|
|
419
329
|
|
|
420
|
-
if(_context->getValue() < r._context->getValue())
|
|
330
|
+
if (_context->getValue() < r._context->getValue())
|
|
421
331
|
{
|
|
422
332
|
return true;
|
|
423
333
|
}
|
|
424
|
-
else if(r._context->getValue() < _context->getValue())
|
|
334
|
+
else if (r._context->getValue() < _context->getValue())
|
|
425
335
|
{
|
|
426
336
|
return false;
|
|
427
337
|
}
|
|
428
338
|
|
|
429
|
-
if(_facet < r._facet)
|
|
339
|
+
if (_facet < r._facet)
|
|
430
340
|
{
|
|
431
341
|
return true;
|
|
432
342
|
}
|
|
433
|
-
else if(r._facet < _facet)
|
|
343
|
+
else if (r._facet < _facet)
|
|
434
344
|
{
|
|
435
345
|
return false;
|
|
436
346
|
}
|
|
437
347
|
|
|
438
|
-
if(
|
|
348
|
+
if (_compress < r._compress)
|
|
439
349
|
{
|
|
440
350
|
return true;
|
|
441
351
|
}
|
|
442
|
-
else if(r.
|
|
352
|
+
else if (r._compress < _compress)
|
|
443
353
|
{
|
|
444
354
|
return false;
|
|
445
355
|
}
|
|
446
|
-
else if(_overrideCompress)
|
|
447
|
-
{
|
|
448
|
-
if(!_compress && r._compress)
|
|
449
|
-
{
|
|
450
|
-
return true;
|
|
451
|
-
}
|
|
452
|
-
else if(r._compress < _compress)
|
|
453
|
-
{
|
|
454
|
-
return false;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
356
|
|
|
458
|
-
if(
|
|
357
|
+
if (_protocol < r._protocol)
|
|
459
358
|
{
|
|
460
359
|
return true;
|
|
461
360
|
}
|
|
462
|
-
else if(r.
|
|
361
|
+
else if (r._protocol < _protocol)
|
|
463
362
|
{
|
|
464
363
|
return false;
|
|
465
364
|
}
|
|
466
365
|
|
|
467
|
-
if(
|
|
366
|
+
if (_encoding < r._encoding)
|
|
468
367
|
{
|
|
469
368
|
return true;
|
|
470
369
|
}
|
|
471
|
-
else if(r.
|
|
370
|
+
else if (r._encoding < _encoding)
|
|
472
371
|
{
|
|
473
372
|
return false;
|
|
474
373
|
}
|
|
475
374
|
|
|
476
|
-
if(
|
|
375
|
+
if (_invocationTimeout < r._invocationTimeout)
|
|
477
376
|
{
|
|
478
377
|
return true;
|
|
479
378
|
}
|
|
480
|
-
else if(r.
|
|
481
|
-
{
|
|
482
|
-
return false;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
if(_invocationTimeout < r._invocationTimeout)
|
|
486
|
-
{
|
|
487
|
-
return true;
|
|
488
|
-
}
|
|
489
|
-
else if(r._invocationTimeout < _invocationTimeout)
|
|
379
|
+
else if (r._invocationTimeout < _invocationTimeout)
|
|
490
380
|
{
|
|
491
381
|
return false;
|
|
492
382
|
}
|
|
@@ -494,195 +384,134 @@ IceInternal::Reference::operator<(const Reference& r) const
|
|
|
494
384
|
return false;
|
|
495
385
|
}
|
|
496
386
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
IceInternal::Reference::Reference(const
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
_overrideCompress(r._overrideCompress),
|
|
561
|
-
_compress(r._compress)
|
|
387
|
+
IceInternal::Reference::Reference(
|
|
388
|
+
InstancePtr instance,
|
|
389
|
+
CommunicatorPtr communicator,
|
|
390
|
+
Identity id,
|
|
391
|
+
string facet,
|
|
392
|
+
Mode mode,
|
|
393
|
+
std::optional<bool> compress,
|
|
394
|
+
ProtocolVersion protocol,
|
|
395
|
+
EncodingVersion encoding,
|
|
396
|
+
chrono::milliseconds invocationTimeout,
|
|
397
|
+
Context ctx)
|
|
398
|
+
: _instance(std::move(instance)),
|
|
399
|
+
_communicator(std::move(communicator)),
|
|
400
|
+
_mode(mode),
|
|
401
|
+
_compress(compress),
|
|
402
|
+
_identity(std::move(id)),
|
|
403
|
+
_context(make_shared<SharedContext>(std::move(ctx))),
|
|
404
|
+
_facet(std::move(facet)),
|
|
405
|
+
_protocol(protocol),
|
|
406
|
+
_encoding(encoding),
|
|
407
|
+
_invocationTimeout(invocationTimeout)
|
|
408
|
+
{
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
IceInternal::Reference::Reference(const Reference& r)
|
|
412
|
+
: enable_shared_from_this<Reference>(),
|
|
413
|
+
_instance(r._instance),
|
|
414
|
+
_communicator(r._communicator),
|
|
415
|
+
_mode(r._mode),
|
|
416
|
+
_compress(r._compress),
|
|
417
|
+
_identity(r._identity),
|
|
418
|
+
_context(r._context),
|
|
419
|
+
_facet(r._facet),
|
|
420
|
+
_protocol(r._protocol),
|
|
421
|
+
_encoding(r._encoding),
|
|
422
|
+
_invocationTimeout(r._invocationTimeout)
|
|
423
|
+
{
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
IceInternal::FixedReference::FixedReference(
|
|
427
|
+
InstancePtr instance,
|
|
428
|
+
CommunicatorPtr communicator,
|
|
429
|
+
Identity id,
|
|
430
|
+
string facet,
|
|
431
|
+
Mode mode,
|
|
432
|
+
std::optional<bool> compress,
|
|
433
|
+
ProtocolVersion protocol,
|
|
434
|
+
EncodingVersion encoding,
|
|
435
|
+
ConnectionIPtr fixedConnection,
|
|
436
|
+
chrono::milliseconds invocationTimeout,
|
|
437
|
+
Ice::Context context)
|
|
438
|
+
: Reference(
|
|
439
|
+
std::move(instance),
|
|
440
|
+
std::move(communicator),
|
|
441
|
+
std::move(id),
|
|
442
|
+
std::move(facet),
|
|
443
|
+
mode,
|
|
444
|
+
compress,
|
|
445
|
+
protocol,
|
|
446
|
+
encoding,
|
|
447
|
+
invocationTimeout,
|
|
448
|
+
std::move(context)),
|
|
449
|
+
_fixedConnection(std::move(fixedConnection))
|
|
562
450
|
{
|
|
563
451
|
}
|
|
564
452
|
|
|
565
|
-
int
|
|
566
|
-
IceInternal::Reference::hashInit() const
|
|
567
|
-
{
|
|
568
|
-
Int h = 5381;
|
|
569
|
-
hashAdd(h, static_cast<Int>(_mode));
|
|
570
|
-
hashAdd(h, _secure);
|
|
571
|
-
hashAdd(h, _identity.name);
|
|
572
|
-
hashAdd(h, _identity.category);
|
|
573
|
-
hashAdd(h, _context->getValue());
|
|
574
|
-
hashAdd(h, _facet);
|
|
575
|
-
hashAdd(h, _overrideCompress);
|
|
576
|
-
if(_overrideCompress)
|
|
577
|
-
{
|
|
578
|
-
hashAdd(h, _compress);
|
|
579
|
-
}
|
|
580
|
-
hashAdd(h, _protocol.major);
|
|
581
|
-
hashAdd(h, _protocol.minor);
|
|
582
|
-
hashAdd(h, _encoding.major);
|
|
583
|
-
hashAdd(h, _encoding.minor);
|
|
584
|
-
hashAdd(h, _invocationTimeout);
|
|
585
|
-
return h;
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
IceUtil::Shared* IceInternal::upCast(IceInternal::FixedReference* p) { return p; }
|
|
589
|
-
|
|
590
|
-
IceInternal::FixedReference::FixedReference(const InstancePtr& instance,
|
|
591
|
-
const CommunicatorPtr& communicator,
|
|
592
|
-
const Identity& id,
|
|
593
|
-
const string& facet,
|
|
594
|
-
Mode mode,
|
|
595
|
-
bool secure,
|
|
596
|
-
const ProtocolVersion& protocol,
|
|
597
|
-
const EncodingVersion& encoding,
|
|
598
|
-
const ConnectionIPtr& fixedConnection,
|
|
599
|
-
int invocationTimeout,
|
|
600
|
-
const Ice::Context& context,
|
|
601
|
-
const IceUtil::Optional<bool>& compress) :
|
|
602
|
-
Reference(instance, communicator, id, facet, mode, secure, protocol, encoding, invocationTimeout, context),
|
|
603
|
-
_fixedConnection(fixedConnection)
|
|
604
|
-
{
|
|
605
|
-
if(compress)
|
|
606
|
-
{
|
|
607
|
-
_overrideCompress = true;
|
|
608
|
-
_compress = *compress;
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
|
|
612
453
|
vector<EndpointIPtr>
|
|
613
454
|
IceInternal::FixedReference::getEndpoints() const
|
|
614
455
|
{
|
|
615
|
-
return
|
|
456
|
+
return {};
|
|
616
457
|
}
|
|
617
458
|
|
|
618
459
|
string
|
|
619
460
|
IceInternal::FixedReference::getAdapterId() const
|
|
620
461
|
{
|
|
621
|
-
return
|
|
462
|
+
return {};
|
|
622
463
|
}
|
|
623
464
|
|
|
624
465
|
bool
|
|
625
|
-
IceInternal::FixedReference::getCollocationOptimized() const
|
|
466
|
+
IceInternal::FixedReference::getCollocationOptimized() const noexcept
|
|
626
467
|
{
|
|
627
468
|
return false;
|
|
628
469
|
}
|
|
629
470
|
|
|
630
471
|
bool
|
|
631
|
-
IceInternal::FixedReference::getCacheConnection() const
|
|
472
|
+
IceInternal::FixedReference::getCacheConnection() const noexcept
|
|
632
473
|
{
|
|
633
474
|
return true;
|
|
634
475
|
}
|
|
635
476
|
|
|
636
|
-
bool
|
|
637
|
-
IceInternal::FixedReference::getPreferSecure() const
|
|
638
|
-
{
|
|
639
|
-
return false;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
477
|
Ice::EndpointSelectionType
|
|
643
|
-
IceInternal::FixedReference::getEndpointSelection() const
|
|
478
|
+
IceInternal::FixedReference::getEndpointSelection() const noexcept
|
|
644
479
|
{
|
|
645
|
-
return
|
|
480
|
+
return EndpointSelectionType::Random;
|
|
646
481
|
}
|
|
647
482
|
|
|
648
|
-
|
|
649
|
-
IceInternal::FixedReference::getLocatorCacheTimeout() const
|
|
483
|
+
chrono::milliseconds
|
|
484
|
+
IceInternal::FixedReference::getLocatorCacheTimeout() const noexcept
|
|
650
485
|
{
|
|
651
|
-
return
|
|
486
|
+
return 0ms;
|
|
652
487
|
}
|
|
653
488
|
|
|
654
489
|
string
|
|
655
490
|
IceInternal::FixedReference::getConnectionId() const
|
|
656
491
|
{
|
|
657
|
-
return
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
IceUtil::Optional<int>
|
|
661
|
-
IceInternal::FixedReference::getTimeout() const
|
|
662
|
-
{
|
|
663
|
-
return IceUtil::Optional<int>();
|
|
492
|
+
return {};
|
|
664
493
|
}
|
|
665
494
|
|
|
666
495
|
ReferencePtr
|
|
667
|
-
IceInternal::FixedReference::changeEndpoints(
|
|
496
|
+
IceInternal::FixedReference::changeEndpoints(vector<EndpointIPtr> /*newEndpoints*/) const
|
|
668
497
|
{
|
|
669
498
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
670
499
|
}
|
|
671
500
|
|
|
672
501
|
ReferencePtr
|
|
673
|
-
IceInternal::FixedReference::changeAdapterId(
|
|
502
|
+
IceInternal::FixedReference::changeAdapterId(string /*newAdapterId*/) const
|
|
674
503
|
{
|
|
675
504
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
676
505
|
}
|
|
677
506
|
|
|
678
507
|
ReferencePtr
|
|
679
|
-
IceInternal::FixedReference::changeLocator(
|
|
508
|
+
IceInternal::FixedReference::changeLocator(optional<LocatorPrx>) const
|
|
680
509
|
{
|
|
681
510
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
682
511
|
}
|
|
683
512
|
|
|
684
513
|
ReferencePtr
|
|
685
|
-
IceInternal::FixedReference::changeRouter(
|
|
514
|
+
IceInternal::FixedReference::changeRouter(optional<RouterPrx>) const
|
|
686
515
|
{
|
|
687
516
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
688
517
|
}
|
|
@@ -699,12 +528,6 @@ IceInternal::FixedReference::changeCacheConnection(bool) const
|
|
|
699
528
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
700
529
|
}
|
|
701
530
|
|
|
702
|
-
ReferencePtr
|
|
703
|
-
IceInternal::FixedReference::changePreferSecure(bool) const
|
|
704
|
-
{
|
|
705
|
-
throw FixedProxyException(__FILE__, __LINE__);
|
|
706
|
-
}
|
|
707
|
-
|
|
708
531
|
ReferencePtr
|
|
709
532
|
IceInternal::FixedReference::changeEndpointSelection(EndpointSelectionType) const
|
|
710
533
|
{
|
|
@@ -712,43 +535,33 @@ IceInternal::FixedReference::changeEndpointSelection(EndpointSelectionType) cons
|
|
|
712
535
|
}
|
|
713
536
|
|
|
714
537
|
ReferencePtr
|
|
715
|
-
IceInternal::FixedReference::changeLocatorCacheTimeout(
|
|
538
|
+
IceInternal::FixedReference::changeLocatorCacheTimeout(chrono::milliseconds) const
|
|
716
539
|
{
|
|
717
540
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
718
541
|
}
|
|
719
542
|
|
|
720
543
|
ReferencePtr
|
|
721
|
-
IceInternal::FixedReference::
|
|
544
|
+
IceInternal::FixedReference::changeConnectionId(string) const
|
|
722
545
|
{
|
|
723
546
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
724
547
|
}
|
|
725
548
|
|
|
726
549
|
ReferencePtr
|
|
727
|
-
IceInternal::FixedReference::
|
|
550
|
+
IceInternal::FixedReference::changeConnection(Ice::ConnectionIPtr newConnection) const
|
|
728
551
|
{
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
ReferencePtr
|
|
733
|
-
IceInternal::FixedReference::changeConnection(const Ice::ConnectionIPtr& newConnection) const
|
|
734
|
-
{
|
|
735
|
-
if(newConnection == _fixedConnection)
|
|
736
|
-
{
|
|
737
|
-
return FixedReferencePtr(const_cast<FixedReference*>(this));
|
|
738
|
-
}
|
|
739
|
-
FixedReferencePtr r = FixedReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
740
|
-
r->_fixedConnection = newConnection;
|
|
552
|
+
FixedReferencePtr r = dynamic_pointer_cast<FixedReference>(clone());
|
|
553
|
+
r->_fixedConnection = std::move(newConnection);
|
|
741
554
|
return r;
|
|
742
555
|
}
|
|
743
556
|
|
|
744
557
|
bool
|
|
745
|
-
IceInternal::FixedReference::isIndirect() const
|
|
558
|
+
IceInternal::FixedReference::isIndirect() const noexcept
|
|
746
559
|
{
|
|
747
560
|
return false;
|
|
748
561
|
}
|
|
749
562
|
|
|
750
563
|
bool
|
|
751
|
-
IceInternal::FixedReference::isWellKnown() const
|
|
564
|
+
IceInternal::FixedReference::isWellKnown() const noexcept
|
|
752
565
|
{
|
|
753
566
|
return false;
|
|
754
567
|
}
|
|
@@ -760,88 +573,72 @@ IceInternal::FixedReference::streamWrite(OutputStream*) const
|
|
|
760
573
|
}
|
|
761
574
|
|
|
762
575
|
PropertyDict
|
|
763
|
-
IceInternal::FixedReference::toProperty(
|
|
576
|
+
IceInternal::FixedReference::toProperty(string) const
|
|
764
577
|
{
|
|
765
578
|
throw FixedProxyException(__FILE__, __LINE__);
|
|
766
579
|
}
|
|
767
580
|
|
|
768
581
|
RequestHandlerPtr
|
|
769
|
-
IceInternal::FixedReference::getRequestHandler(
|
|
582
|
+
IceInternal::FixedReference::getRequestHandler() const
|
|
770
583
|
{
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
case Reference::ModeBatchOneway:
|
|
584
|
+
// We need to perform all these checks here and not in the constructor because changeConnection() clones then
|
|
585
|
+
// sets the connection.
|
|
586
|
+
|
|
587
|
+
switch (getMode())
|
|
776
588
|
{
|
|
777
|
-
|
|
589
|
+
case Reference::ModeTwoway:
|
|
590
|
+
case Reference::ModeOneway:
|
|
591
|
+
case Reference::ModeBatchOneway:
|
|
778
592
|
{
|
|
779
|
-
|
|
593
|
+
if (_fixedConnection->endpoint()->datagram())
|
|
594
|
+
{
|
|
595
|
+
throw NoEndpointException(
|
|
596
|
+
__FILE__,
|
|
597
|
+
__LINE__,
|
|
598
|
+
ObjectPrx::_fromReference(const_cast<FixedReference*>(this)->shared_from_this()));
|
|
599
|
+
}
|
|
600
|
+
break;
|
|
780
601
|
}
|
|
781
|
-
break;
|
|
782
|
-
}
|
|
783
602
|
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
{
|
|
787
|
-
if(!_fixedConnection->endpoint()->datagram())
|
|
603
|
+
case Reference::ModeDatagram:
|
|
604
|
+
case Reference::ModeBatchDatagram:
|
|
788
605
|
{
|
|
789
|
-
|
|
606
|
+
if (!_fixedConnection->endpoint()->datagram())
|
|
607
|
+
{
|
|
608
|
+
throw NoEndpointException(
|
|
609
|
+
__FILE__,
|
|
610
|
+
__LINE__,
|
|
611
|
+
ObjectPrx::_fromReference(const_cast<FixedReference*>(this)->shared_from_this()));
|
|
612
|
+
}
|
|
613
|
+
break;
|
|
790
614
|
}
|
|
791
|
-
break;
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
//
|
|
796
|
-
// If a secure connection is requested or secure overrides is set,
|
|
797
|
-
// check if the connection is secure.
|
|
798
|
-
//
|
|
799
|
-
bool secure;
|
|
800
|
-
DefaultsAndOverridesPtr defaultsAndOverrides = getInstance()->defaultsAndOverrides();
|
|
801
|
-
if(defaultsAndOverrides->overrideSecure)
|
|
802
|
-
{
|
|
803
|
-
secure = defaultsAndOverrides->overrideSecureValue;
|
|
804
|
-
}
|
|
805
|
-
else
|
|
806
|
-
{
|
|
807
|
-
secure = getSecure();
|
|
808
|
-
}
|
|
809
|
-
if(secure && !_fixedConnection->endpoint()->secure())
|
|
810
|
-
{
|
|
811
|
-
throw NoEndpointException(__FILE__, __LINE__, toString());
|
|
812
615
|
}
|
|
813
616
|
|
|
814
617
|
_fixedConnection->throwException(); // Throw in case our connection is already destroyed.
|
|
815
618
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
compress = defaultsAndOverrides->overrideCompressValue;
|
|
820
|
-
}
|
|
821
|
-
else if(_overrideCompress)
|
|
822
|
-
{
|
|
823
|
-
compress = _compress;
|
|
824
|
-
}
|
|
619
|
+
DefaultsAndOverridesPtr defaultsAndOverrides = getInstance()->defaultsAndOverrides();
|
|
620
|
+
bool compress = defaultsAndOverrides->overrideCompress.has_value() ? *defaultsAndOverrides->overrideCompress
|
|
621
|
+
: getCompress().value_or(false);
|
|
825
622
|
|
|
826
|
-
ReferencePtr ref = const_cast<FixedReference*>(this);
|
|
827
|
-
return
|
|
623
|
+
ReferencePtr ref = const_cast<FixedReference*>(this)->shared_from_this();
|
|
624
|
+
return make_shared<FixedRequestHandler>(ref, _fixedConnection, compress);
|
|
828
625
|
}
|
|
829
626
|
|
|
830
|
-
BatchRequestQueuePtr
|
|
831
|
-
IceInternal::FixedReference::getBatchRequestQueue() const
|
|
627
|
+
const BatchRequestQueuePtr&
|
|
628
|
+
IceInternal::FixedReference::getBatchRequestQueue() const noexcept
|
|
832
629
|
{
|
|
833
630
|
return _fixedConnection->getBatchRequestQueue();
|
|
834
631
|
}
|
|
835
632
|
|
|
836
633
|
bool
|
|
837
|
-
IceInternal::FixedReference::operator==(const Reference& r) const
|
|
634
|
+
IceInternal::FixedReference::operator==(const Reference& r) const noexcept
|
|
838
635
|
{
|
|
839
|
-
if(this == &r)
|
|
636
|
+
if (this == &r)
|
|
840
637
|
{
|
|
841
638
|
return true;
|
|
842
639
|
}
|
|
843
|
-
const
|
|
844
|
-
if(!rhs || !Reference::operator==(r))
|
|
640
|
+
const auto* rhs = dynamic_cast<const FixedReference*>(&r);
|
|
641
|
+
if (!rhs || !Reference::operator==(r))
|
|
845
642
|
{
|
|
846
643
|
return false;
|
|
847
644
|
}
|
|
@@ -849,23 +646,23 @@ IceInternal::FixedReference::operator==(const Reference& r) const
|
|
|
849
646
|
}
|
|
850
647
|
|
|
851
648
|
bool
|
|
852
|
-
IceInternal::FixedReference::operator<(const Reference& r) const
|
|
649
|
+
IceInternal::FixedReference::operator<(const Reference& r) const noexcept
|
|
853
650
|
{
|
|
854
|
-
if(this == &r)
|
|
651
|
+
if (this == &r)
|
|
855
652
|
{
|
|
856
653
|
return false;
|
|
857
654
|
}
|
|
858
|
-
if(Reference::operator<(r))
|
|
655
|
+
if (Reference::operator<(r))
|
|
859
656
|
{
|
|
860
657
|
return true;
|
|
861
658
|
}
|
|
862
|
-
if(!Reference::operator==(r))
|
|
659
|
+
if (!Reference::operator==(r))
|
|
863
660
|
{
|
|
864
661
|
return false;
|
|
865
662
|
}
|
|
866
663
|
|
|
867
|
-
const
|
|
868
|
-
if(!rhs)
|
|
664
|
+
const auto* rhs = dynamic_cast<const FixedReference*>(&r);
|
|
665
|
+
if (!rhs)
|
|
869
666
|
{
|
|
870
667
|
assert(dynamic_cast<const RoutableReference*>(&r));
|
|
871
668
|
return false; // As a rule, routable references are superior to fixed references.
|
|
@@ -876,50 +673,50 @@ IceInternal::FixedReference::operator<(const Reference& r) const
|
|
|
876
673
|
ReferencePtr
|
|
877
674
|
IceInternal::FixedReference::clone() const
|
|
878
675
|
{
|
|
879
|
-
return
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
IceInternal::
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
_timeout(-1)
|
|
676
|
+
return make_shared<FixedReference>(*this);
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
IceInternal::RoutableReference::RoutableReference(
|
|
680
|
+
InstancePtr instance,
|
|
681
|
+
CommunicatorPtr communicator,
|
|
682
|
+
Identity id,
|
|
683
|
+
string facet,
|
|
684
|
+
Mode mode,
|
|
685
|
+
optional<bool> compress,
|
|
686
|
+
ProtocolVersion protocol,
|
|
687
|
+
EncodingVersion encoding,
|
|
688
|
+
vector<EndpointIPtr> endpoints,
|
|
689
|
+
string adapterId,
|
|
690
|
+
LocatorInfoPtr locatorInfo,
|
|
691
|
+
RouterInfoPtr routerInfo,
|
|
692
|
+
bool collocationOptimized,
|
|
693
|
+
bool cacheConnection,
|
|
694
|
+
EndpointSelectionType endpointSelection,
|
|
695
|
+
chrono::milliseconds locatorCacheTimeout,
|
|
696
|
+
chrono::milliseconds invocationTimeout,
|
|
697
|
+
Ice::Context ctx)
|
|
698
|
+
: Reference(
|
|
699
|
+
std::move(instance),
|
|
700
|
+
std::move(communicator),
|
|
701
|
+
std::move(id),
|
|
702
|
+
std::move(facet),
|
|
703
|
+
mode,
|
|
704
|
+
compress,
|
|
705
|
+
protocol,
|
|
706
|
+
encoding,
|
|
707
|
+
invocationTimeout,
|
|
708
|
+
std::move(ctx)),
|
|
709
|
+
_endpoints(std::move(endpoints)),
|
|
710
|
+
_adapterId(std::move(adapterId)),
|
|
711
|
+
_locatorInfo(std::move(locatorInfo)),
|
|
712
|
+
_routerInfo(std::move(routerInfo)),
|
|
713
|
+
_collocationOptimized(collocationOptimized),
|
|
714
|
+
_cacheConnection(cacheConnection),
|
|
715
|
+
_endpointSelection(endpointSelection),
|
|
716
|
+
_locatorCacheTimeout(locatorCacheTimeout)
|
|
921
717
|
{
|
|
922
718
|
assert(_adapterId.empty() || _endpoints.empty());
|
|
719
|
+
setBatchRequestQueue();
|
|
923
720
|
}
|
|
924
721
|
|
|
925
722
|
vector<EndpointIPtr>
|
|
@@ -935,43 +732,37 @@ IceInternal::RoutableReference::getAdapterId() const
|
|
|
935
732
|
}
|
|
936
733
|
|
|
937
734
|
LocatorInfoPtr
|
|
938
|
-
IceInternal::RoutableReference::getLocatorInfo() const
|
|
735
|
+
IceInternal::RoutableReference::getLocatorInfo() const noexcept
|
|
939
736
|
{
|
|
940
737
|
return _locatorInfo;
|
|
941
738
|
}
|
|
942
739
|
|
|
943
740
|
RouterInfoPtr
|
|
944
|
-
IceInternal::RoutableReference::getRouterInfo() const
|
|
741
|
+
IceInternal::RoutableReference::getRouterInfo() const noexcept
|
|
945
742
|
{
|
|
946
743
|
return _routerInfo;
|
|
947
744
|
}
|
|
948
745
|
|
|
949
746
|
bool
|
|
950
|
-
IceInternal::RoutableReference::getCollocationOptimized() const
|
|
747
|
+
IceInternal::RoutableReference::getCollocationOptimized() const noexcept
|
|
951
748
|
{
|
|
952
749
|
return _collocationOptimized;
|
|
953
750
|
}
|
|
954
751
|
|
|
955
752
|
bool
|
|
956
|
-
IceInternal::RoutableReference::getCacheConnection() const
|
|
753
|
+
IceInternal::RoutableReference::getCacheConnection() const noexcept
|
|
957
754
|
{
|
|
958
755
|
return _cacheConnection;
|
|
959
756
|
}
|
|
960
757
|
|
|
961
|
-
bool
|
|
962
|
-
IceInternal::RoutableReference::getPreferSecure() const
|
|
963
|
-
{
|
|
964
|
-
return _preferSecure;
|
|
965
|
-
}
|
|
966
|
-
|
|
967
758
|
Ice::EndpointSelectionType
|
|
968
|
-
IceInternal::RoutableReference::getEndpointSelection() const
|
|
759
|
+
IceInternal::RoutableReference::getEndpointSelection() const noexcept
|
|
969
760
|
{
|
|
970
761
|
return _endpointSelection;
|
|
971
762
|
}
|
|
972
763
|
|
|
973
|
-
|
|
974
|
-
IceInternal::RoutableReference::getLocatorCacheTimeout() const
|
|
764
|
+
chrono::milliseconds
|
|
765
|
+
IceInternal::RoutableReference::getLocatorCacheTimeout() const noexcept
|
|
975
766
|
{
|
|
976
767
|
return _locatorCacheTimeout;
|
|
977
768
|
}
|
|
@@ -982,20 +773,22 @@ IceInternal::RoutableReference::getConnectionId() const
|
|
|
982
773
|
return _connectionId;
|
|
983
774
|
}
|
|
984
775
|
|
|
985
|
-
|
|
986
|
-
IceInternal::RoutableReference::
|
|
776
|
+
ReferencePtr
|
|
777
|
+
IceInternal::RoutableReference::changeMode(Mode newMode) const
|
|
987
778
|
{
|
|
988
|
-
|
|
779
|
+
ReferencePtr r = Reference::changeMode(newMode);
|
|
780
|
+
static_pointer_cast<RoutableReference>(r)->setBatchRequestQueue();
|
|
781
|
+
return r;
|
|
989
782
|
}
|
|
990
783
|
|
|
991
784
|
ReferencePtr
|
|
992
|
-
IceInternal::RoutableReference::changeEncoding(
|
|
785
|
+
IceInternal::RoutableReference::changeEncoding(Ice::EncodingVersion encoding) const
|
|
993
786
|
{
|
|
994
787
|
ReferencePtr r = Reference::changeEncoding(encoding);
|
|
995
|
-
if(r.get() != const_cast<RoutableReference*>(this))
|
|
788
|
+
if (r.get() != const_cast<RoutableReference*>(this))
|
|
996
789
|
{
|
|
997
|
-
LocatorInfoPtr& locInfo =
|
|
998
|
-
if(locInfo && locInfo->getLocator()->ice_getEncodingVersion() != encoding)
|
|
790
|
+
LocatorInfoPtr& locInfo = dynamic_pointer_cast<RoutableReference>(r)->_locatorInfo;
|
|
791
|
+
if (locInfo && locInfo->getLocator()->ice_getEncodingVersion() != encoding)
|
|
999
792
|
{
|
|
1000
793
|
locInfo = getInstance()->locatorManager()->get(locInfo->getLocator()->ice_encodingVersion(encoding));
|
|
1001
794
|
}
|
|
@@ -1008,79 +801,60 @@ IceInternal::RoutableReference::changeCompress(bool newCompress) const
|
|
|
1008
801
|
{
|
|
1009
802
|
ReferencePtr r = Reference::changeCompress(newCompress);
|
|
1010
803
|
// Also override the compress flag on the endpoints if it was updated.
|
|
1011
|
-
if(r.get() != const_cast<RoutableReference*>(this) && !_endpoints.empty())
|
|
804
|
+
if (r.get() != const_cast<RoutableReference*>(this) && !_endpoints.empty())
|
|
1012
805
|
{
|
|
1013
806
|
vector<EndpointIPtr> newEndpoints;
|
|
1014
|
-
|
|
807
|
+
newEndpoints.reserve(_endpoints.size());
|
|
808
|
+
for (const auto& endpoint : _endpoints)
|
|
1015
809
|
{
|
|
1016
|
-
newEndpoints.push_back(
|
|
810
|
+
newEndpoints.push_back(endpoint->compress(newCompress));
|
|
1017
811
|
}
|
|
1018
|
-
|
|
812
|
+
dynamic_pointer_cast<RoutableReference>(r)->_endpoints = newEndpoints;
|
|
1019
813
|
}
|
|
1020
814
|
return r;
|
|
1021
815
|
}
|
|
1022
816
|
|
|
1023
817
|
ReferencePtr
|
|
1024
|
-
IceInternal::RoutableReference::changeEndpoints(
|
|
818
|
+
IceInternal::RoutableReference::changeEndpoints(vector<EndpointIPtr> newEndpoints) const
|
|
1025
819
|
{
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1029
|
-
}
|
|
1030
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1031
|
-
r->_endpoints = newEndpoints;
|
|
820
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
821
|
+
r->_endpoints = std::move(newEndpoints);
|
|
1032
822
|
r->applyOverrides(r->_endpoints);
|
|
1033
823
|
r->_adapterId.clear();
|
|
1034
824
|
return r;
|
|
1035
825
|
}
|
|
1036
826
|
|
|
1037
827
|
ReferencePtr
|
|
1038
|
-
IceInternal::RoutableReference::changeAdapterId(
|
|
828
|
+
IceInternal::RoutableReference::changeAdapterId(string newAdapterId) const
|
|
1039
829
|
{
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1043
|
-
}
|
|
1044
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1045
|
-
r->_adapterId = newAdapterId;
|
|
830
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
831
|
+
r->_adapterId = std::move(newAdapterId);
|
|
1046
832
|
r->_endpoints.clear();
|
|
1047
833
|
return r;
|
|
1048
834
|
}
|
|
1049
835
|
|
|
1050
836
|
ReferencePtr
|
|
1051
|
-
IceInternal::RoutableReference::changeLocator(
|
|
837
|
+
IceInternal::RoutableReference::changeLocator(optional<LocatorPrx> newLocator) const
|
|
1052
838
|
{
|
|
1053
|
-
LocatorInfoPtr newLocatorInfo = getInstance()->locatorManager()->get(newLocator);
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1057
|
-
}
|
|
1058
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1059
|
-
r->_locatorInfo = newLocatorInfo;
|
|
839
|
+
LocatorInfoPtr newLocatorInfo = newLocator ? getInstance()->locatorManager()->get(newLocator.value()) : nullptr;
|
|
840
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
841
|
+
r->_locatorInfo = std::move(newLocatorInfo);
|
|
1060
842
|
return r;
|
|
1061
843
|
}
|
|
1062
844
|
|
|
1063
845
|
ReferencePtr
|
|
1064
|
-
IceInternal::RoutableReference::changeRouter(
|
|
846
|
+
IceInternal::RoutableReference::changeRouter(optional<RouterPrx> newRouter) const
|
|
1065
847
|
{
|
|
1066
|
-
RouterInfoPtr newRouterInfo = getInstance()->routerManager()->get(newRouter);
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1070
|
-
}
|
|
1071
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1072
|
-
r->_routerInfo = newRouterInfo;
|
|
848
|
+
RouterInfoPtr newRouterInfo = newRouter ? getInstance()->routerManager()->get(newRouter.value()) : nullptr;
|
|
849
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
850
|
+
r->_routerInfo = std::move(newRouterInfo);
|
|
1073
851
|
return r;
|
|
1074
852
|
}
|
|
1075
853
|
|
|
1076
854
|
ReferencePtr
|
|
1077
855
|
IceInternal::RoutableReference::changeCollocationOptimized(bool newCollocationOptimized) const
|
|
1078
856
|
{
|
|
1079
|
-
|
|
1080
|
-
{
|
|
1081
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1082
|
-
}
|
|
1083
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
857
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
1084
858
|
r->_collocationOptimized = newCollocationOptimized;
|
|
1085
859
|
return r;
|
|
1086
860
|
}
|
|
@@ -1088,88 +862,39 @@ IceInternal::RoutableReference::changeCollocationOptimized(bool newCollocationOp
|
|
|
1088
862
|
ReferencePtr
|
|
1089
863
|
IceInternal::RoutableReference::changeCacheConnection(bool newCache) const
|
|
1090
864
|
{
|
|
1091
|
-
|
|
1092
|
-
{
|
|
1093
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1094
|
-
}
|
|
1095
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
865
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
1096
866
|
r->_cacheConnection = newCache;
|
|
1097
867
|
return r;
|
|
1098
868
|
}
|
|
1099
869
|
|
|
1100
|
-
ReferencePtr
|
|
1101
|
-
IceInternal::RoutableReference::changePreferSecure(bool newPreferSecure) const
|
|
1102
|
-
{
|
|
1103
|
-
if(newPreferSecure == _preferSecure)
|
|
1104
|
-
{
|
|
1105
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1106
|
-
}
|
|
1107
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1108
|
-
r->_preferSecure = newPreferSecure;
|
|
1109
|
-
return r;
|
|
1110
|
-
}
|
|
1111
|
-
|
|
1112
870
|
ReferencePtr
|
|
1113
871
|
IceInternal::RoutableReference::changeEndpointSelection(EndpointSelectionType newType) const
|
|
1114
872
|
{
|
|
1115
|
-
|
|
1116
|
-
{
|
|
1117
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1118
|
-
}
|
|
1119
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
873
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
1120
874
|
r->_endpointSelection = newType;
|
|
1121
875
|
return r;
|
|
1122
876
|
}
|
|
1123
877
|
|
|
1124
878
|
ReferencePtr
|
|
1125
|
-
IceInternal::RoutableReference::changeLocatorCacheTimeout(
|
|
879
|
+
IceInternal::RoutableReference::changeLocatorCacheTimeout(chrono::milliseconds timeout) const
|
|
1126
880
|
{
|
|
1127
|
-
|
|
1128
|
-
{
|
|
1129
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1130
|
-
}
|
|
1131
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
881
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
1132
882
|
r->_locatorCacheTimeout = timeout;
|
|
1133
883
|
return r;
|
|
1134
884
|
}
|
|
1135
885
|
|
|
1136
886
|
ReferencePtr
|
|
1137
|
-
IceInternal::RoutableReference::
|
|
1138
|
-
{
|
|
1139
|
-
if(_overrideTimeout && newTimeout == _timeout)
|
|
1140
|
-
{
|
|
1141
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1142
|
-
}
|
|
1143
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
1144
|
-
r->_timeout = newTimeout;
|
|
1145
|
-
r->_overrideTimeout = true;
|
|
1146
|
-
if(!_endpoints.empty()) // Also override the timeout on the endpoints.
|
|
1147
|
-
{
|
|
1148
|
-
vector<EndpointIPtr> newEndpoints;
|
|
1149
|
-
for(vector<EndpointIPtr>::const_iterator p = _endpoints.begin(); p != _endpoints.end(); ++p)
|
|
1150
|
-
{
|
|
1151
|
-
newEndpoints.push_back((*p)->timeout(newTimeout));
|
|
1152
|
-
}
|
|
1153
|
-
r->_endpoints = newEndpoints;
|
|
1154
|
-
}
|
|
1155
|
-
return r;
|
|
1156
|
-
}
|
|
1157
|
-
|
|
1158
|
-
ReferencePtr
|
|
1159
|
-
IceInternal::RoutableReference::changeConnectionId(const string& id) const
|
|
887
|
+
IceInternal::RoutableReference::changeConnectionId(string id) const
|
|
1160
888
|
{
|
|
1161
|
-
|
|
1162
|
-
{
|
|
1163
|
-
return RoutableReferencePtr(const_cast<RoutableReference*>(this));
|
|
1164
|
-
}
|
|
1165
|
-
RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
|
|
889
|
+
RoutableReferencePtr r = dynamic_pointer_cast<RoutableReference>(clone());
|
|
1166
890
|
r->_connectionId = id;
|
|
1167
|
-
if(!_endpoints.empty()) // Also override the connection id on the endpoints.
|
|
891
|
+
if (!_endpoints.empty()) // Also override the connection id on the endpoints.
|
|
1168
892
|
{
|
|
1169
893
|
vector<EndpointIPtr> newEndpoints;
|
|
1170
|
-
|
|
894
|
+
newEndpoints.reserve(_endpoints.size());
|
|
895
|
+
for (const auto& endpoint : _endpoints)
|
|
1171
896
|
{
|
|
1172
|
-
newEndpoints.push_back(
|
|
897
|
+
newEndpoints.push_back(endpoint->connectionId(id));
|
|
1173
898
|
}
|
|
1174
899
|
r->_endpoints = newEndpoints;
|
|
1175
900
|
}
|
|
@@ -1177,30 +902,30 @@ IceInternal::RoutableReference::changeConnectionId(const string& id) const
|
|
|
1177
902
|
}
|
|
1178
903
|
|
|
1179
904
|
ReferencePtr
|
|
1180
|
-
IceInternal::RoutableReference::changeConnection(
|
|
1181
|
-
{
|
|
1182
|
-
return
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
905
|
+
IceInternal::RoutableReference::changeConnection(Ice::ConnectionIPtr connection) const
|
|
906
|
+
{
|
|
907
|
+
return make_shared<FixedReference>(
|
|
908
|
+
getInstance(),
|
|
909
|
+
getCommunicator(),
|
|
910
|
+
getIdentity(),
|
|
911
|
+
getFacet(),
|
|
912
|
+
getMode(),
|
|
913
|
+
getCompress(),
|
|
914
|
+
getProtocol(),
|
|
915
|
+
getEncoding(),
|
|
916
|
+
std::move(connection),
|
|
917
|
+
getInvocationTimeout(),
|
|
918
|
+
getContext()->getValue());
|
|
1194
919
|
}
|
|
1195
920
|
|
|
1196
921
|
bool
|
|
1197
|
-
IceInternal::RoutableReference::isIndirect() const
|
|
922
|
+
IceInternal::RoutableReference::isIndirect() const noexcept
|
|
1198
923
|
{
|
|
1199
924
|
return _endpoints.empty();
|
|
1200
925
|
}
|
|
1201
926
|
|
|
1202
927
|
bool
|
|
1203
|
-
IceInternal::RoutableReference::isWellKnown() const
|
|
928
|
+
IceInternal::RoutableReference::isWellKnown() const noexcept
|
|
1204
929
|
{
|
|
1205
930
|
return _endpoints.empty() && _adapterId.empty();
|
|
1206
931
|
}
|
|
@@ -1210,15 +935,15 @@ IceInternal::RoutableReference::streamWrite(OutputStream* s) const
|
|
|
1210
935
|
{
|
|
1211
936
|
Reference::streamWrite(s);
|
|
1212
937
|
|
|
1213
|
-
|
|
938
|
+
auto sz = static_cast<int32_t>(_endpoints.size());
|
|
1214
939
|
s->writeSize(sz);
|
|
1215
|
-
if(sz)
|
|
940
|
+
if (sz)
|
|
1216
941
|
{
|
|
1217
942
|
assert(_adapterId.empty());
|
|
1218
|
-
for(
|
|
943
|
+
for (const auto& endpoint : _endpoints)
|
|
1219
944
|
{
|
|
1220
|
-
s->write(
|
|
1221
|
-
|
|
945
|
+
s->write(endpoint->type());
|
|
946
|
+
endpoint->streamWrite(s);
|
|
1222
947
|
}
|
|
1223
948
|
}
|
|
1224
949
|
else
|
|
@@ -1239,19 +964,19 @@ IceInternal::RoutableReference::toString() const
|
|
|
1239
964
|
//
|
|
1240
965
|
string result = Reference::toString();
|
|
1241
966
|
|
|
1242
|
-
if(!_endpoints.empty())
|
|
967
|
+
if (!_endpoints.empty())
|
|
1243
968
|
{
|
|
1244
|
-
for(
|
|
969
|
+
for (const auto& endpoint : _endpoints)
|
|
1245
970
|
{
|
|
1246
|
-
string endp =
|
|
1247
|
-
if(!endp.empty())
|
|
971
|
+
string endp = endpoint->toString();
|
|
972
|
+
if (!endp.empty())
|
|
1248
973
|
{
|
|
1249
974
|
result.append(":");
|
|
1250
975
|
result.append(endp);
|
|
1251
976
|
}
|
|
1252
977
|
}
|
|
1253
978
|
}
|
|
1254
|
-
else if(!_adapterId.empty())
|
|
979
|
+
else if (!_adapterId.empty())
|
|
1255
980
|
{
|
|
1256
981
|
result.append(" @ ");
|
|
1257
982
|
|
|
@@ -1261,7 +986,7 @@ IceInternal::RoutableReference::toString() const
|
|
|
1261
986
|
// adapter id string in quotes.
|
|
1262
987
|
//
|
|
1263
988
|
string a = escapeString(_adapterId, "", getInstance()->toStringMode());
|
|
1264
|
-
if(a.find_first_of(" :@") != string::npos)
|
|
989
|
+
if (a.find_first_of(" :@") != string::npos)
|
|
1265
990
|
{
|
|
1266
991
|
result.append("\"");
|
|
1267
992
|
result.append(a);
|
|
@@ -1280,120 +1005,106 @@ IceInternal::RoutableReference::toString() const
|
|
|
1280
1005
|
}
|
|
1281
1006
|
|
|
1282
1007
|
PropertyDict
|
|
1283
|
-
IceInternal::RoutableReference::toProperty(
|
|
1008
|
+
IceInternal::RoutableReference::toProperty(string prefix) const
|
|
1284
1009
|
{
|
|
1285
1010
|
Ice::PropertyDict properties;
|
|
1286
1011
|
|
|
1287
|
-
properties[prefix] = toString();
|
|
1288
1012
|
properties[prefix + ".CollocationOptimized"] = _collocationOptimized ? "1" : "0";
|
|
1289
1013
|
properties[prefix + ".ConnectionCached"] = _cacheConnection ? "1" : "0";
|
|
1290
|
-
properties[prefix + ".
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
{
|
|
1298
|
-
ostringstream s;
|
|
1299
|
-
s << getInvocationTimeout();
|
|
1300
|
-
properties[prefix + ".InvocationTimeout"] = s.str();
|
|
1301
|
-
}
|
|
1302
|
-
if(_routerInfo)
|
|
1014
|
+
properties[prefix + ".EndpointSelection"] =
|
|
1015
|
+
_endpointSelection == EndpointSelectionType::Random ? "Random" : "Ordered";
|
|
1016
|
+
properties[prefix + ".LocatorCacheTimeout"] =
|
|
1017
|
+
to_string(chrono::duration_cast<chrono::seconds>(_locatorCacheTimeout).count());
|
|
1018
|
+
properties[prefix + ".InvocationTimeout"] = to_string(getInvocationTimeout().count());
|
|
1019
|
+
|
|
1020
|
+
if (_routerInfo)
|
|
1303
1021
|
{
|
|
1304
1022
|
PropertyDict routerProperties = _routerInfo->getRouter()->_getReference()->toProperty(prefix + ".Router");
|
|
1305
|
-
for(
|
|
1023
|
+
for (const auto& routerProp : routerProperties)
|
|
1306
1024
|
{
|
|
1307
|
-
properties[
|
|
1025
|
+
properties[routerProp.first] = routerProp.second;
|
|
1308
1026
|
}
|
|
1309
1027
|
}
|
|
1310
1028
|
|
|
1311
|
-
if(_locatorInfo)
|
|
1029
|
+
if (_locatorInfo)
|
|
1312
1030
|
{
|
|
1313
1031
|
PropertyDict locatorProperties = _locatorInfo->getLocator()->_getReference()->toProperty(prefix + ".Locator");
|
|
1314
|
-
for(
|
|
1032
|
+
for (const auto& locatorProp : locatorProperties)
|
|
1315
1033
|
{
|
|
1316
|
-
properties[
|
|
1034
|
+
properties[locatorProp.first] = locatorProp.second;
|
|
1317
1035
|
}
|
|
1318
1036
|
}
|
|
1319
1037
|
|
|
1038
|
+
properties.emplace(std::move(prefix), toString());
|
|
1039
|
+
|
|
1320
1040
|
return properties;
|
|
1321
1041
|
}
|
|
1322
1042
|
|
|
1323
|
-
|
|
1324
|
-
IceInternal::RoutableReference::
|
|
1043
|
+
size_t
|
|
1044
|
+
IceInternal::RoutableReference::hash() const noexcept
|
|
1325
1045
|
{
|
|
1326
|
-
|
|
1327
|
-
hashAdd(
|
|
1328
|
-
|
|
1046
|
+
size_t h = Reference::hash();
|
|
1047
|
+
hashAdd(h, _adapterId);
|
|
1048
|
+
hashAdd(h, _endpoints);
|
|
1049
|
+
return h;
|
|
1329
1050
|
}
|
|
1330
1051
|
|
|
1331
1052
|
bool
|
|
1332
|
-
IceInternal::RoutableReference::operator==(const Reference& r) const
|
|
1053
|
+
IceInternal::RoutableReference::operator==(const Reference& r) const noexcept
|
|
1333
1054
|
{
|
|
1334
1055
|
//
|
|
1335
1056
|
// Note: if(this == &r) test is performed by each non-abstract derived class.
|
|
1336
1057
|
//
|
|
1337
|
-
if(this == &r)
|
|
1058
|
+
if (this == &r)
|
|
1338
1059
|
{
|
|
1339
1060
|
return true;
|
|
1340
1061
|
}
|
|
1341
1062
|
|
|
1342
|
-
const
|
|
1343
|
-
if(!rhs || !Reference::operator==(r))
|
|
1344
|
-
{
|
|
1345
|
-
return false;
|
|
1346
|
-
}
|
|
1347
|
-
if(_preferSecure != rhs->_preferSecure)
|
|
1348
|
-
{
|
|
1349
|
-
return false;
|
|
1350
|
-
}
|
|
1351
|
-
if(_collocationOptimized != rhs->_collocationOptimized)
|
|
1063
|
+
const auto* rhs = dynamic_cast<const RoutableReference*>(&r);
|
|
1064
|
+
if (!rhs || !Reference::operator==(r))
|
|
1352
1065
|
{
|
|
1353
1066
|
return false;
|
|
1354
1067
|
}
|
|
1355
|
-
if(
|
|
1068
|
+
if (_collocationOptimized != rhs->_collocationOptimized)
|
|
1356
1069
|
{
|
|
1357
1070
|
return false;
|
|
1358
1071
|
}
|
|
1359
|
-
if(
|
|
1072
|
+
if (_cacheConnection != rhs->_cacheConnection)
|
|
1360
1073
|
{
|
|
1361
1074
|
return false;
|
|
1362
1075
|
}
|
|
1363
|
-
if(
|
|
1076
|
+
if (_endpointSelection != rhs->_endpointSelection)
|
|
1364
1077
|
{
|
|
1365
1078
|
return false;
|
|
1366
1079
|
}
|
|
1367
|
-
if
|
|
1080
|
+
if (_connectionId != rhs->_connectionId)
|
|
1368
1081
|
{
|
|
1369
1082
|
return false;
|
|
1370
1083
|
}
|
|
1371
|
-
if(_routerInfo
|
|
1084
|
+
if (!Ice::targetEqualTo(_routerInfo, rhs->_routerInfo))
|
|
1372
1085
|
{
|
|
1373
1086
|
return false;
|
|
1374
1087
|
}
|
|
1375
|
-
if(_locatorInfo
|
|
1088
|
+
if (!Ice::targetEqualTo(_locatorInfo, rhs->_locatorInfo))
|
|
1376
1089
|
{
|
|
1377
1090
|
return false;
|
|
1378
1091
|
}
|
|
1379
|
-
|
|
1380
|
-
//
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
if(_endpoints != rhs->_endpoints)
|
|
1388
|
-
#endif
|
|
1092
|
+
|
|
1093
|
+
// Check if the two endpoint lists are equal.
|
|
1094
|
+
if (!equal(
|
|
1095
|
+
_endpoints.begin(),
|
|
1096
|
+
_endpoints.end(),
|
|
1097
|
+
rhs->_endpoints.begin(),
|
|
1098
|
+
rhs->_endpoints.end(),
|
|
1099
|
+
Ice::TargetCompare<shared_ptr<EndpointI>, std::equal_to>()))
|
|
1389
1100
|
{
|
|
1390
1101
|
return false;
|
|
1391
1102
|
}
|
|
1392
|
-
if(_adapterId != rhs->_adapterId)
|
|
1103
|
+
if (_adapterId != rhs->_adapterId)
|
|
1393
1104
|
{
|
|
1394
1105
|
return false;
|
|
1395
1106
|
}
|
|
1396
|
-
if(_locatorCacheTimeout != rhs->_locatorCacheTimeout)
|
|
1107
|
+
if (_locatorCacheTimeout != rhs->_locatorCacheTimeout)
|
|
1397
1108
|
{
|
|
1398
1109
|
return false;
|
|
1399
1110
|
}
|
|
@@ -1401,130 +1112,103 @@ IceInternal::RoutableReference::operator==(const Reference& r) const
|
|
|
1401
1112
|
}
|
|
1402
1113
|
|
|
1403
1114
|
bool
|
|
1404
|
-
IceInternal::RoutableReference::operator<(const Reference& r) const
|
|
1115
|
+
IceInternal::RoutableReference::operator<(const Reference& r) const noexcept
|
|
1405
1116
|
{
|
|
1406
|
-
if(this == &r)
|
|
1117
|
+
if (this == &r)
|
|
1407
1118
|
{
|
|
1408
1119
|
return false;
|
|
1409
1120
|
}
|
|
1410
1121
|
|
|
1411
|
-
if(Reference::operator<(r))
|
|
1122
|
+
if (Reference::operator<(r))
|
|
1412
1123
|
{
|
|
1413
1124
|
return true;
|
|
1414
1125
|
}
|
|
1415
|
-
else if(!Reference::operator==(r))
|
|
1126
|
+
else if (!Reference::operator==(r))
|
|
1416
1127
|
{
|
|
1417
1128
|
return false;
|
|
1418
1129
|
}
|
|
1419
1130
|
|
|
1420
|
-
const
|
|
1421
|
-
if(!rhs)
|
|
1131
|
+
const auto* rhs = dynamic_cast<const RoutableReference*>(&r);
|
|
1132
|
+
if (!rhs)
|
|
1422
1133
|
{
|
|
1423
1134
|
assert(dynamic_cast<const FixedReference*>(&r));
|
|
1424
1135
|
return true; // As a rule, routable references are superior to fixed references.
|
|
1425
1136
|
}
|
|
1426
1137
|
|
|
1427
|
-
if(!
|
|
1428
|
-
{
|
|
1429
|
-
return true;
|
|
1430
|
-
}
|
|
1431
|
-
else if(rhs->_preferSecure < _preferSecure)
|
|
1432
|
-
{
|
|
1433
|
-
return false;
|
|
1434
|
-
}
|
|
1435
|
-
if(!_collocationOptimized && rhs->_collocationOptimized)
|
|
1436
|
-
{
|
|
1437
|
-
return true;
|
|
1438
|
-
}
|
|
1439
|
-
else if(rhs->_collocationOptimized < _collocationOptimized)
|
|
1440
|
-
{
|
|
1441
|
-
return false;
|
|
1442
|
-
}
|
|
1443
|
-
if(!_cacheConnection && rhs->_cacheConnection)
|
|
1138
|
+
if (!_collocationOptimized && rhs->_collocationOptimized)
|
|
1444
1139
|
{
|
|
1445
1140
|
return true;
|
|
1446
1141
|
}
|
|
1447
|
-
else if(rhs->
|
|
1142
|
+
else if (rhs->_collocationOptimized < _collocationOptimized)
|
|
1448
1143
|
{
|
|
1449
1144
|
return false;
|
|
1450
1145
|
}
|
|
1451
|
-
if(
|
|
1146
|
+
if (!_cacheConnection && rhs->_cacheConnection)
|
|
1452
1147
|
{
|
|
1453
1148
|
return true;
|
|
1454
1149
|
}
|
|
1455
|
-
else if(rhs->
|
|
1150
|
+
else if (rhs->_cacheConnection < _cacheConnection)
|
|
1456
1151
|
{
|
|
1457
1152
|
return false;
|
|
1458
1153
|
}
|
|
1459
|
-
if(
|
|
1154
|
+
if (_endpointSelection < rhs->_endpointSelection)
|
|
1460
1155
|
{
|
|
1461
1156
|
return true;
|
|
1462
1157
|
}
|
|
1463
|
-
else if(rhs->
|
|
1158
|
+
else if (rhs->_endpointSelection < _endpointSelection)
|
|
1464
1159
|
{
|
|
1465
1160
|
return false;
|
|
1466
1161
|
}
|
|
1467
|
-
if(
|
|
1162
|
+
if (_connectionId < rhs->_connectionId)
|
|
1468
1163
|
{
|
|
1469
1164
|
return true;
|
|
1470
1165
|
}
|
|
1471
|
-
else if(rhs->
|
|
1166
|
+
else if (rhs->_connectionId < _connectionId)
|
|
1472
1167
|
{
|
|
1473
1168
|
return false;
|
|
1474
1169
|
}
|
|
1475
|
-
|
|
1476
|
-
{
|
|
1477
|
-
if(_timeout < rhs->_timeout)
|
|
1478
|
-
{
|
|
1479
|
-
return true;
|
|
1480
|
-
}
|
|
1481
|
-
else if(rhs->_timeout < _timeout)
|
|
1482
|
-
{
|
|
1483
|
-
return false;
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
if(_routerInfo < rhs->_routerInfo)
|
|
1170
|
+
if (Ice::targetLess(_routerInfo, rhs->_routerInfo))
|
|
1487
1171
|
{
|
|
1488
1172
|
return true;
|
|
1489
1173
|
}
|
|
1490
|
-
else if(rhs->_routerInfo
|
|
1174
|
+
else if (Ice::targetLess(rhs->_routerInfo, _routerInfo))
|
|
1491
1175
|
{
|
|
1492
1176
|
return false;
|
|
1493
1177
|
}
|
|
1494
|
-
if(_locatorInfo
|
|
1178
|
+
if (Ice::targetLess(_locatorInfo, rhs->_locatorInfo))
|
|
1495
1179
|
{
|
|
1496
1180
|
return true;
|
|
1497
1181
|
}
|
|
1498
|
-
else if(rhs->_locatorInfo
|
|
1182
|
+
else if (Ice::targetLess(rhs->_locatorInfo, _locatorInfo))
|
|
1499
1183
|
{
|
|
1500
1184
|
return false;
|
|
1501
1185
|
}
|
|
1502
|
-
if(_adapterId < rhs->_adapterId)
|
|
1186
|
+
if (_adapterId < rhs->_adapterId)
|
|
1503
1187
|
{
|
|
1504
1188
|
return true;
|
|
1505
1189
|
}
|
|
1506
|
-
else if(rhs->_adapterId < _adapterId)
|
|
1190
|
+
else if (rhs->_adapterId < _adapterId)
|
|
1507
1191
|
{
|
|
1508
1192
|
return false;
|
|
1509
1193
|
}
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1194
|
+
if (lexicographical_compare(
|
|
1195
|
+
_endpoints.begin(),
|
|
1196
|
+
_endpoints.end(),
|
|
1197
|
+
rhs->_endpoints.begin(),
|
|
1198
|
+
rhs->_endpoints.end(),
|
|
1199
|
+
Ice::TargetCompare<shared_ptr<EndpointI>, std::less>()))
|
|
1516
1200
|
{
|
|
1517
1201
|
return true;
|
|
1518
1202
|
}
|
|
1519
|
-
else if(rhs->_endpoints < _endpoints)
|
|
1203
|
+
else if (rhs->_endpoints < _endpoints)
|
|
1520
1204
|
{
|
|
1521
1205
|
return false;
|
|
1522
1206
|
}
|
|
1523
|
-
if(_locatorCacheTimeout < rhs->_locatorCacheTimeout)
|
|
1207
|
+
if (_locatorCacheTimeout < rhs->_locatorCacheTimeout)
|
|
1524
1208
|
{
|
|
1525
1209
|
return true;
|
|
1526
1210
|
}
|
|
1527
|
-
else if(rhs->_locatorCacheTimeout < _locatorCacheTimeout)
|
|
1211
|
+
else if (rhs->_locatorCacheTimeout < _locatorCacheTimeout)
|
|
1528
1212
|
{
|
|
1529
1213
|
return false;
|
|
1530
1214
|
}
|
|
@@ -1534,368 +1218,299 @@ IceInternal::RoutableReference::operator<(const Reference& r) const
|
|
|
1534
1218
|
ReferencePtr
|
|
1535
1219
|
IceInternal::RoutableReference::clone() const
|
|
1536
1220
|
{
|
|
1537
|
-
return
|
|
1221
|
+
return make_shared<RoutableReference>(*this);
|
|
1538
1222
|
}
|
|
1539
1223
|
|
|
1540
1224
|
RequestHandlerPtr
|
|
1541
|
-
IceInternal::RoutableReference::getRequestHandler(
|
|
1225
|
+
IceInternal::RoutableReference::getRequestHandler() const
|
|
1542
1226
|
{
|
|
1543
|
-
|
|
1227
|
+
auto self = const_cast<RoutableReference*>(this)->shared_from_this();
|
|
1228
|
+
|
|
1229
|
+
if (_collocationOptimized)
|
|
1230
|
+
{
|
|
1231
|
+
Ice::ObjectAdapterPtr adapter = _instance->objectAdapterFactory()->findObjectAdapter(self);
|
|
1232
|
+
if (adapter)
|
|
1233
|
+
{
|
|
1234
|
+
return make_shared<CollocatedRequestHandler>(self, adapter);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
ConnectRequestHandlerPtr handler = make_shared<ConnectRequestHandler>(self);
|
|
1239
|
+
getConnectionAsync(
|
|
1240
|
+
[handler](Ice::ConnectionIPtr connection, bool compress)
|
|
1241
|
+
{ handler->setConnection(std::move(connection), compress); },
|
|
1242
|
+
[handler](exception_ptr ex) { handler->setException(ex); });
|
|
1243
|
+
|
|
1244
|
+
return handler; // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks)
|
|
1245
|
+
// Looks like a clang-tidy bug. See https://github.com/llvm/llvm-project/issues/55219
|
|
1544
1246
|
}
|
|
1545
1247
|
|
|
1546
|
-
BatchRequestQueuePtr
|
|
1547
|
-
IceInternal::RoutableReference::getBatchRequestQueue() const
|
|
1248
|
+
const BatchRequestQueuePtr&
|
|
1249
|
+
IceInternal::RoutableReference::getBatchRequestQueue() const noexcept
|
|
1548
1250
|
{
|
|
1549
|
-
return
|
|
1251
|
+
return _batchRequestQueue;
|
|
1550
1252
|
}
|
|
1551
1253
|
|
|
1552
1254
|
void
|
|
1553
|
-
IceInternal::RoutableReference::
|
|
1255
|
+
IceInternal::RoutableReference::getConnectionAsync(
|
|
1256
|
+
function<void(ConnectionIPtr, bool)> response,
|
|
1257
|
+
function<void(std::exception_ptr)> exception) const
|
|
1554
1258
|
{
|
|
1555
|
-
|
|
1259
|
+
if (_routerInfo)
|
|
1556
1260
|
{
|
|
1557
|
-
|
|
1261
|
+
// If we route, we send everything to the router's client proxy endpoints.
|
|
1262
|
+
auto self = dynamic_pointer_cast<RoutableReference>(const_cast<RoutableReference*>(this)->shared_from_this());
|
|
1558
1263
|
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
{
|
|
1562
|
-
vector<EndpointIPtr> endpts = endpoints;
|
|
1563
|
-
if(!endpts.empty())
|
|
1264
|
+
_routerInfo->getClientEndpointsAsync(
|
|
1265
|
+
[self = std::move(self), response = std::move(response), exception](vector<EndpointIPtr> endpoints) mutable
|
|
1564
1266
|
{
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
Callback(const RoutableReferencePtr& reference, const GetConnectionCallbackPtr& callback) :
|
|
1580
|
-
_reference(reference), _callback(callback)
|
|
1581
|
-
{
|
|
1582
|
-
}
|
|
1583
|
-
|
|
1584
|
-
private:
|
|
1585
|
-
|
|
1586
|
-
const RoutableReferencePtr _reference;
|
|
1587
|
-
const GetConnectionCallbackPtr _callback;
|
|
1588
|
-
};
|
|
1589
|
-
|
|
1590
|
-
if(_routerInfo)
|
|
1267
|
+
if (endpoints.empty())
|
|
1268
|
+
{
|
|
1269
|
+
self->getConnectionNoRouterInfoAsync(std::move(response), std::move(exception));
|
|
1270
|
+
}
|
|
1271
|
+
else
|
|
1272
|
+
{
|
|
1273
|
+
self->applyOverrides(endpoints);
|
|
1274
|
+
self->createConnectionAsync(endpoints, std::move(response), std::move(exception));
|
|
1275
|
+
}
|
|
1276
|
+
},
|
|
1277
|
+
exception);
|
|
1278
|
+
}
|
|
1279
|
+
else
|
|
1591
1280
|
{
|
|
1592
|
-
|
|
1593
|
-
// If we route, we send everything to the router's client
|
|
1594
|
-
// proxy endpoints.
|
|
1595
|
-
//
|
|
1596
|
-
_routerInfo->getClientEndpoints(new Callback(const_cast<RoutableReference*>(this), callback));
|
|
1597
|
-
return;
|
|
1281
|
+
getConnectionNoRouterInfoAsync(std::move(response), std::move(exception));
|
|
1598
1282
|
}
|
|
1599
|
-
|
|
1600
|
-
getConnectionNoRouterInfo(callback);
|
|
1601
1283
|
}
|
|
1602
1284
|
|
|
1603
1285
|
void
|
|
1604
|
-
IceInternal::RoutableReference::
|
|
1286
|
+
IceInternal::RoutableReference::getConnectionNoRouterInfoAsync(
|
|
1287
|
+
function<void(ConnectionIPtr, bool)> response,
|
|
1288
|
+
function<void(std::exception_ptr)> exception) const
|
|
1605
1289
|
{
|
|
1606
|
-
class Callback : public LocatorInfo::GetEndpointsCallback
|
|
1290
|
+
class Callback final : public LocatorInfo::GetEndpointsCallback
|
|
1607
1291
|
{
|
|
1608
1292
|
public:
|
|
1609
|
-
|
|
1610
|
-
class Callback2 ICE_FINAL : public Reference::GetConnectionCallback
|
|
1293
|
+
void setEndpoints(const vector<EndpointIPtr>& endpoints, bool cached) final
|
|
1611
1294
|
{
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
virtual void
|
|
1615
|
-
setConnection(const Ice::ConnectionIPtr& connection, bool compress)
|
|
1295
|
+
if (endpoints.empty())
|
|
1616
1296
|
{
|
|
1617
|
-
|
|
1297
|
+
_exception(make_exception_ptr(
|
|
1298
|
+
Ice::NoEndpointException(__FILE__, __LINE__, ObjectPrx::_fromReference(_reference))));
|
|
1299
|
+
return;
|
|
1618
1300
|
}
|
|
1619
1301
|
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
}
|
|
1627
|
-
catch(const Ice::NoEndpointException& ex)
|
|
1628
|
-
{
|
|
1629
|
-
_callback->setException(ex); // No need to retry if there's no endpoints.
|
|
1630
|
-
}
|
|
1631
|
-
catch(const Ice::LocalException& ex)
|
|
1302
|
+
vector<EndpointIPtr> endpts = endpoints;
|
|
1303
|
+
_reference->applyOverrides(endpts);
|
|
1304
|
+
_reference->createConnectionAsync(
|
|
1305
|
+
endpts,
|
|
1306
|
+
_response,
|
|
1307
|
+
[reference = _reference, response = _response, exception = _exception, cached](std::exception_ptr exc)
|
|
1632
1308
|
{
|
|
1633
|
-
|
|
1634
|
-
assert(locatorInfo);
|
|
1635
|
-
locatorInfo->clearCache(_reference);
|
|
1636
|
-
if(_cached)
|
|
1309
|
+
try
|
|
1637
1310
|
{
|
|
1638
|
-
|
|
1639
|
-
|
|
1311
|
+
rethrow_exception(exc);
|
|
1312
|
+
}
|
|
1313
|
+
catch (const Ice::NoEndpointException&)
|
|
1314
|
+
{
|
|
1315
|
+
exception(exc); // No need to retry if there's no endpoints.
|
|
1316
|
+
}
|
|
1317
|
+
catch (const Ice::LocalException& ex)
|
|
1318
|
+
{
|
|
1319
|
+
LocatorInfoPtr locatorInfo = reference->getLocatorInfo();
|
|
1320
|
+
assert(locatorInfo);
|
|
1321
|
+
locatorInfo->clearCache(reference);
|
|
1322
|
+
if (cached)
|
|
1640
1323
|
{
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1324
|
+
TraceLevelsPtr traceLvls = reference->getInstance()->traceLevels();
|
|
1325
|
+
if (traceLvls->retry >= 2)
|
|
1326
|
+
{
|
|
1327
|
+
Trace out(reference->getInstance()->initializationData().logger, traceLvls->retryCat);
|
|
1328
|
+
out << "connection to cached endpoints failed\n"
|
|
1329
|
+
<< "removing endpoints from cache and trying again\n"
|
|
1330
|
+
<< ex;
|
|
1331
|
+
}
|
|
1332
|
+
reference->getConnectionNoRouterInfoAsync(response, exception); // Retry.
|
|
1333
|
+
return;
|
|
1644
1334
|
}
|
|
1645
|
-
|
|
1646
|
-
return;
|
|
1335
|
+
exception(exc);
|
|
1647
1336
|
}
|
|
1648
|
-
|
|
1649
|
-
}
|
|
1650
|
-
}
|
|
1651
|
-
|
|
1652
|
-
Callback2(const RoutableReferencePtr& reference, const GetConnectionCallbackPtr& cb, bool cached) :
|
|
1653
|
-
_reference(reference), _callback(cb), _cached(cached)
|
|
1654
|
-
{
|
|
1655
|
-
}
|
|
1656
|
-
|
|
1657
|
-
private:
|
|
1658
|
-
|
|
1659
|
-
const RoutableReferencePtr _reference;
|
|
1660
|
-
const GetConnectionCallbackPtr _callback;
|
|
1661
|
-
const bool _cached;
|
|
1662
|
-
};
|
|
1663
|
-
|
|
1664
|
-
virtual void
|
|
1665
|
-
setEndpoints(const vector<EndpointIPtr>& endpoints, bool cached)
|
|
1666
|
-
{
|
|
1667
|
-
if(endpoints.empty())
|
|
1668
|
-
{
|
|
1669
|
-
_callback->setException(Ice::NoEndpointException(__FILE__, __LINE__, _reference->toString()));
|
|
1670
|
-
return;
|
|
1671
|
-
}
|
|
1672
|
-
|
|
1673
|
-
vector<EndpointIPtr> endpts = endpoints;
|
|
1674
|
-
_reference->applyOverrides(endpts);
|
|
1675
|
-
_reference->createConnection(endpts, ICE_MAKE_SHARED(Callback2, _reference, _callback, cached));
|
|
1337
|
+
});
|
|
1676
1338
|
}
|
|
1677
1339
|
|
|
1678
|
-
|
|
1679
|
-
setException(const Ice::LocalException& ex)
|
|
1680
|
-
{
|
|
1681
|
-
_callback->setException(ex);
|
|
1682
|
-
}
|
|
1340
|
+
void setException(std::exception_ptr ex) final { _exception(ex); }
|
|
1683
1341
|
|
|
1684
|
-
Callback(
|
|
1685
|
-
|
|
1342
|
+
Callback(
|
|
1343
|
+
RoutableReferencePtr reference,
|
|
1344
|
+
function<void(ConnectionIPtr, bool)> response,
|
|
1345
|
+
function<void(std::exception_ptr)> exception)
|
|
1346
|
+
: _reference(std::move(reference)),
|
|
1347
|
+
_response(std::move(response)),
|
|
1348
|
+
_exception(std::move(exception))
|
|
1686
1349
|
{
|
|
1687
1350
|
}
|
|
1688
1351
|
|
|
1689
1352
|
private:
|
|
1690
|
-
|
|
1691
1353
|
const RoutableReferencePtr _reference;
|
|
1692
|
-
const
|
|
1354
|
+
const function<void(ConnectionIPtr, bool)> _response;
|
|
1355
|
+
const function<void(std::exception_ptr)> _exception;
|
|
1693
1356
|
};
|
|
1694
1357
|
|
|
1695
|
-
if(!_endpoints.empty())
|
|
1358
|
+
if (!_endpoints.empty())
|
|
1696
1359
|
{
|
|
1697
|
-
|
|
1360
|
+
createConnectionAsync(_endpoints, std::move(response), std::move(exception));
|
|
1698
1361
|
return;
|
|
1699
1362
|
}
|
|
1700
1363
|
|
|
1701
|
-
if(_locatorInfo)
|
|
1364
|
+
if (_locatorInfo)
|
|
1702
1365
|
{
|
|
1703
|
-
|
|
1704
|
-
|
|
1366
|
+
RoutableReferencePtr self =
|
|
1367
|
+
dynamic_pointer_cast<RoutableReference>(const_cast<RoutableReference*>(this)->shared_from_this());
|
|
1368
|
+
_locatorInfo->getEndpoints(
|
|
1369
|
+
self,
|
|
1370
|
+
_locatorCacheTimeout,
|
|
1371
|
+
make_shared<Callback>(self, std::move(response), std::move(exception)));
|
|
1705
1372
|
}
|
|
1706
1373
|
else
|
|
1707
1374
|
{
|
|
1708
|
-
|
|
1375
|
+
exception(make_exception_ptr(Ice::NoEndpointException(
|
|
1376
|
+
__FILE__,
|
|
1377
|
+
__LINE__,
|
|
1378
|
+
ObjectPrx::_fromReference(const_cast<RoutableReference*>(this)->shared_from_this()))));
|
|
1709
1379
|
}
|
|
1710
1380
|
}
|
|
1711
1381
|
|
|
1712
1382
|
void
|
|
1713
|
-
IceInternal::RoutableReference::
|
|
1714
|
-
|
|
1383
|
+
IceInternal::RoutableReference::createConnectionAsync(
|
|
1384
|
+
const vector<EndpointIPtr>& allEndpoints,
|
|
1385
|
+
function<void(ConnectionIPtr, bool)> response,
|
|
1386
|
+
function<void(std::exception_ptr)> exception) const
|
|
1715
1387
|
{
|
|
1716
1388
|
vector<EndpointIPtr> endpoints = filterEndpoints(allEndpoints);
|
|
1717
|
-
if(endpoints.empty())
|
|
1389
|
+
if (endpoints.empty())
|
|
1718
1390
|
{
|
|
1719
|
-
|
|
1391
|
+
exception(make_exception_ptr(Ice::NoEndpointException(
|
|
1392
|
+
__FILE__,
|
|
1393
|
+
__LINE__,
|
|
1394
|
+
ObjectPrx::_fromReference(const_cast<RoutableReference*>(this)->shared_from_this()))));
|
|
1720
1395
|
return;
|
|
1721
1396
|
}
|
|
1722
1397
|
|
|
1723
|
-
//
|
|
1724
|
-
// Finally, create the connection.
|
|
1725
|
-
//
|
|
1726
1398
|
OutgoingConnectionFactoryPtr factory = getInstance()->outgoingConnectionFactory();
|
|
1727
|
-
|
|
1399
|
+
auto self = static_pointer_cast<RoutableReference>(const_cast<RoutableReference*>(this)->shared_from_this());
|
|
1400
|
+
|
|
1401
|
+
auto createConnectionSucceded =
|
|
1402
|
+
[routerInfo = _routerInfo, response = std::move(response)](Ice::ConnectionIPtr connection, bool compress)
|
|
1728
1403
|
{
|
|
1729
|
-
|
|
1404
|
+
// If we have a router, set the object adapter for this router (if any) to the new connection, so that
|
|
1405
|
+
// callbacks from the router can be received over this new connection.
|
|
1406
|
+
if (routerInfo && routerInfo->getAdapter())
|
|
1730
1407
|
{
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
{
|
|
1736
|
-
//
|
|
1737
|
-
// If we have a router, set the object adapter for this router
|
|
1738
|
-
// (if any) to the new connection, so that callbacks from the
|
|
1739
|
-
// router can be received over this new connection.
|
|
1740
|
-
//
|
|
1741
|
-
if(_routerInfo && _routerInfo->getAdapter())
|
|
1742
|
-
{
|
|
1743
|
-
connection->setAdapter(_routerInfo->getAdapter());
|
|
1744
|
-
}
|
|
1745
|
-
_callback->setConnection(connection, compress);
|
|
1746
|
-
}
|
|
1747
|
-
|
|
1748
|
-
virtual void
|
|
1749
|
-
setException(const Ice::LocalException& ex)
|
|
1750
|
-
{
|
|
1751
|
-
_callback->setException(ex);
|
|
1752
|
-
}
|
|
1753
|
-
|
|
1754
|
-
CB1(const RouterInfoPtr& routerInfo, const GetConnectionCallbackPtr& callback) :
|
|
1755
|
-
_routerInfo(routerInfo), _callback(callback)
|
|
1756
|
-
{
|
|
1757
|
-
}
|
|
1758
|
-
|
|
1759
|
-
private:
|
|
1760
|
-
|
|
1761
|
-
const RouterInfoPtr _routerInfo;
|
|
1762
|
-
const GetConnectionCallbackPtr _callback;
|
|
1763
|
-
};
|
|
1408
|
+
connection->setAdapter(routerInfo->getAdapter());
|
|
1409
|
+
}
|
|
1410
|
+
response(std::move(connection), compress);
|
|
1411
|
+
};
|
|
1764
1412
|
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
// existing connection to one of the given endpoints.
|
|
1768
|
-
|
|
1769
|
-
factory->create(endpoints, false, getEndpointSelection(), new CB1(_routerInfo, callback));
|
|
1770
|
-
return;
|
|
1413
|
+
if (getCacheConnection() || endpoints.size() == 1)
|
|
1414
|
+
{
|
|
1415
|
+
// Get an existing connection or create one if there's no existing connection to one of the given endpoints.
|
|
1416
|
+
factory->createAsync(std::move(endpoints), false, std::move(createConnectionSucceded), std::move(exception));
|
|
1771
1417
|
}
|
|
1772
1418
|
else
|
|
1773
1419
|
{
|
|
1774
|
-
|
|
1420
|
+
// Go through the list of endpoints and try to create the connection until it succeeds. This is different from
|
|
1421
|
+
// just calling create() with the given endpoints since this might create a new connection even if there's an
|
|
1422
|
+
// existing connection for one of the endpoints.
|
|
1423
|
+
|
|
1424
|
+
class CreateConnectionState final : public std::enable_shared_from_this<CreateConnectionState>
|
|
1775
1425
|
{
|
|
1776
1426
|
public:
|
|
1427
|
+
CreateConnectionState(
|
|
1428
|
+
vector<EndpointIPtr> endpoints,
|
|
1429
|
+
OutgoingConnectionFactoryPtr factory,
|
|
1430
|
+
function<void(Ice::ConnectionIPtr, bool)> createConnectionSucceded,
|
|
1431
|
+
function<void(exception_ptr)> exception)
|
|
1432
|
+
: _endpoints(std::move(endpoints)),
|
|
1433
|
+
_factory(std::move(factory)),
|
|
1434
|
+
_createConnectionSucceded(std::move(createConnectionSucceded)),
|
|
1435
|
+
_createConnectionFailed(std::move(exception))
|
|
1436
|
+
{
|
|
1437
|
+
}
|
|
1777
1438
|
|
|
1778
|
-
|
|
1779
|
-
setConnection(const Ice::ConnectionIPtr& connection, bool compress)
|
|
1439
|
+
void createAsync()
|
|
1780
1440
|
{
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
if(_reference->getRouterInfo() && _reference->getRouterInfo()->getAdapter())
|
|
1787
|
-
{
|
|
1788
|
-
connection->setAdapter(_reference->getRouterInfo()->getAdapter());
|
|
1789
|
-
}
|
|
1790
|
-
_callback->setConnection(connection, compress);
|
|
1441
|
+
_factory->createAsync(
|
|
1442
|
+
{_endpoints[_endpointIndex]},
|
|
1443
|
+
true,
|
|
1444
|
+
_createConnectionSucceded,
|
|
1445
|
+
[self = shared_from_this()](exception_ptr e) { self->handleException(e); });
|
|
1791
1446
|
}
|
|
1792
1447
|
|
|
1793
|
-
|
|
1794
|
-
setException(const Ice::LocalException& ex)
|
|
1448
|
+
void handleException(std::exception_ptr ex)
|
|
1795
1449
|
{
|
|
1796
|
-
if(!_exception)
|
|
1450
|
+
if (!_exception)
|
|
1797
1451
|
{
|
|
1798
|
-
|
|
1452
|
+
_exception = ex;
|
|
1799
1453
|
}
|
|
1800
1454
|
|
|
1801
|
-
if(++
|
|
1455
|
+
if (++_endpointIndex == _endpoints.size())
|
|
1802
1456
|
{
|
|
1803
|
-
|
|
1457
|
+
_createConnectionFailed(_exception);
|
|
1804
1458
|
return;
|
|
1805
1459
|
}
|
|
1806
1460
|
|
|
1807
|
-
const bool more =
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
}
|
|
1814
|
-
|
|
1815
|
-
CB2(const RoutableReferencePtr& reference, const vector<EndpointIPtr>& endpoints,
|
|
1816
|
-
const GetConnectionCallbackPtr& callback) :
|
|
1817
|
-
_reference(reference),
|
|
1818
|
-
_endpoints(endpoints),
|
|
1819
|
-
_callback(callback),
|
|
1820
|
-
_i(0)
|
|
1821
|
-
{
|
|
1461
|
+
const bool more = _endpointIndex != _endpoints.size() - 1;
|
|
1462
|
+
_factory->createAsync(
|
|
1463
|
+
{_endpoints[_endpointIndex]},
|
|
1464
|
+
more,
|
|
1465
|
+
_createConnectionSucceded,
|
|
1466
|
+
[self = shared_from_this()](exception_ptr e) { self->handleException(e); });
|
|
1822
1467
|
}
|
|
1823
1468
|
|
|
1824
1469
|
private:
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1470
|
+
exception_ptr _exception = nullptr;
|
|
1471
|
+
size_t _endpointIndex = 0;
|
|
1472
|
+
vector<EndpointIPtr> _endpoints;
|
|
1473
|
+
OutgoingConnectionFactoryPtr _factory;
|
|
1474
|
+
std::function<void(Ice::ConnectionIPtr, bool)> _createConnectionSucceded;
|
|
1475
|
+
std::function<void(exception_ptr)> _createConnectionFailed;
|
|
1831
1476
|
};
|
|
1832
1477
|
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
//
|
|
1840
|
-
|
|
1841
|
-
vector<EndpointIPtr> endpt;
|
|
1842
|
-
endpt.push_back(endpoints[0]);
|
|
1843
|
-
RoutableReference* self = const_cast<RoutableReference*>(this);
|
|
1844
|
-
factory->create(endpt, true, getEndpointSelection(), new CB2(self, endpoints, callback));
|
|
1845
|
-
return;
|
|
1478
|
+
auto state = make_shared<CreateConnectionState>(
|
|
1479
|
+
std::move(endpoints),
|
|
1480
|
+
std::move(factory),
|
|
1481
|
+
std::move(createConnectionSucceded),
|
|
1482
|
+
std::move(exception));
|
|
1483
|
+
state->createAsync();
|
|
1846
1484
|
}
|
|
1847
1485
|
}
|
|
1848
1486
|
|
|
1849
1487
|
void
|
|
1850
1488
|
IceInternal::RoutableReference::applyOverrides(vector<EndpointIPtr>& endpoints) const
|
|
1851
1489
|
{
|
|
1852
|
-
for
|
|
1490
|
+
for (auto& endpoint : endpoints)
|
|
1853
1491
|
{
|
|
1854
|
-
|
|
1855
|
-
|
|
1492
|
+
endpoint = endpoint->connectionId(_connectionId);
|
|
1493
|
+
optional<bool> compress = getCompress();
|
|
1494
|
+
if (compress.has_value())
|
|
1856
1495
|
{
|
|
1857
|
-
|
|
1858
|
-
}
|
|
1859
|
-
if(_overrideTimeout)
|
|
1860
|
-
{
|
|
1861
|
-
*p = (*p)->timeout(_timeout);
|
|
1496
|
+
endpoint = endpoint->compress(*compress);
|
|
1862
1497
|
}
|
|
1863
1498
|
}
|
|
1864
1499
|
}
|
|
1865
1500
|
|
|
1866
|
-
IceInternal::RoutableReference::RoutableReference(const RoutableReference& r)
|
|
1867
|
-
Reference(r),
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
_overrideTimeout(r._overrideTimeout),
|
|
1878
|
-
_timeout(r._timeout),
|
|
1879
|
-
_connectionId(r._connectionId)
|
|
1501
|
+
IceInternal::RoutableReference::RoutableReference(const RoutableReference& r)
|
|
1502
|
+
: Reference(r),
|
|
1503
|
+
_endpoints(r._endpoints),
|
|
1504
|
+
_adapterId(r._adapterId),
|
|
1505
|
+
_locatorInfo(r._locatorInfo),
|
|
1506
|
+
_routerInfo(r._routerInfo),
|
|
1507
|
+
_collocationOptimized(r._collocationOptimized),
|
|
1508
|
+
_cacheConnection(r._cacheConnection),
|
|
1509
|
+
_endpointSelection(r._endpointSelection),
|
|
1510
|
+
_locatorCacheTimeout(r._locatorCacheTimeout),
|
|
1511
|
+
_connectionId(r._connectionId)
|
|
1880
1512
|
{
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
namespace
|
|
1884
|
-
{
|
|
1885
|
-
|
|
1886
|
-
#ifndef ICE_CPP11_COMPILER
|
|
1887
|
-
struct EndpointIsOpaque : public unary_function<EndpointIPtr, bool>
|
|
1888
|
-
{
|
|
1889
|
-
public:
|
|
1890
|
-
|
|
1891
|
-
bool
|
|
1892
|
-
operator()(EndpointIPtr p) const
|
|
1893
|
-
{
|
|
1894
|
-
return dynamic_cast<OpaqueEndpointI*>(p.get()) != 0;
|
|
1895
|
-
}
|
|
1896
|
-
};
|
|
1897
|
-
#endif
|
|
1898
|
-
|
|
1513
|
+
setBatchRequestQueue();
|
|
1899
1514
|
}
|
|
1900
1515
|
|
|
1901
1516
|
vector<EndpointIPtr>
|
|
@@ -1903,63 +1518,35 @@ IceInternal::RoutableReference::filterEndpoints(const vector<EndpointIPtr>& allE
|
|
|
1903
1518
|
{
|
|
1904
1519
|
vector<EndpointIPtr> endpoints = allEndpoints;
|
|
1905
1520
|
|
|
1906
|
-
//
|
|
1907
1521
|
// Filter out unknown endpoints.
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
endpoints.end());
|
|
1916
|
-
#else
|
|
1917
|
-
endpoints.erase(remove_if(endpoints.begin(), endpoints.end(), EndpointIsOpaque()), endpoints.end());
|
|
1918
|
-
#endif
|
|
1919
|
-
//
|
|
1522
|
+
endpoints.erase(
|
|
1523
|
+
remove_if(
|
|
1524
|
+
endpoints.begin(),
|
|
1525
|
+
endpoints.end(),
|
|
1526
|
+
[](const EndpointIPtr& p) { return dynamic_pointer_cast<OpaqueEndpointI>(p) != nullptr; }),
|
|
1527
|
+
endpoints.end());
|
|
1528
|
+
|
|
1920
1529
|
// Filter out endpoints according to the mode of the reference.
|
|
1921
|
-
|
|
1922
|
-
switch(getMode())
|
|
1530
|
+
switch (getMode())
|
|
1923
1531
|
{
|
|
1924
1532
|
case Reference::ModeTwoway:
|
|
1925
1533
|
case Reference::ModeOneway:
|
|
1926
1534
|
case Reference::ModeBatchOneway:
|
|
1927
1535
|
{
|
|
1928
|
-
//
|
|
1929
1536
|
// Filter out datagram endpoints.
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
[](const EndpointIPtr& p)
|
|
1934
|
-
{
|
|
1935
|
-
return p->datagram();
|
|
1936
|
-
}),
|
|
1937
|
-
endpoints.end());
|
|
1938
|
-
#else
|
|
1939
|
-
endpoints.erase(remove_if(endpoints.begin(), endpoints.end(), Ice::constMemFun(&EndpointI::datagram)),
|
|
1940
|
-
endpoints.end());
|
|
1941
|
-
#endif
|
|
1537
|
+
endpoints.erase(
|
|
1538
|
+
remove_if(endpoints.begin(), endpoints.end(), [](const EndpointIPtr& p) { return p->datagram(); }),
|
|
1539
|
+
endpoints.end());
|
|
1942
1540
|
break;
|
|
1943
1541
|
}
|
|
1944
1542
|
|
|
1945
1543
|
case Reference::ModeDatagram:
|
|
1946
1544
|
case Reference::ModeBatchDatagram:
|
|
1947
1545
|
{
|
|
1948
|
-
//
|
|
1949
1546
|
// Filter out non-datagram endpoints.
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
[](const EndpointIPtr& p)
|
|
1954
|
-
{
|
|
1955
|
-
return !p->datagram();
|
|
1956
|
-
}),
|
|
1957
|
-
endpoints.end());
|
|
1958
|
-
#else
|
|
1959
|
-
endpoints.erase(remove_if(endpoints.begin(), endpoints.end(),
|
|
1960
|
-
not1(Ice::constMemFun(&EndpointI::datagram))),
|
|
1961
|
-
endpoints.end());
|
|
1962
|
-
#endif
|
|
1547
|
+
endpoints.erase(
|
|
1548
|
+
remove_if(endpoints.begin(), endpoints.end(), [](const EndpointIPtr& p) { return !p->datagram(); }),
|
|
1549
|
+
endpoints.end());
|
|
1963
1550
|
break;
|
|
1964
1551
|
}
|
|
1965
1552
|
}
|
|
@@ -1967,14 +1554,14 @@ IceInternal::RoutableReference::filterEndpoints(const vector<EndpointIPtr>& allE
|
|
|
1967
1554
|
//
|
|
1968
1555
|
// Sort the endpoints according to the endpoint selection type.
|
|
1969
1556
|
//
|
|
1970
|
-
switch(getEndpointSelection())
|
|
1557
|
+
switch (getEndpointSelection())
|
|
1971
1558
|
{
|
|
1972
|
-
case
|
|
1559
|
+
case EndpointSelectionType::Random:
|
|
1973
1560
|
{
|
|
1974
|
-
|
|
1561
|
+
IceInternal::shuffle(endpoints.begin(), endpoints.end());
|
|
1975
1562
|
break;
|
|
1976
1563
|
}
|
|
1977
|
-
case
|
|
1564
|
+
case EndpointSelectionType::Ordered:
|
|
1978
1565
|
{
|
|
1979
1566
|
// Nothing to do.
|
|
1980
1567
|
break;
|
|
@@ -1986,61 +1573,12 @@ IceInternal::RoutableReference::filterEndpoints(const vector<EndpointIPtr>& allE
|
|
|
1986
1573
|
}
|
|
1987
1574
|
}
|
|
1988
1575
|
|
|
1989
|
-
//
|
|
1990
|
-
// If a secure connection is requested or secure overrides is set,
|
|
1991
|
-
// remove all non-secure endpoints. Otherwise if preferSecure is set
|
|
1992
|
-
// make secure endpoints prefered. By default make non-secure
|
|
1993
|
-
// endpoints preferred over secure endpoints.
|
|
1994
|
-
//
|
|
1995
|
-
DefaultsAndOverridesPtr overrides = getInstance()->defaultsAndOverrides();
|
|
1996
|
-
if(overrides->overrideSecure ? overrides->overrideSecureValue : getSecure())
|
|
1997
|
-
{
|
|
1998
|
-
#ifdef ICE_CPP11_COMPILER
|
|
1999
|
-
endpoints.erase(remove_if(endpoints.begin(), endpoints.end(),
|
|
2000
|
-
[](const EndpointIPtr& p)
|
|
2001
|
-
{
|
|
2002
|
-
return !p->secure();
|
|
2003
|
-
}),
|
|
2004
|
-
endpoints.end());
|
|
2005
|
-
#else
|
|
2006
|
-
endpoints.erase(remove_if(endpoints.begin(), endpoints.end(), not1(Ice::constMemFun(&EndpointI::secure))),
|
|
2007
|
-
endpoints.end());
|
|
2008
|
-
#endif
|
|
2009
|
-
}
|
|
2010
|
-
else if(getPreferSecure())
|
|
2011
|
-
{
|
|
2012
|
-
//
|
|
2013
|
-
// We must use stable_partition() instead of just simply
|
|
2014
|
-
// partition(), because otherwise some STL implementations
|
|
2015
|
-
// order our now randomized endpoints.
|
|
2016
|
-
//
|
|
2017
|
-
#ifdef ICE_CPP11_COMPILER
|
|
2018
|
-
stable_partition(endpoints.begin(), endpoints.end(),
|
|
2019
|
-
[](const EndpointIPtr& p)
|
|
2020
|
-
{
|
|
2021
|
-
return p->secure();
|
|
2022
|
-
});
|
|
2023
|
-
#else
|
|
2024
|
-
stable_partition(endpoints.begin(), endpoints.end(), Ice::constMemFun(&EndpointI::secure));
|
|
2025
|
-
#endif
|
|
2026
|
-
}
|
|
2027
|
-
else
|
|
2028
|
-
{
|
|
2029
|
-
//
|
|
2030
|
-
// We must use stable_partition() instead of just simply
|
|
2031
|
-
// partition(), because otherwise some STL implementations
|
|
2032
|
-
// order our now randomized endpoints.
|
|
2033
|
-
//
|
|
2034
|
-
#ifdef ICE_CPP11_COMPILER
|
|
2035
|
-
stable_partition(endpoints.begin(), endpoints.end(),
|
|
2036
|
-
[](const EndpointIPtr& p)
|
|
2037
|
-
{
|
|
2038
|
-
return !p->secure();
|
|
2039
|
-
});
|
|
2040
|
-
#else
|
|
2041
|
-
stable_partition(endpoints.begin(), endpoints.end(), not1(Ice::constMemFun(&EndpointI::secure)));
|
|
2042
|
-
#endif
|
|
2043
|
-
}
|
|
2044
|
-
|
|
2045
1576
|
return endpoints;
|
|
2046
1577
|
}
|
|
1578
|
+
|
|
1579
|
+
void
|
|
1580
|
+
IceInternal::RoutableReference::setBatchRequestQueue()
|
|
1581
|
+
{
|
|
1582
|
+
_batchRequestQueue =
|
|
1583
|
+
isBatch() ? make_shared<BatchRequestQueue>(getInstance(), getMode() == Reference::ModeBatchDatagram) : nullptr;
|
|
1584
|
+
}
|