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,248 +1,161 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright (c) ZeroC, Inc. All rights reserved.
|
|
3
|
-
//
|
|
1
|
+
// Copyright (c) ZeroC, Inc.
|
|
4
2
|
|
|
5
|
-
#include
|
|
6
|
-
#include
|
|
7
|
-
#include
|
|
8
|
-
#include
|
|
3
|
+
#include "../Ice/Network.h" // For getInterfacesForMulticast
|
|
4
|
+
#include "../Ice/Timer.h"
|
|
5
|
+
#include "Ice/LoggerUtil.h"
|
|
6
|
+
#include "IceLocatorDiscovery/IceLocatorDiscovery.h"
|
|
7
|
+
#include "IceLocatorDiscovery/Lookup.h"
|
|
8
|
+
#include "Plugin.h"
|
|
9
9
|
|
|
10
|
-
#include <
|
|
11
|
-
#include <
|
|
10
|
+
#include <algorithm>
|
|
11
|
+
#include <thread>
|
|
12
12
|
|
|
13
13
|
using namespace std;
|
|
14
14
|
using namespace IceLocatorDiscovery;
|
|
15
15
|
|
|
16
16
|
namespace
|
|
17
17
|
{
|
|
18
|
+
const char* const locatorDiscoveryPluginName = "IceLocatorDiscovery";
|
|
18
19
|
|
|
19
|
-
class LocatorI; // Forward declaration
|
|
20
|
-
|
|
21
|
-
#ifdef ICE_CPP11_MAPPING
|
|
22
|
-
typedef std::pair<function<void(bool, const pair<const Ice::Byte*, const Ice::Byte*>&)>,
|
|
23
|
-
function<void(exception_ptr)>> AMDCallback;
|
|
24
|
-
#else
|
|
25
|
-
typedef Ice::AMD_Object_ice_invokePtr AMDCallback;
|
|
26
|
-
#endif
|
|
27
|
-
|
|
28
|
-
class Request :
|
|
29
|
-
#ifdef ICE_CPP11_MAPPING
|
|
30
|
-
public std::enable_shared_from_this<Request>
|
|
31
|
-
#else
|
|
32
|
-
public virtual IceUtil::Shared
|
|
33
|
-
#endif
|
|
34
|
-
{
|
|
35
|
-
public:
|
|
36
|
-
|
|
37
|
-
Request(LocatorI* locator,
|
|
38
|
-
const string& operation,
|
|
39
|
-
Ice::OperationMode mode,
|
|
40
|
-
const pair<const Ice::Byte*, const Ice::Byte*>& inParams,
|
|
41
|
-
const Ice::Context& ctx,
|
|
42
|
-
const AMDCallback& amdCB) :
|
|
43
|
-
_locator(locator),
|
|
44
|
-
_operation(operation),
|
|
45
|
-
_mode(mode),
|
|
46
|
-
_context(ctx),
|
|
47
|
-
_inParams(inParams.first, inParams.second),
|
|
48
|
-
_amdCB(amdCB)
|
|
49
|
-
{
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
void invoke(const Ice::LocatorPrxPtr&);
|
|
53
|
-
void response(bool, const pair<const Ice::Byte*, const Ice::Byte*>&);
|
|
54
|
-
void exception(const Ice::Exception&);
|
|
55
|
-
|
|
56
|
-
protected:
|
|
57
|
-
|
|
58
|
-
LocatorI* _locator;
|
|
59
|
-
const string _operation;
|
|
60
|
-
const Ice::OperationMode _mode;
|
|
61
|
-
const Ice::Context _context;
|
|
62
|
-
const Ice::ByteSeq _inParams;
|
|
63
|
-
AMDCallback _amdCB;
|
|
64
|
-
#ifdef ICE_CPP11_MAPPING
|
|
65
|
-
exception_ptr _exception;
|
|
66
|
-
#else
|
|
67
|
-
IceInternal::UniquePtr<Ice::Exception> _exception;
|
|
68
|
-
#endif
|
|
69
|
-
|
|
70
|
-
Ice::LocatorPrxPtr _locatorPrx;
|
|
71
|
-
};
|
|
72
|
-
ICE_DEFINE_PTR(RequestPtr, Request);
|
|
73
|
-
|
|
74
|
-
class LocatorI : public Ice::BlobjectArrayAsync,
|
|
75
|
-
public IceUtil::TimerTask,
|
|
76
|
-
private IceUtil::Monitor<IceUtil::Mutex>
|
|
77
|
-
#ifdef ICE_CPP11_MAPPING
|
|
78
|
-
, public std::enable_shared_from_this<LocatorI>
|
|
79
|
-
#endif
|
|
80
|
-
{
|
|
81
|
-
public:
|
|
82
|
-
|
|
83
|
-
LocatorI(const string&, const LookupPrxPtr&, const Ice::PropertiesPtr&, const string&, const Ice::LocatorPrxPtr&);
|
|
84
|
-
void setLookupReply(const LookupReplyPrxPtr&);
|
|
85
|
-
|
|
86
|
-
#ifdef ICE_CPP11_MAPPING
|
|
87
|
-
virtual void ice_invokeAsync(pair<const Ice::Byte*, const Ice::Byte*>,
|
|
88
|
-
function<void(bool, const pair<const Ice::Byte*, const Ice::Byte*>&)>,
|
|
89
|
-
function<void(exception_ptr)>,
|
|
90
|
-
const Ice::Current&);
|
|
91
|
-
#else
|
|
92
|
-
virtual void ice_invoke_async(const Ice::AMD_Object_ice_invokePtr&, const pair<const Ice::Byte*, const Ice::Byte*>&,
|
|
93
|
-
const Ice::Current&);
|
|
94
|
-
#endif
|
|
95
|
-
|
|
96
|
-
void foundLocator(const Ice::LocatorPrxPtr&);
|
|
97
|
-
void invoke(const Ice::LocatorPrxPtr&, const RequestPtr&);
|
|
98
|
-
|
|
99
|
-
vector<Ice::LocatorPrxPtr> getLocators(const string&, const IceUtil::Time&);
|
|
100
|
-
|
|
101
|
-
void exception(const Ice::LocalException&);
|
|
102
|
-
|
|
103
|
-
private:
|
|
104
|
-
|
|
105
|
-
virtual void runTimerTask();
|
|
106
|
-
|
|
107
|
-
LookupPrxPtr _lookup;
|
|
108
|
-
vector<pair<LookupPrxPtr, LookupReplyPrxPtr> > _lookups;
|
|
109
|
-
IceUtil::Time _timeout;
|
|
110
|
-
int _retryCount;
|
|
111
|
-
IceUtil::Time _retryDelay;
|
|
112
|
-
const IceUtil::TimerPtr _timer;
|
|
113
|
-
const int _traceLevel;
|
|
114
|
-
|
|
115
|
-
string _instanceName;
|
|
116
|
-
bool _warned;
|
|
117
|
-
Ice::LocatorPrxPtr _locator;
|
|
118
|
-
map<string, Ice::LocatorPrxPtr> _locators;
|
|
119
|
-
Ice::LocatorPrxPtr _voidLocator;
|
|
120
|
-
|
|
121
|
-
IceUtil::Time _nextRetry;
|
|
122
|
-
bool _pending;
|
|
123
|
-
int _pendingRetryCount;
|
|
124
|
-
size_t _failureCount;
|
|
125
|
-
bool _warnOnce;
|
|
126
|
-
vector<RequestPtr> _pendingRequests;
|
|
127
|
-
};
|
|
128
|
-
ICE_DEFINE_PTR(LocatorIPtr, LocatorI);
|
|
129
|
-
|
|
130
|
-
class LookupReplyI : public LookupReply
|
|
131
|
-
{
|
|
132
|
-
public:
|
|
133
|
-
|
|
134
|
-
LookupReplyI(const LocatorIPtr& locator) : _locator(locator)
|
|
135
|
-
{
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
virtual void foundLocator(ICE_IN(Ice::LocatorPrxPtr), const Ice::Current&);
|
|
139
|
-
|
|
140
|
-
private:
|
|
141
|
-
|
|
142
|
-
const LocatorIPtr _locator;
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
//
|
|
146
|
-
// The void locator implementation below is used when no locator is found.
|
|
147
|
-
//
|
|
148
|
-
class VoidLocatorI : public Ice::Locator
|
|
149
|
-
{
|
|
150
|
-
public:
|
|
151
|
-
|
|
152
|
-
#ifdef ICE_CPP11_MAPPING
|
|
153
|
-
virtual void
|
|
154
|
-
findObjectByIdAsync(::Ice::Identity,
|
|
155
|
-
function<void(const shared_ptr<::Ice::ObjectPrx>&)> response,
|
|
156
|
-
function<void(exception_ptr)>,
|
|
157
|
-
const Ice::Current&) const
|
|
158
|
-
{
|
|
159
|
-
response(nullptr);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
virtual void
|
|
163
|
-
findAdapterByIdAsync(string,
|
|
164
|
-
function<void(const shared_ptr<::Ice::ObjectPrx>&)> response,
|
|
165
|
-
function<void(exception_ptr)>,
|
|
166
|
-
const Ice::Current&) const
|
|
167
|
-
{
|
|
168
|
-
response(nullptr);
|
|
169
|
-
}
|
|
170
|
-
#else
|
|
171
|
-
virtual void
|
|
172
|
-
findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& amdCB,
|
|
173
|
-
const Ice::Identity&,
|
|
174
|
-
const Ice::Current&) const
|
|
175
|
-
{
|
|
176
|
-
amdCB->ice_response(0);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
virtual void
|
|
180
|
-
findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& amdCB,
|
|
181
|
-
const string&,
|
|
182
|
-
const Ice::Current&) const
|
|
183
|
-
{
|
|
184
|
-
amdCB->ice_response(0);
|
|
185
|
-
}
|
|
186
|
-
#endif
|
|
187
|
-
|
|
188
|
-
virtual Ice::LocatorRegistryPrxPtr
|
|
189
|
-
getRegistry(const Ice::Current&) const
|
|
190
|
-
{
|
|
191
|
-
return ICE_NULLPTR;
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
class PluginI : public Plugin
|
|
196
|
-
{
|
|
197
|
-
public:
|
|
198
|
-
|
|
199
|
-
PluginI(const std::string&, const Ice::CommunicatorPtr&);
|
|
200
|
-
|
|
201
|
-
virtual void initialize();
|
|
202
|
-
virtual void destroy();
|
|
203
|
-
virtual vector<Ice::LocatorPrxPtr> getLocators(const string&, const IceUtil::Time&) const;
|
|
204
|
-
|
|
205
|
-
private:
|
|
206
|
-
|
|
207
|
-
const string _name;
|
|
208
|
-
const Ice::CommunicatorPtr _communicator;
|
|
209
|
-
Ice::ObjectAdapterPtr _locatorAdapter;
|
|
210
|
-
Ice::ObjectAdapterPtr _replyAdapter;
|
|
211
|
-
LocatorIPtr _locator;
|
|
212
|
-
Ice::LocatorPrxPtr _locatorPrx;
|
|
213
|
-
Ice::LocatorPrxPtr _defaultLocator;
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
#ifndef ICE_CPP11_MAPPING
|
|
217
|
-
|
|
218
|
-
class CallbackI : public IceUtil::Shared
|
|
219
|
-
{
|
|
220
|
-
public:
|
|
221
|
-
|
|
222
|
-
CallbackI(const LocatorIPtr& locator) : _locator(locator)
|
|
20
|
+
class LocatorI; // Forward declaration
|
|
21
|
+
class Request : public std::enable_shared_from_this<Request>
|
|
223
22
|
{
|
|
224
|
-
|
|
23
|
+
public:
|
|
24
|
+
Request(
|
|
25
|
+
LocatorI* locator,
|
|
26
|
+
string operation,
|
|
27
|
+
Ice::OperationMode mode,
|
|
28
|
+
pair<const byte*, const byte*> inParams,
|
|
29
|
+
Ice::Context ctx,
|
|
30
|
+
function<void(bool, pair<const byte*, const byte*>)> responseCallback,
|
|
31
|
+
function<void(exception_ptr)> exceptionCallback)
|
|
32
|
+
: _locator(locator),
|
|
33
|
+
_operation(std::move(operation)),
|
|
34
|
+
_mode(mode),
|
|
35
|
+
_context(std::move(ctx)),
|
|
36
|
+
_inParams(inParams.first, inParams.second),
|
|
37
|
+
_responseCallback(std::move(responseCallback)),
|
|
38
|
+
_exceptionCallback(std::move(exceptionCallback))
|
|
39
|
+
{
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void invoke(const Ice::LocatorPrx&);
|
|
43
|
+
void response(bool, pair<const byte*, const byte*>);
|
|
44
|
+
void exception(std::exception_ptr);
|
|
45
|
+
|
|
46
|
+
protected:
|
|
47
|
+
LocatorI* _locator;
|
|
48
|
+
const string _operation;
|
|
49
|
+
const Ice::OperationMode _mode;
|
|
50
|
+
const Ice::Context _context;
|
|
51
|
+
const Ice::ByteSeq _inParams;
|
|
52
|
+
function<void(bool, pair<const byte*, const byte*>)> _responseCallback;
|
|
53
|
+
function<void(exception_ptr)> _exceptionCallback;
|
|
54
|
+
exception_ptr _exception;
|
|
55
|
+
|
|
56
|
+
optional<Ice::LocatorPrx> _locatorPrx;
|
|
57
|
+
};
|
|
58
|
+
using RequestPtr = std::shared_ptr<Request>;
|
|
59
|
+
|
|
60
|
+
class LocatorI final : public Ice::BlobjectArrayAsync,
|
|
61
|
+
public IceInternal::TimerTask,
|
|
62
|
+
public std::enable_shared_from_this<LocatorI>
|
|
63
|
+
{
|
|
64
|
+
public:
|
|
65
|
+
LocatorI(const LookupPrx&, const Ice::PropertiesPtr&, string, Ice::LocatorPrx);
|
|
66
|
+
void setLookupReply(const LookupReplyPrx&);
|
|
67
|
+
|
|
68
|
+
void ice_invokeAsync(
|
|
69
|
+
pair<const byte*, const byte*>,
|
|
70
|
+
function<void(bool, pair<const byte*, const byte*>)>,
|
|
71
|
+
function<void(exception_ptr)>,
|
|
72
|
+
const Ice::Current&) final;
|
|
73
|
+
|
|
74
|
+
void foundLocator(const Ice::LocatorPrx&);
|
|
75
|
+
void invoke(const optional<Ice::LocatorPrx>&, const RequestPtr&);
|
|
76
|
+
|
|
77
|
+
vector<Ice::LocatorPrx> getLocators(const string&, const chrono::milliseconds&);
|
|
78
|
+
|
|
79
|
+
void exception(std::exception_ptr);
|
|
80
|
+
|
|
81
|
+
private:
|
|
82
|
+
void runTimerTask() final;
|
|
83
|
+
|
|
84
|
+
LookupPrx _lookup;
|
|
85
|
+
vector<pair<LookupPrx, LookupReplyPrx>> _lookups;
|
|
86
|
+
chrono::milliseconds _timeout;
|
|
87
|
+
int _retryCount;
|
|
88
|
+
chrono::milliseconds _retryDelay;
|
|
89
|
+
const IceInternal::TimerPtr _timer;
|
|
90
|
+
const int _traceLevel;
|
|
91
|
+
|
|
92
|
+
string _instanceName;
|
|
93
|
+
bool _warned{false};
|
|
94
|
+
optional<Ice::LocatorPrx> _locator;
|
|
95
|
+
map<string, Ice::LocatorPrx> _locators;
|
|
96
|
+
Ice::LocatorPrx _voidLocator;
|
|
97
|
+
|
|
98
|
+
chrono::steady_clock::time_point _nextRetry;
|
|
99
|
+
bool _pending{false};
|
|
100
|
+
int _pendingRetryCount{0};
|
|
101
|
+
size_t _failureCount{0};
|
|
102
|
+
bool _warnOnce{true};
|
|
103
|
+
vector<RequestPtr> _pendingRequests;
|
|
104
|
+
std::mutex _mutex;
|
|
105
|
+
std::condition_variable _conditionVariable;
|
|
106
|
+
};
|
|
107
|
+
using LocatorIPtr = std::shared_ptr<LocatorI>;
|
|
108
|
+
|
|
109
|
+
class LookupReplyI final : public LookupReply
|
|
110
|
+
{
|
|
111
|
+
public:
|
|
112
|
+
LookupReplyI(LocatorIPtr locator) : _locator(std::move(locator)) {}
|
|
113
|
+
|
|
114
|
+
void foundLocator(optional<Ice::LocatorPrx>, const Ice::Current&) final;
|
|
115
|
+
|
|
116
|
+
private:
|
|
117
|
+
const LocatorIPtr _locator;
|
|
118
|
+
};
|
|
225
119
|
|
|
226
|
-
|
|
227
|
-
|
|
120
|
+
//
|
|
121
|
+
// The void locator implementation below is used when no locator is found.
|
|
122
|
+
//
|
|
123
|
+
class VoidLocatorI final : public Ice::Locator
|
|
228
124
|
{
|
|
229
|
-
|
|
125
|
+
public:
|
|
126
|
+
[[nodiscard]] std::optional<Ice::ObjectPrx> findObjectById(Ice::Identity, const Ice::Current&) const final
|
|
230
127
|
{
|
|
231
|
-
|
|
128
|
+
return nullopt;
|
|
232
129
|
}
|
|
233
|
-
|
|
130
|
+
|
|
131
|
+
[[nodiscard]] std::optional<Ice::ObjectPrx> findAdapterById(string, const Ice::Current&) const final
|
|
234
132
|
{
|
|
235
|
-
|
|
133
|
+
return nullopt;
|
|
236
134
|
}
|
|
237
|
-
}
|
|
238
135
|
|
|
239
|
-
|
|
136
|
+
[[nodiscard]] std::optional<Ice::LocatorRegistryPrx> getRegistry(const Ice::Current&) const final
|
|
137
|
+
{
|
|
138
|
+
return nullopt;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
240
141
|
|
|
241
|
-
|
|
242
|
-
|
|
142
|
+
class PluginI final : public Plugin
|
|
143
|
+
{
|
|
144
|
+
public:
|
|
145
|
+
PluginI(Ice::CommunicatorPtr);
|
|
243
146
|
|
|
244
|
-
|
|
147
|
+
void initialize() final;
|
|
148
|
+
void destroy() final;
|
|
149
|
+
[[nodiscard]] vector<Ice::LocatorPrx> getLocators(const string&, const chrono::milliseconds&) const final;
|
|
245
150
|
|
|
151
|
+
private:
|
|
152
|
+
const Ice::CommunicatorPtr _communicator;
|
|
153
|
+
Ice::ObjectAdapterPtr _locatorAdapter;
|
|
154
|
+
Ice::ObjectAdapterPtr _replyAdapter;
|
|
155
|
+
LocatorIPtr _locator;
|
|
156
|
+
optional<Ice::LocatorPrx> _locatorPrx;
|
|
157
|
+
optional<Ice::LocatorPrx> _defaultLocator;
|
|
158
|
+
};
|
|
246
159
|
}
|
|
247
160
|
|
|
248
161
|
//
|
|
@@ -251,62 +164,53 @@ private:
|
|
|
251
164
|
extern "C" ICE_LOCATOR_DISCOVERY_API Ice::Plugin*
|
|
252
165
|
createIceLocatorDiscovery(const Ice::CommunicatorPtr& communicator, const string& name, const Ice::StringSeq&)
|
|
253
166
|
{
|
|
254
|
-
|
|
255
|
-
}
|
|
167
|
+
string pluginName{locatorDiscoveryPluginName};
|
|
256
168
|
|
|
257
|
-
|
|
258
|
-
{
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
{
|
|
263
|
-
Ice::registerPluginFactory("IceLocatorDiscovery", createIceLocatorDiscovery, loadOnInitialize);
|
|
264
|
-
|
|
265
|
-
#ifdef ICE_STATIC_LIBS
|
|
266
|
-
//
|
|
267
|
-
// Also register the UDP plugin with static builds to ensure the UDP transport is loaded.
|
|
268
|
-
//
|
|
269
|
-
registerIceUDP(true);
|
|
169
|
+
if (name != pluginName)
|
|
170
|
+
{
|
|
171
|
+
#ifdef _MSC_VER
|
|
172
|
+
# pragma warning(push)
|
|
173
|
+
# pragma warning(disable : 4297) // function assumed not to throw an exception but does
|
|
270
174
|
#endif
|
|
271
|
-
|
|
175
|
+
throw Ice::PluginInitializationException{
|
|
176
|
+
__FILE__,
|
|
177
|
+
__LINE__,
|
|
178
|
+
"the Locator Discovery plug-in must be named '" + pluginName + "'"};
|
|
179
|
+
#ifdef _MSC_VER
|
|
180
|
+
# pragma warning(pop)
|
|
181
|
+
#endif
|
|
182
|
+
}
|
|
272
183
|
|
|
184
|
+
return new PluginI(communicator);
|
|
273
185
|
}
|
|
274
186
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
//
|
|
278
|
-
extern "C" ICE_LOCATOR_DISCOVERY_API void
|
|
279
|
-
ICEregisterIceLocatorDiscovery(bool loadOnInitialize)
|
|
187
|
+
Ice::PluginFactory
|
|
188
|
+
IceLocatorDiscovery::locatorDiscoveryPluginFactory()
|
|
280
189
|
{
|
|
281
|
-
|
|
190
|
+
return {locatorDiscoveryPluginName, createIceLocatorDiscovery};
|
|
282
191
|
}
|
|
283
192
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
{
|
|
287
|
-
}
|
|
193
|
+
Plugin::~Plugin() = default;
|
|
194
|
+
|
|
195
|
+
PluginI::PluginI(Ice::CommunicatorPtr communicator) : _communicator(std::move(communicator)) {}
|
|
288
196
|
|
|
289
197
|
void
|
|
290
198
|
PluginI::initialize()
|
|
291
199
|
{
|
|
292
200
|
Ice::PropertiesPtr properties = _communicator->getProperties();
|
|
293
201
|
|
|
294
|
-
bool ipv4 = properties->
|
|
295
|
-
bool preferIPv6 = properties->
|
|
296
|
-
string address;
|
|
297
|
-
if(
|
|
298
|
-
{
|
|
299
|
-
address = properties->getPropertyWithDefault(_name + ".Address", "239.255.0.1");
|
|
300
|
-
}
|
|
301
|
-
else
|
|
202
|
+
bool ipv4 = properties->getIcePropertyAsInt("Ice.IPv4") > 0;
|
|
203
|
+
bool preferIPv6 = properties->getIcePropertyAsInt("Ice.PreferIPv6Address") > 0;
|
|
204
|
+
string address = properties->getIceProperty("IceLocatorDiscovery.Address");
|
|
205
|
+
if (address.empty())
|
|
302
206
|
{
|
|
303
|
-
address =
|
|
207
|
+
address = ipv4 && !preferIPv6 ? "239.255.0.1" : "ff15::1";
|
|
304
208
|
}
|
|
305
|
-
int port = properties->
|
|
306
|
-
string intf = properties->
|
|
209
|
+
int port = properties->getIcePropertyAsInt("IceLocatorDiscovery.Port");
|
|
210
|
+
string intf = properties->getIceProperty("IceLocatorDiscovery.Interface");
|
|
307
211
|
|
|
308
|
-
string lookupEndpoints = properties->
|
|
309
|
-
if(lookupEndpoints.empty())
|
|
212
|
+
string lookupEndpoints = properties->getIceProperty("IceLocatorDiscovery.Lookup");
|
|
213
|
+
if (lookupEndpoints.empty())
|
|
310
214
|
{
|
|
311
215
|
//
|
|
312
216
|
// If no lookup endpoints are specified, we get all the network interfaces and create
|
|
@@ -315,9 +219,9 @@ PluginI::initialize()
|
|
|
315
219
|
IceInternal::ProtocolSupport protocol = ipv4 && !preferIPv6 ? IceInternal::EnableIPv4 : IceInternal::EnableIPv6;
|
|
316
220
|
vector<string> interfaces = IceInternal::getInterfacesForMulticast(intf, protocol);
|
|
317
221
|
ostringstream lookup;
|
|
318
|
-
for(
|
|
222
|
+
for (auto p = interfaces.begin(); p != interfaces.end(); ++p)
|
|
319
223
|
{
|
|
320
|
-
if(p != interfaces.begin())
|
|
224
|
+
if (p != interfaces.begin())
|
|
321
225
|
{
|
|
322
226
|
lookup << ":";
|
|
323
227
|
}
|
|
@@ -326,49 +230,48 @@ PluginI::initialize()
|
|
|
326
230
|
lookupEndpoints = lookup.str();
|
|
327
231
|
}
|
|
328
232
|
|
|
329
|
-
if(properties->
|
|
233
|
+
if (properties->getIceProperty("IceLocatorDiscovery.Reply.Endpoints").empty())
|
|
330
234
|
{
|
|
331
|
-
properties->setProperty(
|
|
235
|
+
properties->setProperty(
|
|
236
|
+
"IceLocatorDiscovery.Reply.Endpoints",
|
|
237
|
+
"udp -h " + (intf.empty() ? "*" : "\"" + intf + "\""));
|
|
332
238
|
}
|
|
333
239
|
|
|
334
|
-
if(properties->
|
|
240
|
+
if (properties->getIceProperty("IceLocatorDiscovery.Locator.Endpoints").empty())
|
|
335
241
|
{
|
|
336
|
-
properties->setProperty(
|
|
242
|
+
properties->setProperty("IceLocatorDiscovery.Locator.AdapterId", Ice::generateUUID()); // Collocated adapter
|
|
337
243
|
}
|
|
338
244
|
|
|
339
|
-
_replyAdapter = _communicator->createObjectAdapter(
|
|
340
|
-
_locatorAdapter = _communicator->createObjectAdapter(
|
|
245
|
+
_replyAdapter = _communicator->createObjectAdapter("IceLocatorDiscovery.Reply");
|
|
246
|
+
_locatorAdapter = _communicator->createObjectAdapter("IceLocatorDiscovery.Locator");
|
|
341
247
|
|
|
342
248
|
// We don't want those adapters to be registered with the locator so clear their locator.
|
|
343
|
-
_replyAdapter->setLocator(
|
|
344
|
-
_locatorAdapter->setLocator(
|
|
249
|
+
_replyAdapter->setLocator(nullopt);
|
|
250
|
+
_locatorAdapter->setLocator(nullopt);
|
|
345
251
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
lookupPrx = lookupPrx->ice_collocationOptimized(false)->ice_router(ICE_NULLPTR);
|
|
252
|
+
LookupPrx lookupPrx(_communicator, "IceLocatorDiscovery/Lookup -d:" + lookupEndpoints);
|
|
253
|
+
lookupPrx = lookupPrx->ice_router(nullopt);
|
|
349
254
|
|
|
350
|
-
|
|
351
|
-
_locatorAdapter->addWithUUID(ICE_MAKE_SHARED(VoidLocatorI)));
|
|
255
|
+
auto voidLocator = _locatorAdapter->addWithUUID<Ice::LocatorPrx>(make_shared<VoidLocatorI>());
|
|
352
256
|
|
|
353
|
-
string instanceName = properties->
|
|
257
|
+
string instanceName = properties->getIceProperty("IceLocatorDiscovery.InstanceName");
|
|
354
258
|
Ice::Identity id;
|
|
355
259
|
id.name = "Locator";
|
|
356
260
|
id.category = !instanceName.empty() ? instanceName : Ice::generateUUID();
|
|
357
|
-
_locator =
|
|
358
|
-
voidLocator);
|
|
261
|
+
_locator = make_shared<LocatorI>(lookupPrx, properties, instanceName, voidLocator);
|
|
359
262
|
_defaultLocator = _communicator->getDefaultLocator();
|
|
360
|
-
_locatorPrx =
|
|
263
|
+
_locatorPrx = _locatorAdapter->add<Ice::LocatorPrx>(_locator, id);
|
|
361
264
|
_communicator->setDefaultLocator(_locatorPrx);
|
|
362
265
|
|
|
363
|
-
|
|
364
|
-
_locator->setLookupReply(
|
|
266
|
+
auto lookupReply = _replyAdapter->addWithUUID<LookupReplyPrx>(make_shared<LookupReplyI>(_locator))->ice_datagram();
|
|
267
|
+
_locator->setLookupReply(lookupReply);
|
|
365
268
|
|
|
366
269
|
_replyAdapter->activate();
|
|
367
270
|
_locatorAdapter->activate();
|
|
368
271
|
}
|
|
369
272
|
|
|
370
|
-
vector<Ice::
|
|
371
|
-
PluginI::getLocators(const string& instanceName, const
|
|
273
|
+
vector<Ice::LocatorPrx>
|
|
274
|
+
PluginI::getLocators(const string& instanceName, const chrono::milliseconds& waitTime) const
|
|
372
275
|
{
|
|
373
276
|
return _locator->getLocators(instanceName, waitTime);
|
|
374
277
|
}
|
|
@@ -376,15 +279,15 @@ PluginI::getLocators(const string& instanceName, const IceUtil::Time& waitTime)
|
|
|
376
279
|
void
|
|
377
280
|
PluginI::destroy()
|
|
378
281
|
{
|
|
379
|
-
if(_replyAdapter)
|
|
282
|
+
if (_replyAdapter)
|
|
380
283
|
{
|
|
381
284
|
_replyAdapter->destroy();
|
|
382
285
|
}
|
|
383
|
-
if(_locatorAdapter)
|
|
286
|
+
if (_locatorAdapter)
|
|
384
287
|
{
|
|
385
288
|
_locatorAdapter->destroy();
|
|
386
289
|
}
|
|
387
|
-
if(_communicator->getDefaultLocator() == _locatorPrx)
|
|
290
|
+
if (_communicator->getDefaultLocator() == _locatorPrx)
|
|
388
291
|
{
|
|
389
292
|
// Restore original default locator proxy, if the user didn't change it in the meantime
|
|
390
293
|
_communicator->setDefaultLocator(_defaultLocator);
|
|
@@ -392,334 +295,223 @@ PluginI::destroy()
|
|
|
392
295
|
}
|
|
393
296
|
|
|
394
297
|
void
|
|
395
|
-
Request::invoke(const Ice::
|
|
298
|
+
Request::invoke(const Ice::LocatorPrx& l)
|
|
396
299
|
{
|
|
397
|
-
|
|
398
|
-
if(l != _locatorPrx)
|
|
300
|
+
if (l != _locatorPrx)
|
|
399
301
|
{
|
|
400
302
|
_locatorPrx = l;
|
|
401
303
|
try
|
|
402
304
|
{
|
|
403
305
|
auto self = shared_from_this();
|
|
404
|
-
l->ice_invokeAsync(
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
catch(const Ice::Exception& ex)
|
|
426
|
-
{
|
|
427
|
-
self->exception(ex);
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
nullptr,
|
|
431
|
-
_context);
|
|
306
|
+
l->ice_invokeAsync(
|
|
307
|
+
_operation,
|
|
308
|
+
_mode,
|
|
309
|
+
_inParams,
|
|
310
|
+
[self](bool ok, vector<byte> outParams)
|
|
311
|
+
{
|
|
312
|
+
pair<const byte*, const byte*> outPair;
|
|
313
|
+
if (outParams.empty())
|
|
314
|
+
{
|
|
315
|
+
outPair.first = outPair.second = 0;
|
|
316
|
+
}
|
|
317
|
+
else
|
|
318
|
+
{
|
|
319
|
+
outPair.first = &outParams[0];
|
|
320
|
+
outPair.second = outPair.first + outParams.size();
|
|
321
|
+
}
|
|
322
|
+
self->response(ok, outPair);
|
|
323
|
+
},
|
|
324
|
+
[self](exception_ptr e) { self->exception(e); },
|
|
325
|
+
nullptr,
|
|
326
|
+
_context);
|
|
432
327
|
}
|
|
433
|
-
catch(const Ice::LocalException&
|
|
328
|
+
catch (const Ice::LocalException&)
|
|
434
329
|
{
|
|
435
|
-
exception(
|
|
330
|
+
exception(current_exception());
|
|
436
331
|
}
|
|
437
332
|
}
|
|
438
333
|
else
|
|
439
334
|
{
|
|
440
335
|
assert(_exception); // Don't retry if the proxy didn't change
|
|
441
|
-
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
#else
|
|
445
|
-
if(l != _locatorPrx)
|
|
446
|
-
{
|
|
447
|
-
_locatorPrx = l;
|
|
448
|
-
try
|
|
449
|
-
{
|
|
450
|
-
l->begin_ice_invoke(_operation, _mode, _inParams, _context,
|
|
451
|
-
Ice::newCallback_Object_ice_invoke(this, &Request::response, &Request::exception));
|
|
452
|
-
}
|
|
453
|
-
catch(const Ice::LocalException& ex)
|
|
454
|
-
{
|
|
455
|
-
exception(ex);
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
else
|
|
459
|
-
{
|
|
460
|
-
assert(_exception.get()); // Don't retry if the proxy didn't change
|
|
461
|
-
_amdCB->ice_exception(*_exception.get());
|
|
336
|
+
_exceptionCallback(_exception);
|
|
462
337
|
}
|
|
463
|
-
#endif
|
|
464
338
|
}
|
|
465
339
|
|
|
466
340
|
void
|
|
467
|
-
Request::response(bool ok,
|
|
341
|
+
Request::response(bool ok, pair<const byte*, const byte*> outParams)
|
|
468
342
|
{
|
|
469
|
-
|
|
470
|
-
_amdCB.first(ok, outParams);
|
|
471
|
-
#else
|
|
472
|
-
_amdCB->ice_response(ok, outParams);
|
|
473
|
-
#endif
|
|
343
|
+
_responseCallback(ok, outParams);
|
|
474
344
|
}
|
|
475
345
|
|
|
476
346
|
void
|
|
477
|
-
Request::exception(
|
|
347
|
+
Request::exception(std::exception_ptr ex)
|
|
478
348
|
{
|
|
479
|
-
#ifdef ICE_CPP11_MAPPING
|
|
480
349
|
try
|
|
481
350
|
{
|
|
482
|
-
ex
|
|
351
|
+
rethrow_exception(ex);
|
|
483
352
|
}
|
|
484
|
-
catch(const Ice::RequestFailedException&)
|
|
353
|
+
catch (const Ice::RequestFailedException&)
|
|
485
354
|
{
|
|
486
|
-
|
|
355
|
+
_exceptionCallback(ex);
|
|
487
356
|
}
|
|
488
|
-
catch(const Ice::UnknownException&)
|
|
357
|
+
catch (const Ice::UnknownException&)
|
|
489
358
|
{
|
|
490
|
-
|
|
359
|
+
_exceptionCallback(ex);
|
|
491
360
|
}
|
|
492
|
-
catch(const Ice::NoEndpointException&)
|
|
361
|
+
catch (const Ice::NoEndpointException&)
|
|
493
362
|
{
|
|
494
|
-
|
|
495
|
-
{
|
|
496
|
-
throw Ice::ObjectNotExistException(__FILE__, __LINE__);
|
|
497
|
-
}
|
|
498
|
-
catch(...)
|
|
499
|
-
{
|
|
500
|
-
_amdCB.second(current_exception());
|
|
501
|
-
}
|
|
363
|
+
_exceptionCallback(make_exception_ptr(Ice::ObjectNotExistException{__FILE__, __LINE__}));
|
|
502
364
|
}
|
|
503
|
-
catch(const Ice::CommunicatorDestroyedException&)
|
|
365
|
+
catch (const Ice::CommunicatorDestroyedException&)
|
|
504
366
|
{
|
|
505
|
-
|
|
506
|
-
{
|
|
507
|
-
throw Ice::ObjectNotExistException(__FILE__, __LINE__);
|
|
508
|
-
}
|
|
509
|
-
catch(...)
|
|
510
|
-
{
|
|
511
|
-
_amdCB.second(current_exception());
|
|
512
|
-
}
|
|
367
|
+
_exceptionCallback(make_exception_ptr(Ice::ObjectNotExistException{__FILE__, __LINE__}));
|
|
513
368
|
}
|
|
514
|
-
catch(const Ice::ObjectAdapterDeactivatedException&)
|
|
369
|
+
catch (const Ice::ObjectAdapterDeactivatedException&)
|
|
515
370
|
{
|
|
516
|
-
|
|
517
|
-
{
|
|
518
|
-
throw Ice::ObjectNotExistException(__FILE__, __LINE__);
|
|
519
|
-
}
|
|
520
|
-
catch(...)
|
|
521
|
-
{
|
|
522
|
-
_amdCB.second(current_exception());
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
catch(const Ice::Exception&)
|
|
526
|
-
{
|
|
527
|
-
_exception = current_exception();
|
|
528
|
-
_locator->invoke(_locatorPrx, shared_from_this()); // Retry with new locator proxy
|
|
529
|
-
}
|
|
530
|
-
#else
|
|
531
|
-
try
|
|
532
|
-
{
|
|
533
|
-
ex.ice_throw();
|
|
534
|
-
}
|
|
535
|
-
catch(const Ice::RequestFailedException&)
|
|
536
|
-
{
|
|
537
|
-
_amdCB->ice_exception(ex);
|
|
538
|
-
}
|
|
539
|
-
catch(const Ice::UnknownException&)
|
|
540
|
-
{
|
|
541
|
-
_amdCB->ice_exception(ex);
|
|
542
|
-
}
|
|
543
|
-
catch(const Ice::NoEndpointException&)
|
|
544
|
-
{
|
|
545
|
-
_amdCB->ice_exception(Ice::ObjectNotExistException(__FILE__, __LINE__));
|
|
371
|
+
_exceptionCallback(make_exception_ptr(Ice::ObjectNotExistException{__FILE__, __LINE__}));
|
|
546
372
|
}
|
|
547
|
-
catch(const Ice::
|
|
373
|
+
catch (const Ice::ObjectAdapterDestroyedException&)
|
|
548
374
|
{
|
|
549
|
-
|
|
375
|
+
_exceptionCallback(make_exception_ptr(Ice::ObjectNotExistException{__FILE__, __LINE__}));
|
|
550
376
|
}
|
|
551
|
-
catch(
|
|
377
|
+
catch (...)
|
|
552
378
|
{
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
catch(const Ice::Exception&)
|
|
556
|
-
{
|
|
557
|
-
_exception.reset(ex.ice_clone());
|
|
558
|
-
_locator->invoke(_locatorPrx, this); // Retry with new locator proxy
|
|
379
|
+
_exception = ex;
|
|
380
|
+
_locator->invoke(_locatorPrx, shared_from_this()); // Retry with new locator proxy
|
|
559
381
|
}
|
|
560
|
-
#endif
|
|
561
382
|
}
|
|
562
383
|
|
|
563
|
-
LocatorI::LocatorI(
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
_lookup(lookup),
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
_voidLocator(voidLocator),
|
|
578
|
-
_pending(false),
|
|
579
|
-
_pendingRetryCount(0),
|
|
580
|
-
_failureCount(0),
|
|
581
|
-
_warnOnce(true)
|
|
384
|
+
LocatorI::LocatorI(
|
|
385
|
+
const LookupPrx& lookup,
|
|
386
|
+
const Ice::PropertiesPtr& p,
|
|
387
|
+
string instanceName,
|
|
388
|
+
Ice::LocatorPrx voidLocator)
|
|
389
|
+
: _lookup(lookup),
|
|
390
|
+
_timeout(chrono::milliseconds(p->getIcePropertyAsInt("IceLocatorDiscovery.Timeout"))),
|
|
391
|
+
_retryCount(p->getIcePropertyAsInt("IceLocatorDiscovery.RetryCount")),
|
|
392
|
+
_retryDelay(chrono::milliseconds(p->getIcePropertyAsInt("IceLocatorDiscovery.RetryDelay"))),
|
|
393
|
+
_timer(IceInternal::getInstanceTimer(lookup->ice_getCommunicator())),
|
|
394
|
+
_traceLevel(p->getIcePropertyAsInt("IceLocatorDiscovery.Trace.Lookup")),
|
|
395
|
+
_instanceName(std::move(instanceName)),
|
|
396
|
+
_locator(lookup->ice_getCommunicator()->getDefaultLocator()),
|
|
397
|
+
_voidLocator(std::move(voidLocator))
|
|
582
398
|
{
|
|
583
|
-
if(_timeout <
|
|
399
|
+
if (_timeout < chrono::milliseconds::zero())
|
|
584
400
|
{
|
|
585
|
-
_timeout =
|
|
401
|
+
_timeout = chrono::milliseconds(300);
|
|
586
402
|
}
|
|
587
|
-
if(_retryCount < 0)
|
|
403
|
+
if (_retryCount < 0)
|
|
588
404
|
{
|
|
589
405
|
_retryCount = 0;
|
|
590
406
|
}
|
|
591
|
-
if(_retryDelay <
|
|
592
|
-
{
|
|
593
|
-
_retryDelay = IceUtil::Time::milliSeconds(0);
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
//
|
|
597
|
-
// Create one lookup proxy per endpoint from the given proxy. We want to send a multicast
|
|
598
|
-
// datagram on each endpoint.
|
|
599
|
-
//
|
|
600
|
-
Ice::EndpointSeq endpoints = lookup->ice_getEndpoints();
|
|
601
|
-
for(vector<Ice::EndpointPtr>::const_iterator q = endpoints.begin(); q != endpoints.end(); ++q)
|
|
407
|
+
if (_retryDelay < chrono::milliseconds::zero())
|
|
602
408
|
{
|
|
603
|
-
|
|
604
|
-
single.push_back(*q);
|
|
605
|
-
_lookups.push_back(make_pair(lookup->ice_endpoints(single), LookupReplyPrxPtr()));
|
|
409
|
+
_retryDelay = chrono::milliseconds::zero();
|
|
606
410
|
}
|
|
607
|
-
assert(!_lookups.empty());
|
|
608
411
|
}
|
|
609
412
|
|
|
610
413
|
void
|
|
611
|
-
LocatorI::setLookupReply(const
|
|
414
|
+
LocatorI::setLookupReply(const LookupReplyPrx& lookupReply)
|
|
612
415
|
{
|
|
613
|
-
//
|
|
614
|
-
//
|
|
615
|
-
|
|
616
|
-
for(vector<pair<LookupPrxPtr, LookupReplyPrxPtr> >::iterator p = _lookups.begin(); p != _lookups.end(); ++p)
|
|
416
|
+
// Create one lookup proxy per endpoint from the given proxy. We want to send a multicast datagram on each
|
|
417
|
+
// endpoint.
|
|
418
|
+
for (const auto& lookupEndpoint : _lookup->ice_getEndpoints())
|
|
617
419
|
{
|
|
618
|
-
|
|
619
|
-
|
|
420
|
+
LookupReplyPrx reply = lookupReply;
|
|
421
|
+
auto info = dynamic_pointer_cast<Ice::UDPEndpointInfo>(lookupEndpoint->getInfo());
|
|
422
|
+
// Use a lookup reply proxy whose address matches the interface used to send multicast datagrams.
|
|
423
|
+
if (info && !info->mcastInterface.empty())
|
|
620
424
|
{
|
|
621
|
-
|
|
622
|
-
for(Ice::EndpointSeq::const_iterator q = endpts.begin(); q != endpts.end(); ++q)
|
|
425
|
+
for (const auto& replyEndpoint : reply->ice_getEndpoints())
|
|
623
426
|
{
|
|
624
|
-
Ice::IPEndpointInfoPtr r =
|
|
625
|
-
if(r && r->host == info->mcastInterface)
|
|
427
|
+
Ice::IPEndpointInfoPtr r = dynamic_pointer_cast<Ice::IPEndpointInfo>(replyEndpoint->getInfo());
|
|
428
|
+
if (r && r->host == info->mcastInterface)
|
|
626
429
|
{
|
|
627
|
-
Ice::EndpointSeq
|
|
628
|
-
|
|
629
|
-
p->second = lookupReply->ice_endpoints(single);
|
|
430
|
+
reply = reply->ice_endpoints(Ice::EndpointSeq{replyEndpoint});
|
|
431
|
+
break;
|
|
630
432
|
}
|
|
631
433
|
}
|
|
632
434
|
}
|
|
633
435
|
|
|
634
|
-
|
|
635
|
-
{
|
|
636
|
-
p->second = lookupReply; // Fallback: just use the given lookup reply proxy if no matching endpoint found.
|
|
637
|
-
}
|
|
436
|
+
_lookups.emplace_back(_lookup->ice_endpoints(Ice::EndpointSeq{lookupEndpoint}), reply);
|
|
638
437
|
}
|
|
438
|
+
assert(!_lookups.empty());
|
|
639
439
|
}
|
|
640
440
|
|
|
641
|
-
#ifdef ICE_CPP11_MAPPING
|
|
642
441
|
void
|
|
643
|
-
LocatorI::ice_invokeAsync(
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
442
|
+
LocatorI::ice_invokeAsync(
|
|
443
|
+
pair<const byte*, const byte*> inParams,
|
|
444
|
+
function<void(bool, pair<const byte*, const byte*>)> responseCB,
|
|
445
|
+
function<void(exception_ptr)> exceptionCB,
|
|
446
|
+
const Ice::Current& current)
|
|
647
447
|
{
|
|
648
|
-
invoke(
|
|
649
|
-
|
|
448
|
+
invoke(
|
|
449
|
+
nullopt,
|
|
450
|
+
make_shared<Request>(
|
|
451
|
+
this,
|
|
452
|
+
current.operation,
|
|
453
|
+
current.mode,
|
|
454
|
+
inParams,
|
|
455
|
+
current.ctx,
|
|
456
|
+
std::move(responseCB),
|
|
457
|
+
std::move(exceptionCB)));
|
|
650
458
|
}
|
|
651
|
-
#else
|
|
652
|
-
void
|
|
653
|
-
LocatorI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& amdCB,
|
|
654
|
-
const pair<const Ice::Byte*, const Ice::Byte*>& inParams,
|
|
655
|
-
const Ice::Current& current)
|
|
656
|
-
{
|
|
657
|
-
invoke(0, new Request(this, current.operation, current.mode, inParams, current.ctx, amdCB));
|
|
658
|
-
}
|
|
659
|
-
#endif
|
|
660
459
|
|
|
661
|
-
vector<Ice::
|
|
662
|
-
LocatorI::getLocators(const string& instanceName, const
|
|
460
|
+
vector<Ice::LocatorPrx>
|
|
461
|
+
LocatorI::getLocators(const string& instanceName, const chrono::milliseconds& waitTime)
|
|
663
462
|
{
|
|
664
463
|
//
|
|
665
464
|
// Clear locators from previous search
|
|
666
465
|
//
|
|
667
466
|
{
|
|
668
|
-
|
|
467
|
+
lock_guard lock(_mutex);
|
|
669
468
|
_locators.clear();
|
|
670
469
|
}
|
|
671
470
|
|
|
672
471
|
//
|
|
673
472
|
// Find a locator
|
|
674
473
|
//
|
|
675
|
-
invoke(
|
|
474
|
+
invoke(nullopt, nullptr);
|
|
676
475
|
|
|
677
476
|
//
|
|
678
477
|
// Wait for responses
|
|
679
478
|
//
|
|
680
|
-
if(instanceName.empty())
|
|
479
|
+
if (instanceName.empty())
|
|
681
480
|
{
|
|
682
|
-
|
|
481
|
+
std::this_thread::sleep_for(waitTime);
|
|
683
482
|
}
|
|
684
483
|
else
|
|
685
484
|
{
|
|
686
|
-
|
|
687
|
-
while(_locators.find(instanceName) == _locators.end() && _pending)
|
|
485
|
+
unique_lock lock(_mutex);
|
|
486
|
+
while (_locators.find(instanceName) == _locators.end() && _pending)
|
|
688
487
|
{
|
|
689
|
-
|
|
488
|
+
if (_conditionVariable.wait_for(lock, waitTime) == cv_status::timeout)
|
|
489
|
+
{
|
|
490
|
+
break;
|
|
491
|
+
}
|
|
690
492
|
}
|
|
691
493
|
}
|
|
692
494
|
|
|
693
495
|
//
|
|
694
496
|
// Return found locators
|
|
695
497
|
//
|
|
696
|
-
|
|
697
|
-
vector<Ice::
|
|
698
|
-
|
|
498
|
+
lock_guard lock(_mutex);
|
|
499
|
+
vector<Ice::LocatorPrx> locators;
|
|
500
|
+
locators.reserve(_locators.size());
|
|
501
|
+
for (const auto& [_, locator] : _locators)
|
|
699
502
|
{
|
|
700
|
-
locators.push_back(
|
|
503
|
+
locators.push_back(locator);
|
|
701
504
|
}
|
|
702
505
|
return locators;
|
|
703
506
|
}
|
|
704
507
|
|
|
705
508
|
void
|
|
706
|
-
LocatorI::foundLocator(const Ice::
|
|
509
|
+
LocatorI::foundLocator(const Ice::LocatorPrx& locator)
|
|
707
510
|
{
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
if(!locator)
|
|
711
|
-
{
|
|
712
|
-
if(_traceLevel > 2)
|
|
713
|
-
{
|
|
714
|
-
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
715
|
-
out << "ignoring locator reply: (null locator)";
|
|
716
|
-
}
|
|
717
|
-
return;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
if(!_instanceName.empty() && locator->ice_getIdentity().category != _instanceName)
|
|
511
|
+
lock_guard lock(_mutex);
|
|
512
|
+
if (!_instanceName.empty() && locator->ice_getIdentity().category != _instanceName)
|
|
721
513
|
{
|
|
722
|
-
if(_traceLevel > 2)
|
|
514
|
+
if (_traceLevel > 2)
|
|
723
515
|
{
|
|
724
516
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
725
517
|
out << "ignoring locator reply: instance name doesn't match\n";
|
|
@@ -729,21 +521,18 @@ LocatorI::foundLocator(const Ice::LocatorPrxPtr& locator)
|
|
|
729
521
|
return;
|
|
730
522
|
}
|
|
731
523
|
|
|
732
|
-
//
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
//
|
|
736
|
-
if(!_pendingRequests.empty() &&
|
|
737
|
-
_locator && locator->ice_getIdentity().category != _locator->ice_getIdentity().category)
|
|
524
|
+
// If we already have a locator assigned, ensure the given locator has the same identity, otherwise ignore it.
|
|
525
|
+
if (!_pendingRequests.empty() && _locator &&
|
|
526
|
+
locator->ice_getIdentity().category != _locator->ice_getIdentity().category)
|
|
738
527
|
{
|
|
739
|
-
if(!_warned)
|
|
528
|
+
if (!_warned)
|
|
740
529
|
{
|
|
741
530
|
_warned = true; // Only warn once.
|
|
742
531
|
|
|
743
532
|
Ice::Warning out(locator->ice_getCommunicator()->getLogger());
|
|
744
533
|
out << "received Ice locator with different instance name:\n";
|
|
745
|
-
out << "using =
|
|
746
|
-
out << "received =
|
|
534
|
+
out << "using = '" << _locator->ice_getIdentity().category << "'\n";
|
|
535
|
+
out << "received = '" << locator->ice_getIdentity().category << "'\n";
|
|
747
536
|
out << "This is typically the case if multiple Ice locators with different";
|
|
748
537
|
out << "instance names are deployed and the property `IceLocatorDiscovery.InstanceName' ";
|
|
749
538
|
out << "is not set.";
|
|
@@ -751,158 +540,128 @@ LocatorI::foundLocator(const Ice::LocatorPrxPtr& locator)
|
|
|
751
540
|
return;
|
|
752
541
|
}
|
|
753
542
|
|
|
754
|
-
if(_pending) // No need to continue, we found a locator.
|
|
543
|
+
if (_pending) // No need to continue, we found a locator.
|
|
755
544
|
{
|
|
756
|
-
_timer->cancel(
|
|
545
|
+
_timer->cancel(shared_from_this());
|
|
757
546
|
_pendingRetryCount = 0;
|
|
758
547
|
_pending = false;
|
|
759
548
|
}
|
|
760
549
|
|
|
761
|
-
if(_traceLevel > 0)
|
|
550
|
+
if (_traceLevel > 0)
|
|
762
551
|
{
|
|
763
552
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
764
553
|
out << "locator lookup succeeded:\nlocator = " << locator;
|
|
765
|
-
if(!_instanceName.empty())
|
|
554
|
+
if (!_instanceName.empty())
|
|
766
555
|
{
|
|
767
556
|
out << "\ninstance name = " << _instanceName;
|
|
768
557
|
}
|
|
769
558
|
}
|
|
770
559
|
|
|
771
|
-
|
|
772
|
-
if(
|
|
560
|
+
auto i = _locators.find(locator->ice_getIdentity().category);
|
|
561
|
+
if (i != _locators.end())
|
|
773
562
|
{
|
|
774
|
-
//
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
//
|
|
778
|
-
Ice::EndpointSeq newEndpoints = l->ice_getEndpoints();
|
|
779
|
-
Ice::EndpointSeq endpts = locator->ice_getEndpoints();
|
|
780
|
-
for(Ice::EndpointSeq::const_iterator p = endpts.begin(); p != endpts.end(); ++p)
|
|
563
|
+
// We found another locator replica, append its endpoints to the current locator proxy endpoints.
|
|
564
|
+
Ice::EndpointSeq newEndpoints = i->second->ice_getEndpoints();
|
|
565
|
+
for (const auto& endpoint : locator->ice_getEndpoints())
|
|
781
566
|
{
|
|
782
|
-
|
|
783
|
-
// Only add endpoints if not already in the locator proxy endpoints
|
|
784
|
-
//
|
|
785
|
-
bool found = false;
|
|
786
|
-
for(Ice::EndpointSeq::const_iterator q = newEndpoints.begin(); q != newEndpoints.end(); ++q)
|
|
567
|
+
if (std::find(newEndpoints.begin(), newEndpoints.end(), endpoint) == newEndpoints.end())
|
|
787
568
|
{
|
|
788
|
-
|
|
789
|
-
{
|
|
790
|
-
found = true;
|
|
791
|
-
break;
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
if(!found)
|
|
795
|
-
{
|
|
796
|
-
newEndpoints.push_back(*p);
|
|
569
|
+
newEndpoints.push_back(endpoint);
|
|
797
570
|
}
|
|
798
571
|
}
|
|
799
|
-
|
|
572
|
+
i->second = i->second->ice_endpoints(newEndpoints);
|
|
800
573
|
}
|
|
801
574
|
else
|
|
802
575
|
{
|
|
803
|
-
|
|
576
|
+
_locators.insert(make_pair(locator->ice_getIdentity().category, locator));
|
|
804
577
|
}
|
|
805
578
|
|
|
806
|
-
|
|
579
|
+
Ice::LocatorPrx l = i == _locators.end() ? locator : i->second;
|
|
580
|
+
|
|
581
|
+
if (_pendingRequests.empty())
|
|
807
582
|
{
|
|
808
|
-
|
|
809
|
-
notify();
|
|
583
|
+
_conditionVariable.notify_one();
|
|
810
584
|
}
|
|
811
585
|
else
|
|
812
586
|
{
|
|
813
587
|
_locator = l;
|
|
814
|
-
if(_instanceName.empty())
|
|
588
|
+
if (_instanceName.empty())
|
|
815
589
|
{
|
|
816
590
|
_instanceName = _locator->ice_getIdentity().category; // Stick to the first discovered locator.
|
|
817
591
|
}
|
|
818
592
|
|
|
819
|
-
//
|
|
820
593
|
// Send pending requests if any.
|
|
821
|
-
|
|
822
|
-
for(vector<RequestPtr>::const_iterator p = _pendingRequests.begin(); p != _pendingRequests.end(); ++p)
|
|
594
|
+
for (const auto& pendingRequest : _pendingRequests)
|
|
823
595
|
{
|
|
824
|
-
|
|
596
|
+
pendingRequest->invoke(l);
|
|
825
597
|
}
|
|
826
598
|
_pendingRequests.clear();
|
|
827
599
|
}
|
|
828
600
|
}
|
|
829
601
|
|
|
830
602
|
void
|
|
831
|
-
LocatorI::invoke(const Ice::
|
|
603
|
+
LocatorI::invoke(const optional<Ice::LocatorPrx>& locator, const RequestPtr& request)
|
|
832
604
|
{
|
|
833
|
-
|
|
834
|
-
if(request && _locator && _locator != locator)
|
|
605
|
+
lock_guard lock(_mutex);
|
|
606
|
+
if (request && _locator && _locator != locator)
|
|
835
607
|
{
|
|
836
|
-
request->invoke(_locator);
|
|
608
|
+
request->invoke(*_locator);
|
|
837
609
|
}
|
|
838
|
-
else if(request &&
|
|
610
|
+
else if (request && chrono::steady_clock::now() < _nextRetry)
|
|
839
611
|
{
|
|
840
612
|
request->invoke(_voidLocator); // Don't retry to find a locator before the retry delay expires
|
|
841
613
|
}
|
|
842
614
|
else
|
|
843
615
|
{
|
|
844
|
-
_locator =
|
|
616
|
+
_locator = nullopt;
|
|
845
617
|
|
|
846
|
-
if(request)
|
|
618
|
+
if (request)
|
|
847
619
|
{
|
|
848
620
|
_pendingRequests.push_back(request);
|
|
849
621
|
}
|
|
850
622
|
|
|
851
|
-
if(!_pending) // No request in progress
|
|
623
|
+
if (!_pending) // No request in progress
|
|
852
624
|
{
|
|
853
625
|
_pending = true;
|
|
854
626
|
_failureCount = 0;
|
|
855
627
|
_pendingRetryCount = _retryCount;
|
|
856
628
|
try
|
|
857
629
|
{
|
|
858
|
-
if(_traceLevel > 1)
|
|
630
|
+
if (_traceLevel > 1)
|
|
859
631
|
{
|
|
860
632
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
861
633
|
out << "looking up locator:\nlookup = " << _lookup;
|
|
862
|
-
if(!_instanceName.empty())
|
|
634
|
+
if (!_instanceName.empty())
|
|
863
635
|
{
|
|
864
636
|
out << "\ninstance name = " << _instanceName;
|
|
865
637
|
}
|
|
866
638
|
}
|
|
867
|
-
for(
|
|
868
|
-
l != _lookups.end(); ++l)
|
|
639
|
+
for (const auto& l : _lookups)
|
|
869
640
|
{
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
{
|
|
876
|
-
rethrow_exception(ex);
|
|
877
|
-
}
|
|
878
|
-
catch(const Ice::LocalException& e)
|
|
879
|
-
{
|
|
880
|
-
self->exception(e);
|
|
881
|
-
}
|
|
882
|
-
});
|
|
883
|
-
#else
|
|
884
|
-
l->first->begin_findLocator(_instanceName, l->second, Ice::newCallback(new CallbackI(this),
|
|
885
|
-
&CallbackI::completed));
|
|
886
|
-
#endif
|
|
641
|
+
l.first->findLocatorAsync(
|
|
642
|
+
_instanceName,
|
|
643
|
+
l.second,
|
|
644
|
+
nullptr,
|
|
645
|
+
[self = shared_from_this()](exception_ptr ex) { self->exception(ex); });
|
|
887
646
|
}
|
|
888
|
-
_timer->schedule(
|
|
647
|
+
_timer->schedule(shared_from_this(), _timeout);
|
|
889
648
|
}
|
|
890
|
-
catch(const Ice::LocalException& ex)
|
|
649
|
+
catch (const Ice::LocalException& ex)
|
|
891
650
|
{
|
|
892
|
-
if(_traceLevel > 0)
|
|
651
|
+
if (_traceLevel > 0)
|
|
893
652
|
{
|
|
894
653
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
895
654
|
out << "locator lookup failed:\nlookup = " << _lookup;
|
|
896
|
-
if(!_instanceName.empty())
|
|
655
|
+
if (!_instanceName.empty())
|
|
897
656
|
{
|
|
898
657
|
out << "\ninstance name = " << _instanceName;
|
|
899
658
|
}
|
|
900
659
|
out << "\n" << ex;
|
|
901
660
|
}
|
|
902
661
|
|
|
903
|
-
for(
|
|
662
|
+
for (const auto& pendingRequest : _pendingRequests)
|
|
904
663
|
{
|
|
905
|
-
|
|
664
|
+
pendingRequest->invoke(_voidLocator);
|
|
906
665
|
}
|
|
907
666
|
_pendingRequests.clear();
|
|
908
667
|
_pending = false;
|
|
@@ -913,47 +672,62 @@ LocatorI::invoke(const Ice::LocatorPrxPtr& locator, const RequestPtr& request)
|
|
|
913
672
|
}
|
|
914
673
|
|
|
915
674
|
void
|
|
916
|
-
LocatorI::exception(
|
|
675
|
+
LocatorI::exception(std::exception_ptr ex)
|
|
917
676
|
{
|
|
918
|
-
|
|
919
|
-
if(++_failureCount == _lookups.size() && _pending)
|
|
677
|
+
lock_guard lock(_mutex);
|
|
678
|
+
if (++_failureCount == _lookups.size() && _pending)
|
|
920
679
|
{
|
|
921
680
|
//
|
|
922
681
|
// All the lookup calls failed, cancel the timer and propagate the error to the requests.
|
|
923
682
|
//
|
|
924
|
-
_timer->cancel(
|
|
683
|
+
_timer->cancel(shared_from_this());
|
|
925
684
|
_pendingRetryCount = 0;
|
|
926
685
|
_pending = false;
|
|
927
686
|
|
|
928
|
-
if(_warnOnce)
|
|
687
|
+
if (_warnOnce)
|
|
929
688
|
{
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
689
|
+
try
|
|
690
|
+
{
|
|
691
|
+
rethrow_exception(ex);
|
|
692
|
+
}
|
|
693
|
+
catch (const std::exception& e)
|
|
694
|
+
{
|
|
695
|
+
Ice::Warning warn(_lookup->ice_getCommunicator()->getLogger());
|
|
696
|
+
warn << "failed to lookup locator with lookup proxy '" << _lookup << "':\n" << e;
|
|
697
|
+
_warnOnce = false;
|
|
698
|
+
}
|
|
933
699
|
}
|
|
934
700
|
|
|
935
|
-
if(_traceLevel > 0)
|
|
701
|
+
if (_traceLevel > 0)
|
|
936
702
|
{
|
|
937
703
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
938
704
|
out << "locator lookup failed:\nlookup = " << _lookup;
|
|
939
|
-
if(!_instanceName.empty())
|
|
705
|
+
if (!_instanceName.empty())
|
|
940
706
|
{
|
|
941
707
|
out << "\ninstance name = " << _instanceName;
|
|
942
708
|
}
|
|
943
|
-
|
|
709
|
+
|
|
710
|
+
try
|
|
711
|
+
{
|
|
712
|
+
rethrow_exception(ex);
|
|
713
|
+
}
|
|
714
|
+
catch (const std::exception& e)
|
|
715
|
+
{
|
|
716
|
+
out << "\n" << e;
|
|
717
|
+
}
|
|
944
718
|
}
|
|
945
719
|
|
|
946
|
-
if(_pendingRequests.empty())
|
|
720
|
+
if (_pendingRequests.empty())
|
|
947
721
|
{
|
|
948
|
-
|
|
722
|
+
_conditionVariable.notify_one();
|
|
949
723
|
}
|
|
950
724
|
else
|
|
951
725
|
{
|
|
952
|
-
for(
|
|
726
|
+
for (const auto& pendingRequest : _pendingRequests)
|
|
953
727
|
{
|
|
954
|
-
|
|
728
|
+
pendingRequest->invoke(_voidLocator);
|
|
955
729
|
}
|
|
956
|
-
|
|
730
|
+
_pendingRequests.clear();
|
|
957
731
|
}
|
|
958
732
|
}
|
|
959
733
|
}
|
|
@@ -961,53 +735,40 @@ LocatorI::exception(const Ice::LocalException& ex)
|
|
|
961
735
|
void
|
|
962
736
|
LocatorI::runTimerTask()
|
|
963
737
|
{
|
|
964
|
-
|
|
965
|
-
if(!_pending)
|
|
738
|
+
lock_guard lock(_mutex);
|
|
739
|
+
if (!_pending)
|
|
966
740
|
{
|
|
967
741
|
assert(_pendingRequests.empty());
|
|
968
742
|
return; // The request failed
|
|
969
743
|
}
|
|
970
744
|
|
|
971
|
-
if(_pendingRetryCount > 0)
|
|
745
|
+
if (_pendingRetryCount > 0)
|
|
972
746
|
{
|
|
973
747
|
--_pendingRetryCount;
|
|
974
748
|
try
|
|
975
749
|
{
|
|
976
|
-
if(_traceLevel > 1)
|
|
750
|
+
if (_traceLevel > 1)
|
|
977
751
|
{
|
|
978
752
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
979
753
|
out << "retrying locator lookup:\nlookup = " << _lookup << "\nretry count = " << _pendingRetryCount;
|
|
980
|
-
if(!_instanceName.empty())
|
|
754
|
+
if (!_instanceName.empty())
|
|
981
755
|
{
|
|
982
756
|
out << "\ninstance name = " << _instanceName;
|
|
983
757
|
}
|
|
984
758
|
}
|
|
985
759
|
_failureCount = 0;
|
|
986
|
-
for(
|
|
987
|
-
l != _lookups.end(); ++l)
|
|
760
|
+
for (const auto& l : _lookups)
|
|
988
761
|
{
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
l
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
{
|
|
995
|
-
rethrow_exception(ex);
|
|
996
|
-
}
|
|
997
|
-
catch(const Ice::LocalException& e)
|
|
998
|
-
{
|
|
999
|
-
self->exception(e);
|
|
1000
|
-
}
|
|
1001
|
-
});
|
|
1002
|
-
#else
|
|
1003
|
-
l->first->begin_findLocator(_instanceName, l->second, Ice::newCallback(new CallbackI(this),
|
|
1004
|
-
&CallbackI::completed));
|
|
1005
|
-
#endif
|
|
762
|
+
l.first->findLocatorAsync(
|
|
763
|
+
_instanceName,
|
|
764
|
+
l.second,
|
|
765
|
+
nullptr,
|
|
766
|
+
[self = shared_from_this()](exception_ptr ex) { self->exception(ex); });
|
|
1006
767
|
}
|
|
1007
|
-
_timer->schedule(
|
|
768
|
+
_timer->schedule(shared_from_this(), _timeout);
|
|
1008
769
|
return;
|
|
1009
770
|
}
|
|
1010
|
-
catch(const Ice::LocalException&)
|
|
771
|
+
catch (const Ice::LocalException&)
|
|
1011
772
|
{
|
|
1012
773
|
}
|
|
1013
774
|
_pendingRetryCount = 0;
|
|
@@ -1016,33 +777,34 @@ LocatorI::runTimerTask()
|
|
|
1016
777
|
assert(_pendingRetryCount == 0);
|
|
1017
778
|
_pending = false;
|
|
1018
779
|
|
|
1019
|
-
if(_traceLevel > 0)
|
|
780
|
+
if (_traceLevel > 0)
|
|
1020
781
|
{
|
|
1021
782
|
Ice::Trace out(_lookup->ice_getCommunicator()->getLogger(), "Lookup");
|
|
1022
783
|
out << "locator lookup timed out:\nlookup = " << _lookup;
|
|
1023
|
-
if(!_instanceName.empty())
|
|
784
|
+
if (!_instanceName.empty())
|
|
1024
785
|
{
|
|
1025
786
|
out << "\ninstance name = " << _instanceName;
|
|
1026
787
|
}
|
|
1027
788
|
}
|
|
1028
789
|
|
|
1029
|
-
if(_pendingRequests.empty())
|
|
790
|
+
if (_pendingRequests.empty())
|
|
1030
791
|
{
|
|
1031
|
-
|
|
792
|
+
_conditionVariable.notify_one();
|
|
1032
793
|
}
|
|
1033
794
|
else
|
|
1034
795
|
{
|
|
1035
|
-
for(
|
|
796
|
+
for (const auto& pendingRequest : _pendingRequests)
|
|
1036
797
|
{
|
|
1037
|
-
|
|
798
|
+
pendingRequest->invoke(_voidLocator); // Send pending requests on void locator.
|
|
1038
799
|
}
|
|
1039
|
-
|
|
800
|
+
_pendingRequests.clear();
|
|
1040
801
|
}
|
|
1041
|
-
_nextRetry =
|
|
802
|
+
_nextRetry = chrono::steady_clock::now() + _retryDelay; // Only retry when the retry delay expires
|
|
1042
803
|
}
|
|
1043
804
|
|
|
1044
805
|
void
|
|
1045
|
-
LookupReplyI::foundLocator(
|
|
806
|
+
LookupReplyI::foundLocator(optional<Ice::LocatorPrx> locator, const Ice::Current& current)
|
|
1046
807
|
{
|
|
1047
|
-
|
|
808
|
+
checkNotNull(locator, __FILE__, __LINE__, current);
|
|
809
|
+
_locator->foundLocator(*locator);
|
|
1048
810
|
}
|