zeroc-ice 3.6b1
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 +7 -0
- data/ICE_LICENSE +54 -0
- data/LICENSE +339 -0
- data/bin/slice2rb +17 -0
- data/ext/Communicator.cpp +596 -0
- data/ext/Communicator.h +25 -0
- data/ext/Config.h +111 -0
- data/ext/Connection.cpp +381 -0
- data/ext/Connection.h +26 -0
- data/ext/Endpoint.cpp +311 -0
- data/ext/Endpoint.h +27 -0
- data/ext/ImplicitContext.cpp +152 -0
- data/ext/ImplicitContext.h +25 -0
- data/ext/Init.cpp +52 -0
- data/ext/Logger.cpp +151 -0
- data/ext/Logger.h +28 -0
- data/ext/ObjectFactory.cpp +140 -0
- data/ext/ObjectFactory.h +50 -0
- data/ext/Operation.cpp +676 -0
- data/ext/Operation.h +36 -0
- data/ext/Properties.cpp +369 -0
- data/ext/Properties.h +25 -0
- data/ext/Proxy.cpp +1354 -0
- data/ext/Proxy.h +27 -0
- data/ext/Slice.cpp +223 -0
- data/ext/Slice.h +22 -0
- data/ext/Types.cpp +3160 -0
- data/ext/Types.h +545 -0
- data/ext/Util.cpp +792 -0
- data/ext/Util.h +511 -0
- data/ext/extconf.rb +118 -0
- data/ext/ice/BZIP_LICENSE +42 -0
- data/ext/ice/MCPP_LICENSE +36 -0
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/ACMF.h +30 -0
- data/ext/ice/cpp/include/Ice/Application.h +156 -0
- data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
- data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
- data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
- data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/Config.h +97 -0
- data/ext/ice/cpp/include/Ice/Connection.h +495 -0
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
- data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
- data/ext/ice/cpp/include/Ice/Current.h +94 -0
- data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
- data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
- data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
- data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
- data/ext/ice/cpp/include/Ice/Exception.h +114 -0
- data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
- data/ext/ice/cpp/include/Ice/Format.h +39 -0
- data/ext/ice/cpp/include/Ice/Functional.h +138 -0
- data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
- data/ext/ice/cpp/include/Ice/Handle.h +192 -0
- data/ext/ice/cpp/include/Ice/Ice.h +54 -0
- data/ext/ice/cpp/include/Ice/Identity.h +160 -0
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
- data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
- data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
- data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
- data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
- data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
- data/ext/ice/cpp/include/Ice/Logger.h +94 -0
- data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
- data/ext/ice/cpp/include/Ice/Makefile +26 -0
- data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
- data/ext/ice/cpp/include/Ice/Object.h +165 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
- data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
- data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
- data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
- data/ext/ice/cpp/include/Ice/Process.h +568 -0
- data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
- data/ext/ice/cpp/include/Ice/Properties.h +130 -0
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
- data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
- data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
- data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
- data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
- data/ext/ice/cpp/include/Ice/Router.h +1155 -0
- data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
- data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/Service.h +260 -0
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
- data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
- data/ext/ice/cpp/include/Ice/Stream.h +449 -0
- data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
- data/ext/ice/cpp/include/Ice/Version.h +254 -0
- data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
- data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
- data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
- data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
- data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
- data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
- data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
- data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
- data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
- data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
- data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
- data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
- data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
- data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
- data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
- data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
- data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
- data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
- data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
- data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
- data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
- data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
- data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
- data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
- data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
- data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
- data/ext/ice/cpp/include/Slice/Makefile +26 -0
- data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
- data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
- data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
- data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
- data/ext/ice/cpp/include/Slice/Util.h +33 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
- data/ext/ice/cpp/src/Ice/ACM.h +117 -0
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
- data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
- data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
- data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
- data/ext/ice/cpp/src/Ice/Base64.h +36 -0
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
- data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
- data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
- data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Connector.h +36 -0
- data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
- data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
- data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
- data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
- data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
- data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
- data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
- data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
- data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
- data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
- data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
- data/ext/ice/cpp/src/Ice/Instance.h +198 -0
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
- data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
- data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
- data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
- data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
- data/ext/ice/cpp/src/Ice/Makefile +190 -0
- data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
- data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
- data/ext/ice/cpp/src/Ice/Network.h +291 -0
- data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
- data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
- data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
- data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
- data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
- data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
- data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
- data/ext/ice/cpp/src/Ice/Reference.h +305 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
- data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
- data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
- data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
- data/ext/ice/cpp/src/Ice/Selector.h +231 -0
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
- data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
- data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
- data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
- data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
- data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
- data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
- data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
- data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
- data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
- data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
- data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
- data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
- data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
- data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
- data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
- data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
- data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
- data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
- data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
- data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
- data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
- data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
- data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
- data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
- data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
- data/ext/ice/cpp/src/Slice/MD5.h +44 -0
- data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
- data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
- data/ext/ice/cpp/src/Slice/Makefile +65 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
- data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
- data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
- data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
- data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
- data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
- data/ext/ice/mcpp/config.h.Darwin +227 -0
- data/ext/ice/mcpp/config.h.Linux +227 -0
- data/ext/ice/mcpp/config.h.MINGW +7 -0
- data/ext/ice/mcpp/configed.H +382 -0
- data/ext/ice/mcpp/directive.c +1699 -0
- data/ext/ice/mcpp/eval.c +1673 -0
- data/ext/ice/mcpp/expand.c +2980 -0
- data/ext/ice/mcpp/internal.H +564 -0
- data/ext/ice/mcpp/main.c +1131 -0
- data/ext/ice/mcpp/mbchar.c +869 -0
- data/ext/ice/mcpp/mcpp_lib.h +31 -0
- data/ext/ice/mcpp/mcpp_out.h +13 -0
- data/ext/ice/mcpp/support.c +2811 -0
- data/ext/ice/mcpp/system.H +396 -0
- data/ext/ice/mcpp/system.c +4940 -0
- data/ice.gemspec +41 -0
- data/lib/Glacier2.rb +12 -0
- data/lib/Glacier2/Metrics.rb +99 -0
- data/lib/Glacier2/PermissionsVerifier.rb +168 -0
- data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
- data/lib/Glacier2/Router.rb +141 -0
- data/lib/Glacier2/RouterF.rb +29 -0
- data/lib/Glacier2/SSLInfo.rb +79 -0
- data/lib/Glacier2/Session.rb +470 -0
- data/lib/Ice.rb +659 -0
- data/lib/Ice/BuiltinSequences.rb +64 -0
- data/lib/Ice/Communicator.rb +93 -0
- data/lib/Ice/CommunicatorF.rb +28 -0
- data/lib/Ice/Connection.rb +414 -0
- data/lib/Ice/ConnectionF.rb +36 -0
- data/lib/Ice/Current.rb +152 -0
- data/lib/Ice/Endpoint.rb +265 -0
- data/lib/Ice/EndpointF.rb +52 -0
- data/lib/Ice/EndpointTypes.rb +77 -0
- data/lib/Ice/FacetMap.rb +28 -0
- data/lib/Ice/Identity.rb +70 -0
- data/lib/Ice/ImplicitContext.rb +59 -0
- data/lib/Ice/ImplicitContextF.rb +28 -0
- data/lib/Ice/Instrumentation.rb +425 -0
- data/lib/Ice/InstrumentationF.rb +35 -0
- data/lib/Ice/LocalException.rb +1081 -0
- data/lib/Ice/Locator.rb +314 -0
- data/lib/Ice/LocatorF.rb +34 -0
- data/lib/Ice/Logger.rb +57 -0
- data/lib/Ice/LoggerF.rb +28 -0
- data/lib/Ice/Metrics.rb +696 -0
- data/lib/Ice/ObjectAdapterF.rb +28 -0
- data/lib/Ice/ObjectFactory.rb +53 -0
- data/lib/Ice/ObjectFactoryF.rb +28 -0
- data/lib/Ice/Plugin.rb +87 -0
- data/lib/Ice/PluginF.rb +32 -0
- data/lib/Ice/Process.rb +93 -0
- data/lib/Ice/ProcessF.rb +29 -0
- data/lib/Ice/Properties.rb +65 -0
- data/lib/Ice/PropertiesAdmin.rb +104 -0
- data/lib/Ice/PropertiesF.rb +33 -0
- data/lib/Ice/Router.rb +163 -0
- data/lib/Ice/RouterF.rb +29 -0
- data/lib/Ice/SliceChecksumDict.rb +28 -0
- data/lib/Ice/Version.rb +100 -0
- data/lib/IceBox.rb +10 -0
- data/lib/IceBox/IceBox.rb +272 -0
- data/lib/IceGrid.rb +17 -0
- data/lib/IceGrid/Admin.rb +1076 -0
- data/lib/IceGrid/Descriptor.rb +1505 -0
- data/lib/IceGrid/Exception.rb +401 -0
- data/lib/IceGrid/FileParser.rb +105 -0
- data/lib/IceGrid/Locator.rb +105 -0
- data/lib/IceGrid/Observer.rb +571 -0
- data/lib/IceGrid/Query.rb +168 -0
- data/lib/IceGrid/Registry.rb +120 -0
- data/lib/IceGrid/Session.rb +114 -0
- data/lib/IceGrid/UserAccountMapper.rb +101 -0
- data/lib/IcePatch2.rb +10 -0
- data/lib/IcePatch2/FileInfo.rb +75 -0
- data/lib/IcePatch2/FileServer.rb +141 -0
- data/lib/IceStorm.rb +11 -0
- data/lib/IceStorm/IceStorm.rb +463 -0
- data/lib/IceStorm/Metrics.rb +155 -0
- data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
- data/slice/Freeze/CatalogData.ice +49 -0
- data/slice/Freeze/Connection.ice +111 -0
- data/slice/Freeze/ConnectionF.ice +20 -0
- data/slice/Freeze/DB.ice +37 -0
- data/slice/Freeze/Evictor.ice +339 -0
- data/slice/Freeze/EvictorF.ice +22 -0
- data/slice/Freeze/EvictorStorage.ice +72 -0
- data/slice/Freeze/Exception.ice +100 -0
- data/slice/Freeze/Transaction.ice +57 -0
- data/slice/Freeze/TransactionalEvictor.ice +50 -0
- data/slice/Glacier2/Metrics.ice +77 -0
- data/slice/Glacier2/PermissionsVerifier.ice +105 -0
- data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
- data/slice/Glacier2/Router.ice +178 -0
- data/slice/Glacier2/RouterF.ice +20 -0
- data/slice/Glacier2/SSLInfo.ice +50 -0
- data/slice/Glacier2/Session.ice +273 -0
- data/slice/Ice/BuiltinSequences.ice +48 -0
- data/slice/Ice/Communicator.ice +567 -0
- data/slice/Ice/CommunicatorF.ice +20 -0
- data/slice/Ice/Connection.ice +323 -0
- data/slice/Ice/ConnectionF.ice +22 -0
- data/slice/Ice/Current.ice +160 -0
- data/slice/Ice/Endpoint.ice +227 -0
- data/slice/Ice/EndpointF.ice +32 -0
- data/slice/Ice/EndpointTypes.ice +38 -0
- data/slice/Ice/FacetMap.ice +25 -0
- data/slice/Ice/Identity.ice +59 -0
- data/slice/Ice/ImplicitContext.ice +109 -0
- data/slice/Ice/ImplicitContextF.ice +20 -0
- data/slice/Ice/Instrumentation.ice +499 -0
- data/slice/Ice/InstrumentationF.ice +26 -0
- data/slice/Ice/LocalException.ice +1015 -0
- data/slice/Ice/Locator.ice +227 -0
- data/slice/Ice/LocatorF.ice +21 -0
- data/slice/Ice/Logger.ice +86 -0
- data/slice/Ice/LoggerF.ice +20 -0
- data/slice/Ice/Metrics.ice +422 -0
- data/slice/Ice/ObjectAdapter.ice +673 -0
- data/slice/Ice/ObjectAdapterF.ice +20 -0
- data/slice/Ice/ObjectFactory.ice +60 -0
- data/slice/Ice/ObjectFactoryF.ice +20 -0
- data/slice/Ice/Plugin.ice +117 -0
- data/slice/Ice/PluginF.ice +21 -0
- data/slice/Ice/Process.ice +54 -0
- data/slice/Ice/ProcessF.ice +20 -0
- data/slice/Ice/Properties.ice +228 -0
- data/slice/Ice/PropertiesAdmin.ice +75 -0
- data/slice/Ice/PropertiesF.ice +21 -0
- data/slice/Ice/RemoteLogger.ice +232 -0
- data/slice/Ice/Router.ice +83 -0
- data/slice/Ice/RouterF.ice +20 -0
- data/slice/Ice/ServantLocator.ice +117 -0
- data/slice/Ice/ServantLocatorF.ice +20 -0
- data/slice/Ice/SliceChecksumDict.ice +25 -0
- data/slice/Ice/Version.ice +39 -0
- data/slice/IceBox/IceBox.ice +194 -0
- data/slice/IceDiscovery/IceDiscovery.ice +32 -0
- data/slice/IceGrid/Admin.ice +1578 -0
- data/slice/IceGrid/Descriptor.ice +1079 -0
- data/slice/IceGrid/Discovery.ice +73 -0
- data/slice/IceGrid/Exception.ice +383 -0
- data/slice/IceGrid/FileParser.ice +61 -0
- data/slice/IceGrid/Locator.ice +56 -0
- data/slice/IceGrid/Observer.ice +394 -0
- data/slice/IceGrid/PluginFacade.ice +316 -0
- data/slice/IceGrid/Query.ice +130 -0
- data/slice/IceGrid/Registry.ice +138 -0
- data/slice/IceGrid/Session.ice +124 -0
- data/slice/IceGrid/UserAccountMapper.ice +58 -0
- data/slice/IcePatch2/FileInfo.ice +49 -0
- data/slice/IcePatch2/FileServer.ice +129 -0
- data/slice/IceSSL/ConnectionInfo.ice +34 -0
- data/slice/IceSSL/EndpointInfo.ice +41 -0
- data/slice/IceStorm/IceStorm.ice +405 -0
- data/slice/IceStorm/Metrics.ice +71 -0
- metadata +737 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICE_REFERENCE_H
|
|
11
|
+
#define ICE_REFERENCE_H
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/Shared.h>
|
|
14
|
+
#include <Ice/ReferenceF.h>
|
|
15
|
+
#include <Ice/ReferenceFactoryF.h>
|
|
16
|
+
#include <Ice/EndpointIF.h>
|
|
17
|
+
#include <Ice/InstanceF.h>
|
|
18
|
+
#include <Ice/RouterF.h>
|
|
19
|
+
#include <Ice/LocatorF.h>
|
|
20
|
+
#include <Ice/RouterInfoF.h>
|
|
21
|
+
#include <Ice/LocatorInfoF.h>
|
|
22
|
+
#include <Ice/ConnectionIF.h>
|
|
23
|
+
#include <Ice/SharedContext.h>
|
|
24
|
+
#include <Ice/Identity.h>
|
|
25
|
+
#include <Ice/Protocol.h>
|
|
26
|
+
#include <Ice/Properties.h>
|
|
27
|
+
|
|
28
|
+
namespace IceInternal
|
|
29
|
+
{
|
|
30
|
+
|
|
31
|
+
class BasicStream;
|
|
32
|
+
|
|
33
|
+
class Reference : public IceUtil::Shared
|
|
34
|
+
{
|
|
35
|
+
public:
|
|
36
|
+
|
|
37
|
+
class GetConnectionCallback : virtual public IceUtil::Shared
|
|
38
|
+
{
|
|
39
|
+
public:
|
|
40
|
+
|
|
41
|
+
virtual void setConnection(const Ice::ConnectionIPtr&, bool) = 0;
|
|
42
|
+
virtual void setException(const Ice::LocalException&) = 0;
|
|
43
|
+
};
|
|
44
|
+
typedef IceUtil::Handle<GetConnectionCallback> GetConnectionCallbackPtr;
|
|
45
|
+
|
|
46
|
+
enum Mode
|
|
47
|
+
{
|
|
48
|
+
ModeTwoway,
|
|
49
|
+
ModeOneway,
|
|
50
|
+
ModeBatchOneway,
|
|
51
|
+
ModeDatagram,
|
|
52
|
+
ModeBatchDatagram,
|
|
53
|
+
ModeLast = ModeBatchDatagram
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
Mode getMode() const { return _mode; }
|
|
57
|
+
bool getSecure() const { return _secure; }
|
|
58
|
+
const Ice::ProtocolVersion& getProtocol() const { return _protocol; }
|
|
59
|
+
const Ice::EncodingVersion& getEncoding() const { return _encoding; }
|
|
60
|
+
const Ice::Identity& getIdentity() const { return _identity; }
|
|
61
|
+
const std::string& getFacet() const { return _facet; }
|
|
62
|
+
const InstancePtr& getInstance() const { return _instance; }
|
|
63
|
+
const SharedContextPtr& getContext() const { return _context; }
|
|
64
|
+
int getInvocationTimeout() const { return _invocationTimeout; }
|
|
65
|
+
|
|
66
|
+
Ice::CommunicatorPtr getCommunicator() const;
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
virtual std::vector<EndpointIPtr> getEndpoints() const = 0;
|
|
70
|
+
virtual std::string getAdapterId() const = 0;
|
|
71
|
+
virtual LocatorInfoPtr getLocatorInfo() const { return 0; }
|
|
72
|
+
virtual RouterInfoPtr getRouterInfo() const { return 0; }
|
|
73
|
+
virtual bool getCollocationOptimized() const = 0;
|
|
74
|
+
virtual bool getCacheConnection() const = 0;
|
|
75
|
+
virtual bool getPreferSecure() const = 0;
|
|
76
|
+
virtual Ice::EndpointSelectionType getEndpointSelection() const = 0;
|
|
77
|
+
virtual int getLocatorCacheTimeout() const = 0;
|
|
78
|
+
virtual std::string getConnectionId() const = 0;
|
|
79
|
+
|
|
80
|
+
//
|
|
81
|
+
// The change* methods (here and in derived classes) create
|
|
82
|
+
// a new reference based on the existing one, with the
|
|
83
|
+
// corresponding value changed.
|
|
84
|
+
//
|
|
85
|
+
ReferencePtr changeContext(const Ice::Context&) const;
|
|
86
|
+
ReferencePtr changeMode(Mode) const;
|
|
87
|
+
ReferencePtr changeSecure(bool) const;
|
|
88
|
+
ReferencePtr changeIdentity(const Ice::Identity&) const;
|
|
89
|
+
ReferencePtr changeFacet(const std::string&) const;
|
|
90
|
+
ReferencePtr changeInvocationTimeout(int) const;
|
|
91
|
+
virtual ReferencePtr changeEncoding(const Ice::EncodingVersion&) const;
|
|
92
|
+
virtual ReferencePtr changeCompress(bool) const;
|
|
93
|
+
|
|
94
|
+
virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const = 0;
|
|
95
|
+
virtual ReferencePtr changeAdapterId(const std::string&) const = 0;
|
|
96
|
+
virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const = 0;
|
|
97
|
+
virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const = 0;
|
|
98
|
+
virtual ReferencePtr changeCollocationOptimized(bool) const = 0;
|
|
99
|
+
virtual ReferencePtr changeLocatorCacheTimeout(int) const = 0;
|
|
100
|
+
virtual ReferencePtr changeCacheConnection(bool) const = 0;
|
|
101
|
+
virtual ReferencePtr changePreferSecure(bool) const = 0;
|
|
102
|
+
virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const = 0;
|
|
103
|
+
|
|
104
|
+
virtual ReferencePtr changeTimeout(int) const = 0;
|
|
105
|
+
virtual ReferencePtr changeConnectionId(const std::string&) const = 0;
|
|
106
|
+
|
|
107
|
+
int hash() const; // Conceptually const.
|
|
108
|
+
|
|
109
|
+
//
|
|
110
|
+
// Utility methods.
|
|
111
|
+
//
|
|
112
|
+
virtual bool isIndirect() const = 0;
|
|
113
|
+
virtual bool isWellKnown() const = 0;
|
|
114
|
+
|
|
115
|
+
//
|
|
116
|
+
// Marshal the reference.
|
|
117
|
+
//
|
|
118
|
+
virtual void streamWrite(BasicStream*) const;
|
|
119
|
+
|
|
120
|
+
//
|
|
121
|
+
// Convert the reference to its string form.
|
|
122
|
+
//
|
|
123
|
+
virtual std::string toString() const;
|
|
124
|
+
|
|
125
|
+
//
|
|
126
|
+
// Convert the refernce to its property form.
|
|
127
|
+
//
|
|
128
|
+
virtual Ice::PropertyDict toProperty(const std::string&) const = 0;
|
|
129
|
+
|
|
130
|
+
//
|
|
131
|
+
// Get a suitable connection for this reference.
|
|
132
|
+
//
|
|
133
|
+
virtual void getConnection(const GetConnectionCallbackPtr&) const = 0;
|
|
134
|
+
|
|
135
|
+
virtual bool operator==(const Reference&) const;
|
|
136
|
+
virtual bool operator!=(const Reference&) const;
|
|
137
|
+
virtual bool operator<(const Reference&) const;
|
|
138
|
+
|
|
139
|
+
virtual ReferencePtr clone() const = 0;
|
|
140
|
+
|
|
141
|
+
protected:
|
|
142
|
+
|
|
143
|
+
Reference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode, bool,
|
|
144
|
+
const Ice::ProtocolVersion&, const Ice::EncodingVersion&, int, const Ice::Context& ctx);
|
|
145
|
+
Reference(const Reference&);
|
|
146
|
+
|
|
147
|
+
virtual Ice::Int hashInit() const;
|
|
148
|
+
|
|
149
|
+
mutable Ice::Int _hashValue;
|
|
150
|
+
mutable bool _hashInitialized;
|
|
151
|
+
|
|
152
|
+
private:
|
|
153
|
+
|
|
154
|
+
const InstancePtr _instance;
|
|
155
|
+
const Ice::CommunicatorPtr _communicator;
|
|
156
|
+
|
|
157
|
+
Mode _mode;
|
|
158
|
+
bool _secure;
|
|
159
|
+
Ice::Identity _identity;
|
|
160
|
+
SharedContextPtr _context;
|
|
161
|
+
std::string _facet;
|
|
162
|
+
Ice::ProtocolVersion _protocol;
|
|
163
|
+
Ice::EncodingVersion _encoding;
|
|
164
|
+
int _invocationTimeout;
|
|
165
|
+
|
|
166
|
+
protected:
|
|
167
|
+
|
|
168
|
+
bool _overrideCompress;
|
|
169
|
+
bool _compress; // Only used if _overrideCompress == true
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
class FixedReference : public Reference
|
|
173
|
+
{
|
|
174
|
+
public:
|
|
175
|
+
|
|
176
|
+
FixedReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode,
|
|
177
|
+
bool, const Ice::EncodingVersion&, const Ice::ConnectionIPtr&);
|
|
178
|
+
|
|
179
|
+
virtual std::vector<EndpointIPtr> getEndpoints() const;
|
|
180
|
+
virtual std::string getAdapterId() const;
|
|
181
|
+
virtual bool getCollocationOptimized() const;
|
|
182
|
+
virtual bool getCacheConnection() const;
|
|
183
|
+
virtual bool getPreferSecure() const;
|
|
184
|
+
virtual Ice::EndpointSelectionType getEndpointSelection() const;
|
|
185
|
+
virtual int getLocatorCacheTimeout() const;
|
|
186
|
+
virtual std::string getConnectionId() const;
|
|
187
|
+
|
|
188
|
+
virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const;
|
|
189
|
+
virtual ReferencePtr changeAdapterId(const std::string&) const;
|
|
190
|
+
virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const;
|
|
191
|
+
virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const;
|
|
192
|
+
virtual ReferencePtr changeCollocationOptimized(bool) const;
|
|
193
|
+
virtual ReferencePtr changeCacheConnection(bool) const;
|
|
194
|
+
virtual ReferencePtr changePreferSecure(bool) const;
|
|
195
|
+
virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const;
|
|
196
|
+
virtual ReferencePtr changeLocatorCacheTimeout(int) const;
|
|
197
|
+
|
|
198
|
+
virtual ReferencePtr changeTimeout(int) const;
|
|
199
|
+
virtual ReferencePtr changeConnectionId(const std::string&) const;
|
|
200
|
+
|
|
201
|
+
virtual bool isIndirect() const;
|
|
202
|
+
virtual bool isWellKnown() const;
|
|
203
|
+
|
|
204
|
+
virtual void streamWrite(BasicStream*) const;
|
|
205
|
+
virtual std::string toString() const;
|
|
206
|
+
virtual Ice::PropertyDict toProperty(const std::string&) const;
|
|
207
|
+
|
|
208
|
+
virtual void getConnection(const GetConnectionCallbackPtr&) const;
|
|
209
|
+
|
|
210
|
+
virtual bool operator==(const Reference&) const;
|
|
211
|
+
virtual bool operator!=(const Reference&) const;
|
|
212
|
+
virtual bool operator<(const Reference&) const;
|
|
213
|
+
|
|
214
|
+
virtual ReferencePtr clone() const;
|
|
215
|
+
|
|
216
|
+
private:
|
|
217
|
+
|
|
218
|
+
FixedReference(const FixedReference&);
|
|
219
|
+
|
|
220
|
+
Ice::ConnectionIPtr _fixedConnection;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
class RoutableReference : public Reference
|
|
224
|
+
{
|
|
225
|
+
public:
|
|
226
|
+
|
|
227
|
+
RoutableReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const std::string&, Mode,
|
|
228
|
+
bool, const Ice::ProtocolVersion&, const Ice::EncodingVersion&, const std::vector<EndpointIPtr>&,
|
|
229
|
+
const std::string&, const LocatorInfoPtr&, const RouterInfoPtr&, bool, bool, bool,
|
|
230
|
+
Ice::EndpointSelectionType, int, int, const Ice::Context&);
|
|
231
|
+
|
|
232
|
+
virtual std::vector<EndpointIPtr> getEndpoints() const;
|
|
233
|
+
virtual std::string getAdapterId() const;
|
|
234
|
+
virtual LocatorInfoPtr getLocatorInfo() const;
|
|
235
|
+
virtual RouterInfoPtr getRouterInfo() const;
|
|
236
|
+
virtual bool getCollocationOptimized() const;
|
|
237
|
+
virtual bool getCacheConnection() const;
|
|
238
|
+
virtual bool getPreferSecure() const;
|
|
239
|
+
virtual Ice::EndpointSelectionType getEndpointSelection() const;
|
|
240
|
+
virtual int getLocatorCacheTimeout() const;
|
|
241
|
+
virtual std::string getConnectionId() const;
|
|
242
|
+
|
|
243
|
+
virtual ReferencePtr changeEncoding(const Ice::EncodingVersion&) const;
|
|
244
|
+
virtual ReferencePtr changeCompress(bool) const;
|
|
245
|
+
virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const;
|
|
246
|
+
virtual ReferencePtr changeAdapterId(const std::string&) const;
|
|
247
|
+
virtual ReferencePtr changeLocator(const Ice::LocatorPrx&) const;
|
|
248
|
+
virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const;
|
|
249
|
+
virtual ReferencePtr changeCollocationOptimized(bool) const;
|
|
250
|
+
virtual ReferencePtr changeCacheConnection(bool) const;
|
|
251
|
+
virtual ReferencePtr changePreferSecure(bool) const;
|
|
252
|
+
virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const;
|
|
253
|
+
virtual ReferencePtr changeLocatorCacheTimeout(int) const;
|
|
254
|
+
|
|
255
|
+
virtual ReferencePtr changeTimeout(int) const;
|
|
256
|
+
virtual ReferencePtr changeConnectionId(const std::string&) const;
|
|
257
|
+
|
|
258
|
+
virtual bool isIndirect() const;
|
|
259
|
+
virtual bool isWellKnown() const;
|
|
260
|
+
|
|
261
|
+
virtual void streamWrite(BasicStream*) const;
|
|
262
|
+
virtual std::string toString() const;
|
|
263
|
+
virtual Ice::PropertyDict toProperty(const std::string&) const;
|
|
264
|
+
|
|
265
|
+
virtual bool operator==(const Reference&) const;
|
|
266
|
+
virtual bool operator!=(const Reference&) const;
|
|
267
|
+
virtual bool operator<(const Reference&) const;
|
|
268
|
+
|
|
269
|
+
virtual ReferencePtr clone() const;
|
|
270
|
+
|
|
271
|
+
virtual void getConnection(const GetConnectionCallbackPtr&) const;
|
|
272
|
+
virtual void getConnectionNoRouterInfo(const GetConnectionCallbackPtr&) const;
|
|
273
|
+
|
|
274
|
+
void createConnection(const std::vector<EndpointIPtr>&, const GetConnectionCallbackPtr&) const;
|
|
275
|
+
void applyOverrides(std::vector<EndpointIPtr>&) const;
|
|
276
|
+
|
|
277
|
+
protected:
|
|
278
|
+
|
|
279
|
+
RoutableReference(const RoutableReference&);
|
|
280
|
+
|
|
281
|
+
std::vector<EndpointIPtr> filterEndpoints(const std::vector<EndpointIPtr>&) const;
|
|
282
|
+
|
|
283
|
+
virtual int hashInit() const;
|
|
284
|
+
|
|
285
|
+
private:
|
|
286
|
+
|
|
287
|
+
std::vector<EndpointIPtr> _endpoints; // Empty if indirect proxy.
|
|
288
|
+
std::string _adapterId; // Empty if direct proxy.
|
|
289
|
+
|
|
290
|
+
LocatorInfoPtr _locatorInfo; // Null if no locator is used.
|
|
291
|
+
RouterInfoPtr _routerInfo; // Null if no router is used.
|
|
292
|
+
bool _collocationOptimized;
|
|
293
|
+
bool _cacheConnection;
|
|
294
|
+
bool _preferSecure;
|
|
295
|
+
Ice::EndpointSelectionType _endpointSelection;
|
|
296
|
+
int _locatorCacheTimeout;
|
|
297
|
+
|
|
298
|
+
bool _overrideTimeout;
|
|
299
|
+
int _timeout; // Only used if _overrideTimeout == true
|
|
300
|
+
std::string _connectionId;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
#endif
|
|
@@ -0,0 +1,937 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#include <Ice/Communicator.h>
|
|
11
|
+
#include <Ice/ReferenceFactory.h>
|
|
12
|
+
#include <Ice/ProxyFactory.h>
|
|
13
|
+
#include <Ice/LocalException.h>
|
|
14
|
+
#include <Ice/Instance.h>
|
|
15
|
+
#include <Ice/EndpointI.h>
|
|
16
|
+
#include <Ice/ConnectionI.h>
|
|
17
|
+
#include <Ice/EndpointFactoryManager.h>
|
|
18
|
+
#include <Ice/RouterInfo.h>
|
|
19
|
+
#include <Ice/Router.h>
|
|
20
|
+
#include <Ice/LocatorInfo.h>
|
|
21
|
+
#include <Ice/Locator.h>
|
|
22
|
+
#include <Ice/LoggerUtil.h>
|
|
23
|
+
#include <Ice/BasicStream.h>
|
|
24
|
+
#include <Ice/Properties.h>
|
|
25
|
+
#include <Ice/DefaultsAndOverrides.h>
|
|
26
|
+
#include <Ice/PropertyNames.h>
|
|
27
|
+
#include <IceUtil/StringUtil.h>
|
|
28
|
+
|
|
29
|
+
using namespace std;
|
|
30
|
+
using namespace Ice;
|
|
31
|
+
using namespace IceInternal;
|
|
32
|
+
|
|
33
|
+
IceUtil::Shared* IceInternal::upCast(::IceInternal::ReferenceFactory* p) { return p; }
|
|
34
|
+
|
|
35
|
+
ReferencePtr
|
|
36
|
+
IceInternal::ReferenceFactory::copy(const Reference* r) const
|
|
37
|
+
{
|
|
38
|
+
const Ice::Identity& ident = r->getIdentity();
|
|
39
|
+
if(ident.name.empty() && ident.category.empty())
|
|
40
|
+
{
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return r->clone();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
ReferencePtr
|
|
48
|
+
IceInternal::ReferenceFactory::create(const Identity& ident,
|
|
49
|
+
const string& facet,
|
|
50
|
+
const ReferencePtr& tmpl,
|
|
51
|
+
const vector<EndpointIPtr>& endpoints)
|
|
52
|
+
{
|
|
53
|
+
if(ident.name.empty() && ident.category.empty())
|
|
54
|
+
{
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return create(ident, facet, tmpl->getMode(), tmpl->getSecure(), tmpl->getProtocol(), tmpl->getEncoding(),
|
|
59
|
+
endpoints, "", "");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
ReferencePtr
|
|
63
|
+
IceInternal::ReferenceFactory::create(const Identity& ident,
|
|
64
|
+
const string& facet,
|
|
65
|
+
const ReferencePtr& tmpl,
|
|
66
|
+
const string& adapterId)
|
|
67
|
+
{
|
|
68
|
+
if(ident.name.empty() && ident.category.empty())
|
|
69
|
+
{
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return create(ident, facet, tmpl->getMode(), tmpl->getSecure(), tmpl->getProtocol(), tmpl->getEncoding(),
|
|
74
|
+
vector<EndpointIPtr>(), adapterId, "");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
ReferencePtr
|
|
78
|
+
IceInternal::ReferenceFactory::create(const Identity& ident, const Ice::ConnectionIPtr& connection)
|
|
79
|
+
{
|
|
80
|
+
if(ident.name.empty() && ident.category.empty())
|
|
81
|
+
{
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
//
|
|
86
|
+
// Create new reference
|
|
87
|
+
//
|
|
88
|
+
return new FixedReference(_instance,
|
|
89
|
+
_communicator,
|
|
90
|
+
ident,
|
|
91
|
+
"", // Facet
|
|
92
|
+
connection->endpoint()->datagram() ? Reference::ModeDatagram : Reference::ModeTwoway,
|
|
93
|
+
connection->endpoint()->secure(),
|
|
94
|
+
_instance->defaultsAndOverrides()->defaultEncoding,
|
|
95
|
+
connection);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
ReferencePtr
|
|
99
|
+
IceInternal::ReferenceFactory::create(const string& str, const string& propertyPrefix)
|
|
100
|
+
{
|
|
101
|
+
if(str.empty())
|
|
102
|
+
{
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const string delim = " \t\r\n";
|
|
107
|
+
|
|
108
|
+
string s(str);
|
|
109
|
+
string::size_type beg;
|
|
110
|
+
string::size_type end = 0;
|
|
111
|
+
|
|
112
|
+
beg = s.find_first_not_of(delim, end);
|
|
113
|
+
if(beg == string::npos)
|
|
114
|
+
{
|
|
115
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
116
|
+
ex.str = "no non-whitespace characters found in `" + s + "'";
|
|
117
|
+
throw ex;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
//
|
|
121
|
+
// Extract the identity, which may be enclosed in single
|
|
122
|
+
// or double quotation marks.
|
|
123
|
+
//
|
|
124
|
+
string idstr;
|
|
125
|
+
end = IceUtilInternal::checkQuote(s, beg);
|
|
126
|
+
if(end == string::npos)
|
|
127
|
+
{
|
|
128
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
129
|
+
ex.str = "mismatched quotes around identity in `" + s + "'";
|
|
130
|
+
throw ex;
|
|
131
|
+
}
|
|
132
|
+
else if(end == 0)
|
|
133
|
+
{
|
|
134
|
+
end = s.find_first_of(delim + ":@", beg);
|
|
135
|
+
if(end == string::npos)
|
|
136
|
+
{
|
|
137
|
+
end = s.size();
|
|
138
|
+
}
|
|
139
|
+
idstr = s.substr(beg, end - beg);
|
|
140
|
+
}
|
|
141
|
+
else
|
|
142
|
+
{
|
|
143
|
+
beg++; // Skip leading quote
|
|
144
|
+
idstr = s.substr(beg, end - beg);
|
|
145
|
+
end++; // Skip trailing quote
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if(beg == end)
|
|
149
|
+
{
|
|
150
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
151
|
+
ex.str = "no identity in `" + s + "'";
|
|
152
|
+
throw ex;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//
|
|
156
|
+
// Parsing the identity may raise IdentityParseException.
|
|
157
|
+
//
|
|
158
|
+
Identity ident = _instance->stringToIdentity(idstr);
|
|
159
|
+
if(ident.name.empty())
|
|
160
|
+
{
|
|
161
|
+
//
|
|
162
|
+
// An identity with an empty name and a non-empty
|
|
163
|
+
// category is illegal.
|
|
164
|
+
//
|
|
165
|
+
if(!ident.category.empty())
|
|
166
|
+
{
|
|
167
|
+
IllegalIdentityException e(__FILE__, __LINE__);
|
|
168
|
+
e.id = ident;
|
|
169
|
+
throw e;
|
|
170
|
+
}
|
|
171
|
+
//
|
|
172
|
+
// Treat a stringified proxy containing two double
|
|
173
|
+
// quotes ("") the same as an empty string, i.e.,
|
|
174
|
+
// a null proxy, but only if nothing follows the
|
|
175
|
+
// quotes.
|
|
176
|
+
//
|
|
177
|
+
else if(s.find_first_not_of(delim, end) != string::npos)
|
|
178
|
+
{
|
|
179
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
180
|
+
ex.str = "invalid characters after identity in `" + s + "'";
|
|
181
|
+
throw ex;
|
|
182
|
+
}
|
|
183
|
+
else
|
|
184
|
+
{
|
|
185
|
+
return 0;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
string facet;
|
|
190
|
+
Reference::Mode mode = Reference::ModeTwoway;
|
|
191
|
+
bool secure = false;
|
|
192
|
+
Ice::EncodingVersion encoding = _instance->defaultsAndOverrides()->defaultEncoding;
|
|
193
|
+
Ice::ProtocolVersion protocol = Protocol_1_0;
|
|
194
|
+
string adapter;
|
|
195
|
+
|
|
196
|
+
while(true)
|
|
197
|
+
{
|
|
198
|
+
beg = s.find_first_not_of(delim, end);
|
|
199
|
+
if(beg == string::npos)
|
|
200
|
+
{
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if(s[beg] == ':' || s[beg] == '@')
|
|
205
|
+
{
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
end = s.find_first_of(delim + ":@", beg);
|
|
210
|
+
if(end == string::npos)
|
|
211
|
+
{
|
|
212
|
+
end = s.length();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if(beg == end)
|
|
216
|
+
{
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
string option = s.substr(beg, end - beg);
|
|
221
|
+
if(option.length() != 2 || option[0] != '-')
|
|
222
|
+
{
|
|
223
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
224
|
+
ex.str = "expected a proxy option but found `" + option + "' in `" + s + "'";
|
|
225
|
+
throw ex;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
//
|
|
229
|
+
// Check for the presence of an option argument. The
|
|
230
|
+
// argument may be enclosed in single or double
|
|
231
|
+
// quotation marks.
|
|
232
|
+
//
|
|
233
|
+
string argument;
|
|
234
|
+
string::size_type argumentBeg = s.find_first_not_of(delim, end);
|
|
235
|
+
if(argumentBeg != string::npos)
|
|
236
|
+
{
|
|
237
|
+
if(s[argumentBeg] != '@' && s[argumentBeg] != ':' && s[argumentBeg] != '-')
|
|
238
|
+
{
|
|
239
|
+
beg = argumentBeg;
|
|
240
|
+
end = IceUtilInternal::checkQuote(s, beg);
|
|
241
|
+
if(end == string::npos)
|
|
242
|
+
{
|
|
243
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
244
|
+
ex.str = "mismatched quotes around value for " + option + " option in `" + s + "'";
|
|
245
|
+
throw ex;
|
|
246
|
+
}
|
|
247
|
+
else if(end == 0)
|
|
248
|
+
{
|
|
249
|
+
end = s.find_first_of(delim + ":@", beg);
|
|
250
|
+
if(end == string::npos)
|
|
251
|
+
{
|
|
252
|
+
end = s.size();
|
|
253
|
+
}
|
|
254
|
+
argument = s.substr(beg, end - beg);
|
|
255
|
+
}
|
|
256
|
+
else
|
|
257
|
+
{
|
|
258
|
+
beg++; // Skip leading quote
|
|
259
|
+
argument = s.substr(beg, end - beg);
|
|
260
|
+
end++; // Skip trailing quote
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
//
|
|
266
|
+
// If any new options are added here,
|
|
267
|
+
// IceInternal::Reference::toString() and its derived classes must be updated as well.
|
|
268
|
+
//
|
|
269
|
+
switch(option[1])
|
|
270
|
+
{
|
|
271
|
+
case 'f':
|
|
272
|
+
{
|
|
273
|
+
if(argument.empty())
|
|
274
|
+
{
|
|
275
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
276
|
+
ex.str = "no argument provided for -f option in `" + s + "'";
|
|
277
|
+
throw ex;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
try
|
|
281
|
+
{
|
|
282
|
+
facet = IceUtilInternal::unescapeString(argument, 0, argument.size());
|
|
283
|
+
}
|
|
284
|
+
catch(const IceUtil::IllegalArgumentException& e)
|
|
285
|
+
{
|
|
286
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
287
|
+
ex.str = "invalid facet in `" + s + "': " + e.reason();
|
|
288
|
+
throw ex;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
facet = UTF8ToNative(facet, _instance->getStringConverter());
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
case 't':
|
|
296
|
+
{
|
|
297
|
+
if(!argument.empty())
|
|
298
|
+
{
|
|
299
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
300
|
+
ex.str = "unexpected argument `" + argument + "' provided for -t option in `" + s + "'";
|
|
301
|
+
throw ex;
|
|
302
|
+
}
|
|
303
|
+
mode = Reference::ModeTwoway;
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
case 'o':
|
|
308
|
+
{
|
|
309
|
+
if(!argument.empty())
|
|
310
|
+
{
|
|
311
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
312
|
+
ex.str = "unexpected argument `" + argument + "' provided for -o option in `" + s + "'";
|
|
313
|
+
throw ex;
|
|
314
|
+
}
|
|
315
|
+
mode = Reference::ModeOneway;
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
case 'O':
|
|
320
|
+
{
|
|
321
|
+
if(!argument.empty())
|
|
322
|
+
{
|
|
323
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
324
|
+
ex.str = "unexpected argument `" + argument + "' provided for -O option in `" + s + "'";
|
|
325
|
+
throw ex;
|
|
326
|
+
}
|
|
327
|
+
mode = Reference::ModeBatchOneway;
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
case 'd':
|
|
332
|
+
{
|
|
333
|
+
if(!argument.empty())
|
|
334
|
+
{
|
|
335
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
336
|
+
ex.str = "unexpected argument `" + argument + "' provided for -d option in `" + s + "'";
|
|
337
|
+
throw ex;
|
|
338
|
+
}
|
|
339
|
+
mode = Reference::ModeDatagram;
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
case 'D':
|
|
344
|
+
{
|
|
345
|
+
if(!argument.empty())
|
|
346
|
+
{
|
|
347
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
348
|
+
ex.str = "unexpected argument `" + argument + "' provided for -D option in `" + s + "'";
|
|
349
|
+
throw ex;
|
|
350
|
+
}
|
|
351
|
+
mode = Reference::ModeBatchDatagram;
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
case 's':
|
|
356
|
+
{
|
|
357
|
+
if(!argument.empty())
|
|
358
|
+
{
|
|
359
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
360
|
+
ex.str = "unexpected argument `" + argument + "' provided for -s option in `" + s + "'";
|
|
361
|
+
throw ex;
|
|
362
|
+
}
|
|
363
|
+
secure = true;
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
case 'e':
|
|
368
|
+
{
|
|
369
|
+
if(argument.empty())
|
|
370
|
+
{
|
|
371
|
+
Ice::ProxyParseException ex(__FILE__, __LINE__);
|
|
372
|
+
ex.str = "no argument provided for -e option in `" + s + "'";
|
|
373
|
+
throw ex;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
try
|
|
377
|
+
{
|
|
378
|
+
encoding = Ice::stringToEncodingVersion(argument);
|
|
379
|
+
}
|
|
380
|
+
catch(const Ice::VersionParseException& e)
|
|
381
|
+
{
|
|
382
|
+
Ice::ProxyParseException ex(__FILE__, __LINE__);
|
|
383
|
+
ex.str = "invalid encoding version `" + argument + "' in `" + s + "':\n" + e.str;
|
|
384
|
+
throw ex;
|
|
385
|
+
}
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
case 'p':
|
|
390
|
+
{
|
|
391
|
+
if(argument.empty())
|
|
392
|
+
{
|
|
393
|
+
Ice::ProxyParseException ex(__FILE__, __LINE__);
|
|
394
|
+
ex.str = "no argument provided for -p option in `" + s + "'";
|
|
395
|
+
throw ex;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
try
|
|
399
|
+
{
|
|
400
|
+
protocol = Ice::stringToProtocolVersion(argument);
|
|
401
|
+
}
|
|
402
|
+
catch(const Ice::VersionParseException& e)
|
|
403
|
+
{
|
|
404
|
+
Ice::ProxyParseException ex(__FILE__, __LINE__);
|
|
405
|
+
ex.str = "invalid protocol version `" + argument + "' in `" + s + "':\n" + e.str;
|
|
406
|
+
throw ex;
|
|
407
|
+
}
|
|
408
|
+
break;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
default:
|
|
412
|
+
{
|
|
413
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
414
|
+
ex.str = "unknown option `" + option + "' in `" + s + "'";
|
|
415
|
+
throw ex;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
if(beg == string::npos)
|
|
421
|
+
{
|
|
422
|
+
return create(ident, facet, mode, secure, protocol, encoding, vector<EndpointIPtr>(), "", propertyPrefix);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
vector<EndpointIPtr> endpoints;
|
|
426
|
+
switch(s[beg])
|
|
427
|
+
{
|
|
428
|
+
case ':':
|
|
429
|
+
{
|
|
430
|
+
vector<string> unknownEndpoints;
|
|
431
|
+
end = beg;
|
|
432
|
+
|
|
433
|
+
while(end < s.length() && s[end] == ':')
|
|
434
|
+
{
|
|
435
|
+
beg = end + 1;
|
|
436
|
+
|
|
437
|
+
end = beg;
|
|
438
|
+
while(true)
|
|
439
|
+
{
|
|
440
|
+
end = s.find(':', end);
|
|
441
|
+
if(end == string::npos)
|
|
442
|
+
{
|
|
443
|
+
end = s.length();
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
446
|
+
else
|
|
447
|
+
{
|
|
448
|
+
bool quoted = false;
|
|
449
|
+
string::size_type quote = beg;
|
|
450
|
+
while(true)
|
|
451
|
+
{
|
|
452
|
+
quote = s.find('\"', quote);
|
|
453
|
+
if(quote == string::npos || end < quote)
|
|
454
|
+
{
|
|
455
|
+
break;
|
|
456
|
+
}
|
|
457
|
+
else
|
|
458
|
+
{
|
|
459
|
+
quote = s.find('\"', ++quote);
|
|
460
|
+
if(quote == string::npos)
|
|
461
|
+
{
|
|
462
|
+
break;
|
|
463
|
+
}
|
|
464
|
+
else if(end < quote)
|
|
465
|
+
{
|
|
466
|
+
quoted = true;
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
++quote;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
if(!quoted)
|
|
473
|
+
{
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
++end;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
string es = s.substr(beg, end - beg);
|
|
481
|
+
EndpointIPtr endp = _instance->endpointFactoryManager()->create(es, false);
|
|
482
|
+
if(endp != 0)
|
|
483
|
+
{
|
|
484
|
+
endpoints.push_back(endp);
|
|
485
|
+
}
|
|
486
|
+
else
|
|
487
|
+
{
|
|
488
|
+
unknownEndpoints.push_back(es);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
if(endpoints.size() == 0)
|
|
492
|
+
{
|
|
493
|
+
assert(!unknownEndpoints.empty());
|
|
494
|
+
EndpointParseException ex(__FILE__, __LINE__);
|
|
495
|
+
ex.str = "invalid endpoint `" + unknownEndpoints.front() + "' in `" + s + "'";
|
|
496
|
+
throw ex;
|
|
497
|
+
}
|
|
498
|
+
else if(unknownEndpoints.size() != 0 &&
|
|
499
|
+
_instance->initializationData().properties->
|
|
500
|
+
getPropertyAsIntWithDefault("Ice.Warn.Endpoints", 1) > 0)
|
|
501
|
+
{
|
|
502
|
+
Warning out(_instance->initializationData().logger);
|
|
503
|
+
out << "Proxy contains unknown endpoints:";
|
|
504
|
+
for(unsigned int idx = 0; idx < unknownEndpoints.size(); ++idx)
|
|
505
|
+
{
|
|
506
|
+
out << " `" << unknownEndpoints[idx] << "'";
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
return create(ident, facet, mode, secure, protocol, encoding, endpoints, "", propertyPrefix);
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
case '@':
|
|
514
|
+
{
|
|
515
|
+
beg = s.find_first_not_of(delim, beg + 1);
|
|
516
|
+
if(beg == string::npos)
|
|
517
|
+
{
|
|
518
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
519
|
+
ex.str = "missing adapter id in `" + s + "'";
|
|
520
|
+
throw ex;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
string adapterstr;
|
|
524
|
+
end = IceUtilInternal::checkQuote(s, beg);
|
|
525
|
+
if(end == string::npos)
|
|
526
|
+
{
|
|
527
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
528
|
+
ex.str = "mismatched quotes around adapter id in `" + s + "'";
|
|
529
|
+
throw ex;
|
|
530
|
+
}
|
|
531
|
+
else if(end == 0)
|
|
532
|
+
{
|
|
533
|
+
end = s.find_first_of(delim, beg);
|
|
534
|
+
if(end == string::npos)
|
|
535
|
+
{
|
|
536
|
+
end = s.size();
|
|
537
|
+
}
|
|
538
|
+
adapterstr = s.substr(beg, end - beg);
|
|
539
|
+
}
|
|
540
|
+
else
|
|
541
|
+
{
|
|
542
|
+
beg++; // Skip leading quote
|
|
543
|
+
adapterstr = s.substr(beg, end - beg);
|
|
544
|
+
end++; // Skip trailing quote.
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
// Check for trailing whitespace.
|
|
548
|
+
if(end != string::npos && s.find_first_not_of(delim, end) != string::npos)
|
|
549
|
+
{
|
|
550
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
551
|
+
ex.str = "invalid trailing characters after `" + s.substr(0, end + 1) + "' in `" + s + "'";
|
|
552
|
+
throw ex;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
try
|
|
556
|
+
{
|
|
557
|
+
adapter = IceUtilInternal::unescapeString(adapterstr, 0, adapterstr.size());
|
|
558
|
+
}
|
|
559
|
+
catch(const IceUtil::IllegalArgumentException& e)
|
|
560
|
+
{
|
|
561
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
562
|
+
ex.str = "invalid adapter id in `" + s + "': " + e.reason();
|
|
563
|
+
throw ex;
|
|
564
|
+
}
|
|
565
|
+
if(adapter.size() == 0)
|
|
566
|
+
{
|
|
567
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
568
|
+
ex.str = "empty adapter id in `" + s + "'";
|
|
569
|
+
throw ex;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
adapter = UTF8ToNative(adapter, _instance->getStringConverter());
|
|
573
|
+
|
|
574
|
+
return create(ident, facet, mode, secure, protocol, encoding, endpoints, adapter, propertyPrefix);
|
|
575
|
+
break;
|
|
576
|
+
}
|
|
577
|
+
default:
|
|
578
|
+
{
|
|
579
|
+
ProxyParseException ex(__FILE__, __LINE__);
|
|
580
|
+
ex.str = "malformed proxy `" + s + "'";
|
|
581
|
+
throw ex;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
return 0; // Unreachable, prevents compiler warning.
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
ReferencePtr
|
|
589
|
+
IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s)
|
|
590
|
+
{
|
|
591
|
+
//
|
|
592
|
+
// Don't read the identity here. Operations calling this
|
|
593
|
+
// constructor read the identity, and pass it as a parameter.
|
|
594
|
+
//
|
|
595
|
+
|
|
596
|
+
if(ident.name.empty() && ident.category.empty())
|
|
597
|
+
{
|
|
598
|
+
return 0;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
//
|
|
602
|
+
// For compatibility with the old FacetPath.
|
|
603
|
+
//
|
|
604
|
+
vector<string> facetPath;
|
|
605
|
+
s->read(facetPath);
|
|
606
|
+
string facet;
|
|
607
|
+
if(!facetPath.empty())
|
|
608
|
+
{
|
|
609
|
+
if(facetPath.size() > 1)
|
|
610
|
+
{
|
|
611
|
+
throw ProxyUnmarshalException(__FILE__, __LINE__);
|
|
612
|
+
}
|
|
613
|
+
facet.swap(facetPath[0]);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
Byte modeAsByte;
|
|
617
|
+
s->read(modeAsByte);
|
|
618
|
+
Reference::Mode mode = static_cast<Reference::Mode>(modeAsByte);
|
|
619
|
+
if(mode < 0 || mode > Reference::ModeLast)
|
|
620
|
+
{
|
|
621
|
+
throw ProxyUnmarshalException(__FILE__, __LINE__);
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
bool secure;
|
|
625
|
+
s->read(secure);
|
|
626
|
+
|
|
627
|
+
Ice::ProtocolVersion protocol;
|
|
628
|
+
Ice::EncodingVersion encoding;
|
|
629
|
+
if(s->getReadEncoding() != Ice::Encoding_1_0)
|
|
630
|
+
{
|
|
631
|
+
s->read(protocol);
|
|
632
|
+
s->read(encoding);
|
|
633
|
+
}
|
|
634
|
+
else
|
|
635
|
+
{
|
|
636
|
+
protocol = Ice::Protocol_1_0;
|
|
637
|
+
encoding = Ice::Encoding_1_0;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
vector<EndpointIPtr> endpoints;
|
|
641
|
+
string adapterId;
|
|
642
|
+
|
|
643
|
+
Ice::Int sz = s->readSize();
|
|
644
|
+
|
|
645
|
+
if(sz > 0)
|
|
646
|
+
{
|
|
647
|
+
endpoints.reserve(sz);
|
|
648
|
+
while(sz--)
|
|
649
|
+
{
|
|
650
|
+
EndpointIPtr endpoint = _instance->endpointFactoryManager()->read(s);
|
|
651
|
+
endpoints.push_back(endpoint);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
else
|
|
655
|
+
{
|
|
656
|
+
s->read(adapterId);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
return create(ident, facet, mode, secure, protocol, encoding, endpoints, adapterId, "");
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
ReferenceFactoryPtr
|
|
663
|
+
IceInternal::ReferenceFactory::setDefaultRouter(const RouterPrx& defaultRouter)
|
|
664
|
+
{
|
|
665
|
+
if(defaultRouter == _defaultRouter)
|
|
666
|
+
{
|
|
667
|
+
return this;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
ReferenceFactoryPtr factory = new ReferenceFactory(_instance, _communicator);
|
|
671
|
+
factory->_defaultLocator = _defaultLocator;
|
|
672
|
+
factory->_defaultRouter = defaultRouter;
|
|
673
|
+
return factory;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
RouterPrx
|
|
677
|
+
IceInternal::ReferenceFactory::getDefaultRouter() const
|
|
678
|
+
{
|
|
679
|
+
return _defaultRouter;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
ReferenceFactoryPtr
|
|
683
|
+
IceInternal::ReferenceFactory::setDefaultLocator(const LocatorPrx& defaultLocator)
|
|
684
|
+
{
|
|
685
|
+
if(defaultLocator == _defaultLocator)
|
|
686
|
+
{
|
|
687
|
+
return this;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
ReferenceFactoryPtr factory = new ReferenceFactory(_instance, _communicator);
|
|
691
|
+
factory->_defaultRouter = _defaultRouter;
|
|
692
|
+
factory->_defaultLocator = defaultLocator;
|
|
693
|
+
return factory;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
LocatorPrx
|
|
697
|
+
IceInternal::ReferenceFactory::getDefaultLocator() const
|
|
698
|
+
{
|
|
699
|
+
return _defaultLocator;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
IceInternal::ReferenceFactory::ReferenceFactory(const InstancePtr& instance, const CommunicatorPtr& communicator) :
|
|
703
|
+
_instance(instance),
|
|
704
|
+
_communicator(communicator)
|
|
705
|
+
{
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
void
|
|
709
|
+
IceInternal::ReferenceFactory::checkForUnknownProperties(const string& prefix)
|
|
710
|
+
{
|
|
711
|
+
static const string suffixes[] =
|
|
712
|
+
{
|
|
713
|
+
"EndpointSelection",
|
|
714
|
+
"ConnectionCached",
|
|
715
|
+
"PreferSecure",
|
|
716
|
+
"LocatorCacheTimeout",
|
|
717
|
+
"InvocationTimeout",
|
|
718
|
+
"Locator",
|
|
719
|
+
"Router",
|
|
720
|
+
"CollocationOptimized",
|
|
721
|
+
"Context.*"
|
|
722
|
+
};
|
|
723
|
+
|
|
724
|
+
//
|
|
725
|
+
// Do not warn about unknown properties list if Ice prefix, ie Ice, Glacier2, etc
|
|
726
|
+
//
|
|
727
|
+
for(const char** i = IceInternal::PropertyNames::clPropNames; *i != 0; ++i)
|
|
728
|
+
{
|
|
729
|
+
if(prefix.find(*i) == 0)
|
|
730
|
+
{
|
|
731
|
+
return;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
StringSeq unknownProps;
|
|
736
|
+
PropertyDict props = _instance->initializationData().properties->getPropertiesForPrefix(prefix + ".");
|
|
737
|
+
for(PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p)
|
|
738
|
+
{
|
|
739
|
+
bool valid = false;
|
|
740
|
+
for(unsigned int i = 0; i < sizeof(suffixes)/sizeof(*suffixes); ++i)
|
|
741
|
+
{
|
|
742
|
+
string prop = prefix + "." + suffixes[i];
|
|
743
|
+
if(IceUtilInternal::match(p->first, prop))
|
|
744
|
+
{
|
|
745
|
+
valid = true;
|
|
746
|
+
break;
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
if(!valid)
|
|
751
|
+
{
|
|
752
|
+
unknownProps.push_back(p->first);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
if(unknownProps.size())
|
|
757
|
+
{
|
|
758
|
+
Warning out(_instance->initializationData().logger);
|
|
759
|
+
out << "found unknown properties for proxy '" << prefix << "':";
|
|
760
|
+
for(unsigned int i = 0; i < unknownProps.size(); ++i)
|
|
761
|
+
{
|
|
762
|
+
out << "\n " << unknownProps[i];
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
RoutableReferencePtr
|
|
768
|
+
IceInternal::ReferenceFactory::create(const Identity& ident,
|
|
769
|
+
const string& facet,
|
|
770
|
+
Reference::Mode mode,
|
|
771
|
+
bool secure,
|
|
772
|
+
const Ice::ProtocolVersion& protocol,
|
|
773
|
+
const Ice::EncodingVersion& encoding,
|
|
774
|
+
const vector<EndpointIPtr>& endpoints,
|
|
775
|
+
const string& adapterId,
|
|
776
|
+
const string& propertyPrefix)
|
|
777
|
+
{
|
|
778
|
+
DefaultsAndOverridesPtr defaultsAndOverrides = _instance->defaultsAndOverrides();
|
|
779
|
+
|
|
780
|
+
//
|
|
781
|
+
// Default local proxy options.
|
|
782
|
+
//
|
|
783
|
+
LocatorInfoPtr locatorInfo;
|
|
784
|
+
if(_defaultLocator)
|
|
785
|
+
{
|
|
786
|
+
if(_defaultLocator->ice_getEncodingVersion() != encoding)
|
|
787
|
+
{
|
|
788
|
+
locatorInfo = _instance->locatorManager()->get(_defaultLocator->ice_encodingVersion(encoding));
|
|
789
|
+
}
|
|
790
|
+
else
|
|
791
|
+
{
|
|
792
|
+
locatorInfo = _instance->locatorManager()->get(_defaultLocator);
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
RouterInfoPtr routerInfo = _instance->routerManager()->get(_defaultRouter);
|
|
796
|
+
bool collocationOptimized = defaultsAndOverrides->defaultCollocationOptimization;
|
|
797
|
+
bool cacheConnection = true;
|
|
798
|
+
bool preferSecure = defaultsAndOverrides->defaultPreferSecure;
|
|
799
|
+
Ice::EndpointSelectionType endpointSelection = defaultsAndOverrides->defaultEndpointSelection;
|
|
800
|
+
int locatorCacheTimeout = defaultsAndOverrides->defaultLocatorCacheTimeout;
|
|
801
|
+
int invocationTimeout = defaultsAndOverrides->defaultInvocationTimeout;
|
|
802
|
+
Ice::Context ctx;
|
|
803
|
+
|
|
804
|
+
//
|
|
805
|
+
// Override the defaults with the proxy properties if a property prefix is defined.
|
|
806
|
+
//
|
|
807
|
+
if(!propertyPrefix.empty())
|
|
808
|
+
{
|
|
809
|
+
PropertiesPtr properties = _instance->initializationData().properties;
|
|
810
|
+
if(properties->getPropertyAsIntWithDefault("Ice.Warn.UnknownProperties", 1) > 0)
|
|
811
|
+
{
|
|
812
|
+
checkForUnknownProperties(propertyPrefix);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
string property;
|
|
816
|
+
|
|
817
|
+
property = propertyPrefix + ".Locator";
|
|
818
|
+
LocatorPrx locator = LocatorPrx::uncheckedCast(_communicator->propertyToProxy(property));
|
|
819
|
+
if(locator)
|
|
820
|
+
{
|
|
821
|
+
if(locator->ice_getEncodingVersion() != encoding)
|
|
822
|
+
{
|
|
823
|
+
locatorInfo = _instance->locatorManager()->get(locator->ice_encodingVersion(encoding));
|
|
824
|
+
}
|
|
825
|
+
else
|
|
826
|
+
{
|
|
827
|
+
locatorInfo = _instance->locatorManager()->get(locator);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
property = propertyPrefix + ".Router";
|
|
832
|
+
RouterPrx router = RouterPrx::uncheckedCast(_communicator->propertyToProxy(property));
|
|
833
|
+
if(router)
|
|
834
|
+
{
|
|
835
|
+
if(propertyPrefix.size() > 7 && propertyPrefix.substr(propertyPrefix.size() - 7, 7) == ".Router")
|
|
836
|
+
{
|
|
837
|
+
Warning out(_instance->initializationData().logger);
|
|
838
|
+
out << "`" << property << "=" << properties->getProperty(property)
|
|
839
|
+
<< "': cannot set a router on a router; setting ignored";
|
|
840
|
+
}
|
|
841
|
+
else
|
|
842
|
+
{
|
|
843
|
+
routerInfo = _instance->routerManager()->get(router);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
property = propertyPrefix + ".CollocationOptimized";
|
|
848
|
+
collocationOptimized = properties->getPropertyAsIntWithDefault(property, collocationOptimized) > 0;
|
|
849
|
+
|
|
850
|
+
property = propertyPrefix + ".ConnectionCached";
|
|
851
|
+
cacheConnection = properties->getPropertyAsIntWithDefault(property, cacheConnection) > 0;
|
|
852
|
+
|
|
853
|
+
property = propertyPrefix + ".PreferSecure";
|
|
854
|
+
preferSecure = properties->getPropertyAsIntWithDefault(property, preferSecure) > 0;
|
|
855
|
+
|
|
856
|
+
property = propertyPrefix + ".EndpointSelection";
|
|
857
|
+
if(!properties->getProperty(property).empty())
|
|
858
|
+
{
|
|
859
|
+
string type = properties->getProperty(property);
|
|
860
|
+
if(type == "Random")
|
|
861
|
+
{
|
|
862
|
+
endpointSelection = Random;
|
|
863
|
+
}
|
|
864
|
+
else if(type == "Ordered")
|
|
865
|
+
{
|
|
866
|
+
endpointSelection = Ordered;
|
|
867
|
+
}
|
|
868
|
+
else
|
|
869
|
+
{
|
|
870
|
+
EndpointSelectionTypeParseException ex(__FILE__, __LINE__);
|
|
871
|
+
ex.str = "illegal value `" + type + "'; expected `Random' or `Ordered'";
|
|
872
|
+
throw ex;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
property = propertyPrefix + ".LocatorCacheTimeout";
|
|
877
|
+
string value = properties->getProperty(property);
|
|
878
|
+
if(!value.empty())
|
|
879
|
+
{
|
|
880
|
+
locatorCacheTimeout = properties->getPropertyAsIntWithDefault(property, locatorCacheTimeout);
|
|
881
|
+
if(locatorCacheTimeout < -1)
|
|
882
|
+
{
|
|
883
|
+
locatorCacheTimeout = -1;
|
|
884
|
+
|
|
885
|
+
Warning out(_instance->initializationData().logger);
|
|
886
|
+
out << "invalid value for " << property << "`" << properties->getProperty(property) << "'"
|
|
887
|
+
<< ": defaulting to -1";
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
property = propertyPrefix + ".InvocationTimeout";
|
|
892
|
+
value = properties->getProperty(property);
|
|
893
|
+
if(!value.empty())
|
|
894
|
+
{
|
|
895
|
+
invocationTimeout = properties->getPropertyAsIntWithDefault(property, invocationTimeout);
|
|
896
|
+
if(invocationTimeout < 1 && invocationTimeout != -1)
|
|
897
|
+
{
|
|
898
|
+
invocationTimeout = -1;
|
|
899
|
+
|
|
900
|
+
Warning out(_instance->initializationData().logger);
|
|
901
|
+
out << "invalid value for " << property << "`" << properties->getProperty(property) << "'"
|
|
902
|
+
<< ": defaulting to -1";
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
property = propertyPrefix + ".Context.";
|
|
907
|
+
PropertyDict contexts = properties->getPropertiesForPrefix(property);
|
|
908
|
+
for(PropertyDict::const_iterator p = contexts.begin(); p != contexts.end(); ++p)
|
|
909
|
+
{
|
|
910
|
+
ctx.insert(make_pair(p->first.substr(property.length()), p->second));
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
//
|
|
915
|
+
// Create new reference
|
|
916
|
+
//
|
|
917
|
+
return new RoutableReference(_instance,
|
|
918
|
+
_communicator,
|
|
919
|
+
ident,
|
|
920
|
+
facet,
|
|
921
|
+
mode,
|
|
922
|
+
secure,
|
|
923
|
+
protocol,
|
|
924
|
+
encoding,
|
|
925
|
+
endpoints,
|
|
926
|
+
adapterId,
|
|
927
|
+
locatorInfo,
|
|
928
|
+
routerInfo,
|
|
929
|
+
collocationOptimized,
|
|
930
|
+
cacheConnection,
|
|
931
|
+
preferSecure,
|
|
932
|
+
endpointSelection,
|
|
933
|
+
locatorCacheTimeout,
|
|
934
|
+
invocationTimeout,
|
|
935
|
+
ctx);
|
|
936
|
+
}
|
|
937
|
+
|