zeroc-ice 3.7.9.1 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dist/IceRuby/Communicator.cpp +575 -0
- data/dist/IceRuby/Communicator.h +19 -0
- data/dist/IceRuby/Config.h +77 -0
- data/dist/IceRuby/Connection.cpp +428 -0
- data/dist/IceRuby/Connection.h +20 -0
- data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
- data/dist/IceRuby/DefaultSliceLoader.h +25 -0
- data/dist/IceRuby/Endpoint.cpp +342 -0
- data/dist/IceRuby/Endpoint.h +18 -0
- data/dist/IceRuby/ImplicitContext.cpp +143 -0
- data/dist/IceRuby/ImplicitContext.h +16 -0
- data/dist/IceRuby/Init.cpp +36 -0
- data/dist/IceRuby/Logger.cpp +146 -0
- data/dist/IceRuby/Logger.h +19 -0
- data/dist/IceRuby/Operation.cpp +623 -0
- data/dist/IceRuby/Operation.h +28 -0
- data/dist/IceRuby/Properties.cpp +413 -0
- data/dist/IceRuby/Properties.h +16 -0
- data/dist/IceRuby/Proxy.cpp +926 -0
- data/dist/IceRuby/Proxy.h +21 -0
- data/dist/IceRuby/RubySliceLoader.cpp +39 -0
- data/dist/IceRuby/RubySliceLoader.h +27 -0
- data/dist/IceRuby/Slice.cpp +199 -0
- data/dist/IceRuby/Slice.h +13 -0
- data/dist/IceRuby/Types.cpp +3133 -0
- data/dist/IceRuby/Types.h +533 -0
- data/dist/IceRuby/Util.cpp +553 -0
- data/dist/IceRuby/Util.h +485 -0
- 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 +14 -0
- data/dist/ice/cpp/include/Ice/Buffer.h +159 -0
- 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 +60 -0
- 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 +16 -0
- 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 +56 -0
- data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
- data/dist/ice/cpp/include/Ice/Format.h +22 -0
- data/dist/ice/cpp/include/Ice/Ice.h +60 -0
- data/dist/ice/cpp/include/Ice/IconvStringConverter.h +216 -0
- 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 +143 -0
- data/dist/ice/cpp/include/Ice/InputStream.h +942 -0
- data/dist/ice/cpp/include/Ice/InstanceF.h +14 -0
- 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 +162 -0
- data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
- data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +54 -0
- data/dist/ice/cpp/include/Ice/Object.h +168 -0
- 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 +16 -0
- data/dist/ice/cpp/include/Ice/ObserverHelper.h +164 -0
- data/dist/ice/cpp/include/Ice/OutgoingAsync.h +512 -0
- data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
- data/dist/ice/cpp/include/Ice/OutputStream.h +872 -0
- 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/Ice/PopDisableWarnings.h +16 -0
- 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 +742 -0
- data/dist/ice/cpp/include/Ice/ProxyF.h +11 -0
- 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 +14 -0
- data/dist/ice/cpp/include/Ice/RequestHandlerF.h +20 -0
- data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +268 -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 +278 -0
- data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
- data/dist/ice/cpp/include/Ice/Service.h +219 -0
- data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
- data/dist/ice/cpp/include/Ice/SlicedData.h +125 -0
- data/dist/ice/cpp/include/Ice/SlicedDataF.h +30 -0
- data/dist/ice/cpp/include/Ice/StreamHelpers.h +652 -0
- data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
- data/dist/ice/cpp/include/Ice/StringConverter.h +167 -0
- 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 +16 -0
- data/dist/ice/cpp/include/Ice/UserException.h +46 -0
- data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +15 -0
- data/dist/ice/cpp/include/Ice/Value.h +127 -0
- data/dist/ice/cpp/include/Ice/ValueF.h +16 -0
- data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +28 -0
- data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +28 -0
- data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +70 -0
- data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
- data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +74 -0
- data/dist/ice/cpp/include/generated/Ice/Identity.h +108 -0
- data/dist/ice/cpp/include/generated/Ice/Locator.h +542 -0
- data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
- data/dist/ice/cpp/include/generated/Ice/Metrics.h +1103 -0
- data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
- data/dist/ice/cpp/include/generated/Ice/Process.h +245 -0
- data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +314 -0
- data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
- data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +724 -0
- data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
- data/dist/ice/cpp/include/generated/Ice/Router.h +496 -0
- data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +37 -0
- data/dist/ice/cpp/include/generated/Ice/Version.h +112 -0
- 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 +41 -0
- data/dist/ice/cpp/src/Ice/AcceptorF.h +17 -0
- 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 +58 -0
- data/dist/ice/cpp/src/Ice/ArgVector.h +30 -0
- data/dist/ice/cpp/src/Ice/Base64.cpp +263 -0
- data/dist/ice/cpp/src/Ice/Base64.h +26 -0
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +199 -0
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +49 -0
- data/dist/ice/cpp/src/Ice/Buffer.cpp +187 -0
- data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +373 -0
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +65 -0
- 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 +227 -0
- data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +51 -0
- data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +14 -0
- data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
- data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +1758 -0
- data/dist/ice/cpp/src/Ice/ConnectionFactory.h +264 -0
- data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +17 -0
- data/dist/ice/cpp/src/Ice/ConnectionI.cpp +3563 -0
- data/dist/ice/cpp/src/Ice/ConnectionI.h +429 -0
- data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
- data/dist/ice/cpp/src/Ice/Connector.h +38 -0
- data/dist/ice/cpp/src/Ice/ConnectorF.h +14 -0
- data/dist/ice/cpp/src/Ice/ConsoleUtil.cpp +136 -0
- 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 +40 -0
- data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +81 -0
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +38 -0
- data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +14 -0
- data/dist/ice/cpp/src/Ice/Demangle.cpp +25 -0
- data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
- data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +216 -0
- 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 +165 -0
- data/dist/ice/cpp/src/Ice/EndpointFactory.h +96 -0
- data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +14 -0
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +180 -0
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +42 -0
- data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/EndpointI.cpp +128 -0
- data/dist/ice/cpp/src/Ice/EndpointI.h +150 -0
- data/dist/ice/cpp/src/Ice/EndpointIF.h +21 -0
- data/dist/ice/cpp/src/Ice/EventHandler.cpp +9 -0
- data/dist/ice/cpp/src/Ice/EventHandler.h +71 -0
- data/dist/ice/cpp/src/Ice/EventHandlerF.h +14 -0
- data/dist/ice/cpp/src/Ice/Exception.cpp +5 -0
- 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 +67 -0
- data/dist/ice/cpp/src/Ice/HttpParser.cpp +684 -0
- data/dist/ice/cpp/src/Ice/HttpParser.h +112 -0
- data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +593 -0
- data/dist/ice/cpp/src/Ice/IPEndpointI.h +106 -0
- data/dist/ice/cpp/src/Ice/IPEndpointIF.h +17 -0
- 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 +160 -0
- data/dist/ice/cpp/src/Ice/InputStream.cpp +2206 -0
- data/dist/ice/cpp/src/Ice/Instance.cpp +1956 -0
- data/dist/ice/cpp/src/Ice/Instance.h +225 -0
- data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +959 -0
- data/dist/ice/cpp/src/Ice/InstrumentationI.h +235 -0
- 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 +851 -0
- data/dist/ice/cpp/src/Ice/LocatorInfo.h +176 -0
- data/dist/ice/cpp/src/Ice/LocatorInfoF.h +20 -0
- data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +774 -0
- data/dist/ice/cpp/src/Ice/LoggerAdminI.h +31 -0
- data/dist/ice/cpp/src/Ice/LoggerI.cpp +234 -0
- data/dist/ice/cpp/src/Ice/LoggerI.h +47 -0
- 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 +76 -0
- data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
- data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +608 -0
- 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 +1927 -0
- data/dist/ice/cpp/src/Ice/Network.h +265 -0
- data/dist/ice/cpp/src/Ice/NetworkF.h +11 -0
- data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +306 -0
- data/dist/ice/cpp/src/Ice/NetworkProxy.h +67 -0
- data/dist/ice/cpp/src/Ice/NetworkProxyF.h +14 -0
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +55 -0
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +35 -0
- data/dist/ice/cpp/src/Ice/Object.cpp +249 -0
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +348 -0
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +53 -0
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +14 -0
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1383 -0
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +163 -0
- data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +75 -0
- 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 +368 -0
- data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +66 -0
- data/dist/ice/cpp/src/Ice/Options.cpp +980 -0
- data/dist/ice/cpp/src/Ice/Options.h +119 -0
- data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1106 -0
- data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
- data/dist/ice/cpp/src/Ice/OutputStream.cpp +1454 -0
- 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 +344 -0
- data/dist/ice/cpp/src/Ice/PluginManagerI.h +54 -0
- data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
- data/dist/ice/cpp/src/Ice/PropertyNames.cpp +606 -0
- data/dist/ice/cpp/src/Ice/PropertyNames.h +63 -0
- 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 +159 -0
- data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
- data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +186 -0
- data/dist/ice/cpp/src/Ice/ProtocolInstance.h +74 -0
- data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +14 -0
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +29 -0
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +35 -0
- data/dist/ice/cpp/src/Ice/Proxy.cpp +541 -0
- 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 +1584 -0
- data/dist/ice/cpp/src/Ice/Reference.h +339 -0
- data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +830 -0
- data/dist/ice/cpp/src/Ice/ReferenceFactory.h +58 -0
- data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +14 -0
- data/dist/ice/cpp/src/Ice/RequestHandler.cpp +28 -0
- data/dist/ice/cpp/src/Ice/RequestHandler.h +53 -0
- 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 +151 -0
- data/dist/ice/cpp/src/Ice/RetryQueue.h +59 -0
- data/dist/ice/cpp/src/Ice/RetryQueueF.h +14 -0
- data/dist/ice/cpp/src/Ice/RouterInfo.cpp +275 -0
- data/dist/ice/cpp/src/Ice/RouterInfo.h +95 -0
- data/dist/ice/cpp/src/Ice/RouterInfoF.h +17 -0
- data/dist/ice/cpp/src/Ice/SHA1.cpp +195 -0
- 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 +513 -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 +635 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
- data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +487 -0
- 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 +72 -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 +654 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +104 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1437 -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 +1085 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +822 -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 +1061 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +222 -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 +1270 -0
- data/dist/ice/cpp/src/Ice/Selector.h +235 -0
- data/dist/ice/cpp/src/Ice/ServantManager.cpp +547 -0
- data/dist/ice/cpp/src/Ice/ServantManager.h +66 -0
- data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/Service.cpp +1790 -0
- data/dist/ice/cpp/src/Ice/SharedContext.h +33 -0
- data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
- data/dist/ice/cpp/src/Ice/SlicedData.cpp +48 -0
- data/dist/ice/cpp/src/Ice/StreamSocket.cpp +472 -0
- data/dist/ice/cpp/src/Ice/StreamSocket.h +73 -0
- data/dist/ice/cpp/src/Ice/StringConverter.cpp +582 -0
- data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
- data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +160 -0
- data/dist/ice/cpp/src/Ice/SysLoggerI.h +34 -0
- data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +65 -0
- data/dist/ice/cpp/src/Ice/SystemdJournalI.h +33 -0
- data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
- data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +213 -0
- data/dist/ice/cpp/src/Ice/TcpAcceptor.h +55 -0
- data/dist/ice/cpp/src/Ice/TcpConnector.cpp +128 -0
- data/dist/ice/cpp/src/Ice/TcpConnector.h +36 -0
- data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +411 -0
- data/dist/ice/cpp/src/Ice/TcpEndpointI.h +86 -0
- data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +147 -0
- data/dist/ice/cpp/src/Ice/TcpTransceiver.h +53 -0
- data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1110 -0
- data/dist/ice/cpp/src/Ice/ThreadPool.h +305 -0
- 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 +169 -0
- data/dist/ice/cpp/src/Ice/Timer.h +212 -0
- data/dist/ice/cpp/src/Ice/TraceLevels.cpp +20 -0
- data/dist/ice/cpp/src/Ice/TraceLevels.h +39 -0
- data/dist/ice/cpp/src/Ice/TraceLevelsF.h +14 -0
- data/dist/ice/cpp/src/Ice/TraceUtil.cpp +399 -0
- data/dist/ice/cpp/src/Ice/TraceUtil.h +41 -0
- data/dist/ice/cpp/src/Ice/Transceiver.cpp +14 -0
- data/dist/ice/cpp/src/Ice/Transceiver.h +52 -0
- data/dist/ice/cpp/src/Ice/TransceiverF.h +23 -0
- data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
- data/dist/ice/cpp/src/Ice/UdpConnector.cpp +131 -0
- data/dist/ice/cpp/src/Ice/UdpConnector.h +36 -0
- data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +480 -0
- data/dist/ice/cpp/src/Ice/UdpEndpointI.h +92 -0
- data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +786 -0
- data/dist/ice/cpp/src/Ice/UdpTransceiver.h +90 -0
- data/dist/ice/cpp/src/Ice/UndefSysMacros.h +37 -0
- 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 +145 -0
- data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +87 -0
- data/dist/ice/cpp/src/Ice/WSAcceptor.h +46 -0
- data/dist/ice/cpp/src/Ice/WSConnector.cpp +87 -0
- data/dist/ice/cpp/src/Ice/WSConnector.h +36 -0
- data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +455 -0
- data/dist/ice/cpp/src/Ice/WSEndpoint.h +82 -0
- data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +1715 -0
- data/dist/ice/cpp/src/Ice/WSTransceiver.h +135 -0
- data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/Identity.cpp +47 -0
- data/dist/ice/cpp/src/Ice/generated/Locator.cpp +752 -0
- data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
- data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +1205 -0
- data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
- data/dist/ice/cpp/src/Ice/generated/Process.cpp +330 -0
- data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +443 -0
- data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +851 -0
- data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
- data/dist/ice/cpp/src/Ice/generated/Router.cpp +660 -0
- data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +39 -0
- data/dist/ice/cpp/src/Ice/generated/Version.cpp +54 -0
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +202 -0
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +68 -0
- data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +494 -0
- data/dist/ice/cpp/src/IceDiscovery/LookupI.h +168 -0
- data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +155 -0
- data/dist/ice/cpp/src/IceDiscovery/PluginI.h +31 -0
- data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
- data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +24 -0
- data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +822 -0
- 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 +96 -0
- data/dist/ice/cpp/src/Slice/FileTracker.h +44 -0
- data/dist/ice/cpp/src/Slice/Grammar.cpp +4125 -0
- data/dist/ice/cpp/src/Slice/Grammar.h +138 -0
- data/dist/ice/cpp/src/Slice/GrammarUtil.h +128 -0
- data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +473 -0
- data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
- data/dist/ice/cpp/src/Slice/Parser.cpp +4906 -0
- data/dist/ice/cpp/src/Slice/Parser.h +1175 -0
- data/dist/ice/cpp/src/Slice/Preprocessor.cpp +295 -0
- data/dist/ice/cpp/src/Slice/Preprocessor.h +44 -0
- data/dist/ice/cpp/src/Slice/Scanner.cpp +3445 -0
- data/dist/ice/cpp/src/Slice/SliceUtil.cpp +790 -0
- data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +448 -0
- data/dist/ice/cpp/src/Slice/Util.h +134 -0
- data/dist/ice/cpp/src/slice2rb/Main.cpp +33 -0
- 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/mcpp/internal.H +530 -0
- data/dist/ice/slice/Glacier2/Metrics.ice +47 -0
- data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +55 -0
- data/dist/ice/slice/Glacier2/Router.ice +93 -0
- data/dist/ice/slice/Glacier2/SSLInfo.ice +42 -0
- data/dist/ice/slice/Glacier2/Session.ice +133 -0
- data/dist/ice/slice/Ice/BuiltinSequences.ice +54 -0
- data/dist/ice/slice/Ice/Context.ice +24 -0
- data/dist/ice/slice/Ice/EndpointTypes.ice +50 -0
- data/dist/ice/slice/Ice/Identity.ice +36 -0
- data/dist/ice/slice/Ice/Locator.ice +74 -0
- data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
- data/dist/ice/slice/Ice/Metrics.ice +201 -0
- data/dist/ice/slice/Ice/OperationMode.ice +38 -0
- data/dist/ice/slice/Ice/Process.ice +28 -0
- data/dist/ice/slice/Ice/PropertiesAdmin.ice +37 -0
- data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
- data/dist/ice/slice/Ice/RemoteLogger.ice +126 -0
- data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
- data/dist/ice/slice/Ice/Router.ice +54 -0
- data/dist/ice/slice/Ice/SliceChecksumDict.ice +18 -0
- data/dist/ice/slice/Ice/Version.ice +43 -0
- data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
- data/dist/ice/slice/IceGrid/Admin.ice +981 -0
- data/dist/ice/slice/IceGrid/Descriptor.ice +519 -0
- data/dist/ice/slice/IceGrid/Exception.ice +98 -0
- data/dist/ice/slice/IceGrid/FileParser.ice +36 -0
- data/dist/ice/slice/IceGrid/Registry.ice +130 -0
- data/dist/ice/slice/IceGrid/Session.ice +64 -0
- data/dist/ice/slice/IceGrid/UserAccountMapper.ice +34 -0
- data/dist/ice/slice/IceStorm/IceStorm.ice +186 -0
- data/dist/ice/slice/IceStorm/Metrics.ice +41 -0
- data/dist/lib/Glacier2/Metrics.rb +41 -0
- data/dist/lib/Glacier2/PermissionsVerifier.rb +61 -0
- data/dist/lib/Glacier2/Router.rb +73 -0
- data/dist/lib/Glacier2/SSLInfo.rb +64 -0
- data/dist/lib/Glacier2/Session.rb +187 -0
- data/dist/lib/Glacier2.rb +7 -0
- data/dist/lib/Ice/BuiltinSequences.rb +48 -0
- 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 +28 -0
- data/dist/lib/Ice/Exception.rb +20 -0
- data/dist/lib/Ice/Identity.rb +47 -0
- 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 +83 -0
- data/dist/lib/Ice/LocatorRegistry.rb +73 -0
- data/dist/lib/Ice/Metrics.rb +290 -0
- data/dist/lib/Ice/OperationMode.rb +58 -0
- data/dist/lib/Ice/Process.rb +34 -0
- data/dist/lib/Ice/PropertiesAdmin.rb +39 -0
- 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 +176 -0
- data/dist/lib/Ice/ReplyStatus.rb +65 -0
- data/dist/lib/Ice/Router.rb +59 -0
- data/dist/lib/Ice/SliceChecksumDict.rb +12 -0
- 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 +78 -0
- data/dist/lib/Ice.rb +37 -0
- data/dist/lib/IceBox/ServiceManager.rb +104 -0
- data/dist/lib/IceBox.rb +3 -0
- data/dist/lib/IceGrid/Admin.rb +1208 -0
- data/dist/lib/IceGrid/Descriptor.rb +989 -0
- data/dist/lib/IceGrid/Exception.rb +145 -0
- data/dist/lib/IceGrid/FileParser.rb +41 -0
- data/dist/lib/IceGrid/Registry.rb +168 -0
- data/dist/lib/IceGrid/Session.rb +56 -0
- data/dist/lib/IceGrid/UserAccountMapper.rb +38 -0
- data/dist/lib/IceGrid.rb +9 -0
- data/dist/lib/IceStorm/IceStorm.rb +251 -0
- data/dist/lib/IceStorm/Metrics.rb +55 -0
- data/dist/lib/IceStorm.rb +4 -0
- data/extconf.rb +89 -0
- data/ice.gemspec +22 -17
- data/scripts/slice2rb +10 -0
- metadata +536 -712
- data/ICE_LICENSE +0 -48
- data/LICENSE +0 -340
- data/MCPP_LICENSE +0 -29
- data/bin/slice2rb +0 -12
- data/ext/Communicator.cpp +0 -792
- data/ext/Communicator.h +0 -20
- data/ext/Config.h +0 -143
- data/ext/Connection.cpp +0 -532
- data/ext/Connection.h +0 -24
- data/ext/Endpoint.cpp +0 -340
- data/ext/Endpoint.h +0 -22
- data/ext/ImplicitContext.cpp +0 -144
- data/ext/ImplicitContext.h +0 -20
- data/ext/Init.cpp +0 -49
- data/ext/Logger.cpp +0 -147
- data/ext/Logger.h +0 -23
- data/ext/Operation.cpp +0 -661
- data/ext/Operation.h +0 -31
- data/ext/Properties.cpp +0 -365
- data/ext/Properties.h +0 -20
- data/ext/Proxy.cpp +0 -1396
- data/ext/Proxy.h +0 -22
- data/ext/Slice.cpp +0 -205
- data/ext/Slice.h +0 -17
- data/ext/Types.cpp +0 -3325
- data/ext/Types.h +0 -595
- data/ext/Util.cpp +0 -812
- data/ext/Util.h +0 -586
- data/ext/ValueFactoryManager.cpp +0 -441
- data/ext/ValueFactoryManager.h +0 -95
- data/ext/extconf.rb +0 -97
- data/ext/ice/cpp/include/Ice/Application.h +0 -326
- data/ext/ice/cpp/include/Ice/AsyncResult.h +0 -155
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +0 -23
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -20
- data/ext/ice/cpp/include/Ice/Buffer.h +0 -154
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
- data/ext/ice/cpp/include/Ice/Comparable.h +0 -205
- data/ext/ice/cpp/include/Ice/Config.h +0 -78
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +0 -38
- data/ext/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
- data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
- data/ext/ice/cpp/include/Ice/Dispatcher.h +0 -67
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
- data/ext/ice/cpp/include/Ice/Exception.h +0 -161
- data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
- data/ext/ice/cpp/include/Ice/FactoryTable.h +0 -73
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
- data/ext/ice/cpp/include/Ice/Format.h +0 -38
- data/ext/ice/cpp/include/Ice/Functional.h +0 -140
- data/ext/ice/cpp/include/Ice/GCObject.h +0 -76
- data/ext/ice/cpp/include/Ice/Handle.h +0 -182
- data/ext/ice/cpp/include/Ice/Ice.h +0 -55
- data/ext/ice/cpp/include/Ice/IconvStringConverter.h +0 -377
- data/ext/ice/cpp/include/Ice/Incoming.h +0 -225
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +0 -186
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
- data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
- data/ext/ice/cpp/include/Ice/InputStream.h +0 -1514
- data/ext/ice/cpp/include/Ice/InstanceF.h +0 -20
- data/ext/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
- data/ext/ice/cpp/include/Ice/LocalObject.h +0 -35
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +0 -21
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +0 -185
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -86
- data/ext/ice/cpp/include/Ice/Object.h +0 -507
- data/ext/ice/cpp/include/Ice/ObjectF.h +0 -30
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +0 -182
- data/ext/ice/cpp/include/Ice/Optional.h +0 -1114
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
- data/ext/ice/cpp/include/Ice/OutputStream.h +0 -1092
- data/ext/ice/cpp/include/Ice/Protocol.h +0 -274
- data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
- data/ext/ice/cpp/include/Ice/ProxyF.h +0 -53
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +0 -318
- data/ext/ice/cpp/include/Ice/ReferenceF.h +0 -29
- data/ext/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +0 -30
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
- data/ext/ice/cpp/include/Ice/SHA1.h +0 -42
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +0 -21
- data/ext/ice/cpp/include/Ice/Service.h +0 -379
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +0 -33
- data/ext/ice/cpp/include/Ice/SlicedData.h +0 -172
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +0 -40
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +0 -1190
- data/ext/ice/cpp/include/Ice/StringConverter.h +0 -78
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
- data/ext/ice/cpp/include/Ice/UUID.h +0 -19
- data/ext/ice/cpp/include/Ice/UniquePtr.h +0 -95
- data/ext/ice/cpp/include/Ice/UniqueRef.h +0 -97
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
- data/ext/ice/cpp/include/Ice/Value.h +0 -139
- data/ext/ice/cpp/include/Ice/ValueF.h +0 -21
- data/ext/ice/cpp/include/IceSSL/Config.h +0 -21
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +0 -28
- data/ext/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
- data/ext/ice/cpp/include/IceSSL/Plugin.h +0 -712
- data/ext/ice/cpp/include/IceSSL/SChannel.h +0 -72
- data/ext/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
- data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
- data/ext/ice/cpp/include/IceUtil/Atomic.h +0 -179
- data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
- data/ext/ice/cpp/include/IceUtil/Config.h +0 -424
- data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
- data/ext/ice/cpp/include/IceUtil/Exception.h +0 -394
- data/ext/ice/cpp/include/IceUtil/FileUtil.h +0 -143
- data/ext/ice/cpp/include/IceUtil/Functional.h +0 -389
- data/ext/ice/cpp/include/IceUtil/Handle.h +0 -261
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +0 -40
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
- data/ext/ice/cpp/include/IceUtil/Iterator.h +0 -31
- data/ext/ice/cpp/include/IceUtil/Lock.h +0 -128
- data/ext/ice/cpp/include/IceUtil/Monitor.h +0 -243
- data/ext/ice/cpp/include/IceUtil/Mutex.h +0 -353
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
- data/ext/ice/cpp/include/IceUtil/Optional.h +0 -433
- data/ext/ice/cpp/include/IceUtil/Options.h +0 -135
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -14
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
- data/ext/ice/cpp/include/IceUtil/Random.h +0 -55
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +0 -107
- data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -53
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
- data/ext/ice/cpp/include/IceUtil/Shared.h +0 -127
- data/ext/ice/cpp/include/IceUtil/StopWatch.h +0 -49
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +0 -195
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +0 -97
- data/ext/ice/cpp/include/IceUtil/Thread.h +0 -174
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +0 -94
- data/ext/ice/cpp/include/IceUtil/Time.h +0 -205
- data/ext/ice/cpp/include/IceUtil/Timer.h +0 -143
- data/ext/ice/cpp/include/IceUtil/UUID.h +0 -21
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -37
- data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
- data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
- data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
- data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
- data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
- data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
- data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
- data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
- data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
- data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
- data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
- data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
- data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
- data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
- data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
- data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
- data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
- data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
- data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
- data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
- data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
- data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
- data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
- data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
- data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
- data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
- data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
- data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
- data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
- data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
- data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
- data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
- data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
- data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
- data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
- data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
- data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
- data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
- data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
- data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
- data/ext/ice/cpp/src/Ice/ACM.cpp +0 -380
- data/ext/ice/cpp/src/Ice/ACM.h +0 -119
- data/ext/ice/cpp/src/Ice/ACMF.h +0 -30
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +0 -16
- data/ext/ice/cpp/src/Ice/Acceptor.h +0 -37
- data/ext/ice/cpp/src/Ice/AcceptorF.h +0 -25
- data/ext/ice/cpp/src/Ice/ArgVector.cpp +0 -59
- data/ext/ice/cpp/src/Ice/ArgVector.h +0 -36
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
- data/ext/ice/cpp/src/Ice/Base64.cpp +0 -263
- data/ext/ice/cpp/src/Ice/Base64.h +0 -31
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -250
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +0 -59
- data/ext/ice/cpp/src/Ice/Buffer.cpp +0 -155
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -407
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -87
- data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +0 -167
- data/ext/ice/cpp/src/Ice/Cond.cpp +0 -381
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -348
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -72
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -24
- data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -1972
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +0 -264
- data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -30
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +0 -3670
- data/ext/ice/cpp/src/Ice/ConnectionI.h +0 -391
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
- data/ext/ice/cpp/src/Ice/Connector.cpp +0 -16
- data/ext/ice/cpp/src/Ice/Connector.h +0 -32
- data/ext/ice/cpp/src/Ice/ConnectorF.h +0 -21
- data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -179
- data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -161
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -52
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -21
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -291
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +0 -117
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +0 -21
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -213
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -47
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -21
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
- data/ext/ice/cpp/src/Ice/EndpointI.h +0 -218
- data/ext/ice/cpp/src/Ice/EndpointIF.h +0 -49
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +0 -32
- data/ext/ice/cpp/src/Ice/EventHandler.h +0 -81
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +0 -24
- data/ext/ice/cpp/src/Ice/Exception.cpp +0 -845
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
- data/ext/ice/cpp/src/Ice/GCObject.cpp +0 -442
- data/ext/ice/cpp/src/Ice/HashUtil.h +0 -53
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -684
- data/ext/ice/cpp/src/Ice/HttpParser.h +0 -117
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +0 -756
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +0 -162
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +0 -28
- data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
- data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
- data/ext/ice/cpp/src/Ice/Incoming.cpp +0 -795
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +0 -33
- data/ext/ice/cpp/src/Ice/Initialize.cpp +0 -654
- data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
- data/ext/ice/cpp/src/Ice/Instance.cpp +0 -1971
- data/ext/ice/cpp/src/Ice/Instance.h +0 -235
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +0 -1094
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +0 -256
- data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +0 -23
- data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +0 -889
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +0 -189
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +0 -29
- data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -956
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +0 -41
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +0 -261
- data/ext/ice/cpp/src/Ice/LoggerI.h +0 -52
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +0 -100
- data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
- data/ext/ice/cpp/src/Ice/Network.cpp +0 -3075
- data/ext/ice/cpp/src/Ice/Network.h +0 -371
- data/ext/ice/cpp/src/Ice/NetworkF.h +0 -23
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +0 -324
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +0 -72
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +0 -21
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -57
- data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +0 -40
- data/ext/ice/cpp/src/Ice/Object.cpp +0 -435
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -291
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -53
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -25
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +0 -159
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +0 -56
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -408
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -74
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
- data/ext/ice/cpp/src/Ice/OutputStream.cpp +0 -1367
- data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
- data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +0 -61
- data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
- data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +0 -747
- data/ext/ice/cpp/src/Ice/PropertiesI.h +0 -70
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
- data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
- data/ext/ice/cpp/src/Ice/Protocol.cpp +0 -124
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -131
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +0 -93
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -21
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -51
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -64
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
- data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +0 -57
- data/ext/ice/cpp/src/Ice/Reference.cpp +0 -2046
- data/ext/ice/cpp/src/Ice/Reference.h +0 -323
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -888
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +0 -76
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -19
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
- data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +0 -24
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +0 -37
- data/ext/ice/cpp/src/Ice/RequestHandler.h +0 -78
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +0 -43
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +0 -157
- data/ext/ice/cpp/src/Ice/RetryQueue.h +0 -66
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +0 -19
- data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
- data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +0 -379
- data/ext/ice/cpp/src/Ice/RouterInfo.h +0 -152
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +0 -25
- data/ext/ice/cpp/src/Ice/SHA1.cpp +0 -185
- data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1537
- data/ext/ice/cpp/src/Ice/Selector.h +0 -308
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +0 -480
- data/ext/ice/cpp/src/Ice/ServantManager.h +0 -69
- data/ext/ice/cpp/src/Ice/SharedContext.h +0 -46
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +0 -127
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -682
- data/ext/ice/cpp/src/Ice/StreamSocket.h +0 -92
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
- data/ext/ice/cpp/src/Ice/StringUtil.h +0 -30
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +0 -166
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +0 -37
- data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -66
- data/ext/ice/cpp/src/Ice/SystemdJournalI.h +0 -39
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -355
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +0 -69
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +0 -127
- data/ext/ice/cpp/src/Ice/TcpConnector.h +0 -45
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -385
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +0 -90
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -135
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +0 -58
- data/ext/ice/cpp/src/Ice/Thread.cpp +0 -811
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1328
- data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -393
- data/ext/ice/cpp/src/Ice/Timer.cpp +0 -263
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +0 -38
- data/ext/ice/cpp/src/Ice/TraceLevels.h +0 -45
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +0 -21
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +0 -478
- data/ext/ice/cpp/src/Ice/TraceUtil.h +0 -30
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +0 -18
- data/ext/ice/cpp/src/Ice/Transceiver.h +0 -49
- data/ext/ice/cpp/src/Ice/TransceiverF.h +0 -33
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +0 -136
- data/ext/ice/cpp/src/Ice/UdpConnector.h +0 -45
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -515
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +0 -95
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -1153
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +0 -117
- data/ext/ice/cpp/src/Ice/Value.cpp +0 -76
- data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
- data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
- data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
- data/ext/ice/cpp/src/Ice/VirtualShared.h +0 -38
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +0 -92
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +0 -52
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +0 -102
- data/ext/ice/cpp/src/Ice/WSConnector.h +0 -43
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +0 -508
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +0 -93
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +0 -1747
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +0 -141
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -265
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +0 -109
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -608
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +0 -228
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -176
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +0 -36
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
- data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -47
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -1048
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
- data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
- data/ext/ice/cpp/src/IceSSL/CertificateI.h +0 -64
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
- data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +0 -100
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +0 -28
- data/ext/ice/cpp/src/IceSSL/Instance.h +0 -37
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +0 -33
- data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
- data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
- data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
- data/ext/ice/cpp/src/IceSSL/PluginI.h +0 -67
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +0 -490
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +0 -62
- data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
- data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
- data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
- data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
- data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
- data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +0 -46
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
- data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
- data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
- data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
- data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
- data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
- data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
- data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -192
- data/ext/ice/cpp/src/IceSSL/Util.h +0 -99
- data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -157
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +0 -484
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
- data/ext/ice/cpp/src/IceUtil/Options.cpp +0 -1051
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
- data/ext/ice/cpp/src/IceUtil/Random.cpp +0 -180
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +0 -242
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +0 -71
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1180
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
- data/ext/ice/cpp/src/IceUtil/Time.cpp +0 -307
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +0 -169
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
- data/ext/ice/cpp/src/IceUtil/Unicode.h +0 -43
- data/ext/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
- data/ext/ice/cpp/src/Slice/Checksum.cpp +0 -447
- data/ext/ice/cpp/src/Slice/Checksum.h +0 -21
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +0 -146
- data/ext/ice/cpp/src/Slice/FileTracker.h +0 -66
- data/ext/ice/cpp/src/Slice/Grammar.cpp +0 -4793
- data/ext/ice/cpp/src/Slice/Grammar.h +0 -118
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +0 -228
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5154
- data/ext/ice/cpp/src/Slice/JavaUtil.h +0 -398
- data/ext/ice/cpp/src/Slice/MD5.cpp +0 -52
- data/ext/ice/cpp/src/Slice/MD5.h +0 -39
- data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -393
- data/ext/ice/cpp/src/Slice/MD5I.h +0 -91
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
- data/ext/ice/cpp/src/Slice/PHPUtil.h +0 -36
- data/ext/ice/cpp/src/Slice/Parser.cpp +0 -7058
- data/ext/ice/cpp/src/Slice/Parser.h +0 -1174
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +0 -797
- data/ext/ice/cpp/src/Slice/Preprocessor.h +0 -60
- data/ext/ice/cpp/src/Slice/Python.cpp +0 -830
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
- data/ext/ice/cpp/src/Slice/PythonUtil.h +0 -70
- data/ext/ice/cpp/src/Slice/Ruby.cpp +0 -350
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
- data/ext/ice/cpp/src/Slice/RubyUtil.h +0 -49
- data/ext/ice/cpp/src/Slice/Scanner.cpp +0 -2807
- data/ext/ice/cpp/src/Slice/SliceUtil.cpp +0 -424
- data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -456
- data/ext/ice/cpp/src/Slice/Util.h +0 -50
- data/ext/ice/mcpp/CMakeLists.txt +0 -80
- data/ext/ice/mcpp/LICENSE +0 -29
- data/ext/ice/mcpp/Makefile +0 -63
- data/ext/ice/mcpp/README.md +0 -32
- data/ext/ice/mcpp/internal.H +0 -530
- data/ext/ice/mcpp/mcpp.gyp +0 -88
- data/lib/Glacier2/Metrics.rb +0 -56
- data/lib/Glacier2/PermissionsVerifier.rb +0 -93
- data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
- data/lib/Glacier2/Router.rb +0 -95
- data/lib/Glacier2/RouterF.rb +0 -25
- data/lib/Glacier2/SSLInfo.rb +0 -72
- data/lib/Glacier2/Session.rb +0 -247
- data/lib/Glacier2.rb +0 -7
- data/lib/Ice/BuiltinSequences.rb +0 -60
- data/lib/Ice/Communicator.rb +0 -87
- data/lib/Ice/CommunicatorF.rb +0 -24
- data/lib/Ice/Connection.rb +0 -413
- data/lib/Ice/ConnectionF.rb +0 -32
- data/lib/Ice/Current.rb +0 -141
- data/lib/Ice/Endpoint.rb +0 -187
- data/lib/Ice/EndpointF.rb +0 -48
- data/lib/Ice/EndpointTypes.rb +0 -69
- data/lib/Ice/FacetMap.rb +0 -24
- data/lib/Ice/Identity.rb +0 -63
- data/lib/Ice/ImplicitContext.rb +0 -26
- data/lib/Ice/ImplicitContextF.rb +0 -24
- data/lib/Ice/Instrumentation.rb +0 -169
- data/lib/Ice/InstrumentationF.rb +0 -31
- data/lib/Ice/LocalException.rb +0 -1031
- data/lib/Ice/Locator.rb +0 -196
- data/lib/Ice/LocatorF.rb +0 -30
- data/lib/Ice/Logger.rb +0 -24
- data/lib/Ice/LoggerF.rb +0 -24
- data/lib/Ice/Metrics.rb +0 -337
- data/lib/Ice/ObjectAdapter.rb +0 -29
- data/lib/Ice/ObjectAdapterF.rb +0 -24
- data/lib/Ice/ObjectFactory.rb +0 -24
- data/lib/Ice/Plugin.rb +0 -30
- data/lib/Ice/PluginF.rb +0 -28
- data/lib/Ice/Process.rb +0 -53
- data/lib/Ice/ProcessF.rb +0 -25
- data/lib/Ice/Properties.rb +0 -25
- data/lib/Ice/PropertiesAdmin.rb +0 -63
- data/lib/Ice/PropertiesF.rb +0 -29
- data/lib/Ice/RemoteLogger.rb +0 -207
- data/lib/Ice/Router.rb +0 -87
- data/lib/Ice/RouterF.rb +0 -25
- data/lib/Ice/ServantLocator.rb +0 -26
- data/lib/Ice/ServantLocatorF.rb +0 -24
- data/lib/Ice/SliceChecksumDict.rb +0 -24
- data/lib/Ice/ValueFactory.rb +0 -28
- data/lib/Ice/Version.rb +0 -90
- data/lib/Ice.rb +0 -673
- data/lib/IceBox/IceBox.rb +0 -164
- data/lib/IceBox.rb +0 -5
- data/lib/IceGrid/Admin.rb +0 -1196
- data/lib/IceGrid/Descriptor.rb +0 -1034
- data/lib/IceGrid/Exception.rb +0 -376
- data/lib/IceGrid/FileParser.rb +0 -65
- data/lib/IceGrid/PluginFacade.rb +0 -35
- data/lib/IceGrid/Registry.rb +0 -209
- data/lib/IceGrid/Session.rb +0 -71
- data/lib/IceGrid/UserAccountMapper.rb +0 -61
- data/lib/IceGrid.rb +0 -9
- data/lib/IcePatch2/FileInfo.rb +0 -115
- data/lib/IcePatch2/FileServer.rb +0 -123
- data/lib/IcePatch2.rb +0 -5
- data/lib/IceStorm/IceStorm.rb +0 -332
- data/lib/IceStorm/Metrics.rb +0 -73
- data/lib/IceStorm.rb +0 -6
- data/slice/Glacier2/Metrics.ice +0 -88
- data/slice/Glacier2/PermissionsVerifier.ice +0 -111
- data/slice/Glacier2/PermissionsVerifierF.ice +0 -30
- data/slice/Glacier2/Router.ice +0 -186
- data/slice/Glacier2/RouterF.ice +0 -29
- data/slice/Glacier2/SSLInfo.ice +0 -59
- data/slice/Glacier2/Session.ice +0 -274
- data/slice/Ice/BuiltinSequences.ice +0 -59
- data/slice/Ice/Communicator.ice +0 -676
- data/slice/Ice/CommunicatorF.ice +0 -31
- data/slice/Ice/Connection.ice +0 -516
- data/slice/Ice/ConnectionF.ice +0 -33
- data/slice/Ice/Current.ice +0 -170
- data/slice/Ice/Endpoint.ice +0 -291
- data/slice/Ice/EndpointF.ice +0 -43
- data/slice/Ice/EndpointTypes.ice +0 -48
- data/slice/Ice/FacetMap.ice +0 -36
- data/slice/Ice/Identity.ice +0 -75
- data/slice/Ice/ImplicitContext.ice +0 -119
- data/slice/Ice/ImplicitContextF.ice +0 -30
- data/slice/Ice/Instrumentation.ice +0 -509
- data/slice/Ice/InstrumentationF.ice +0 -38
- data/slice/Ice/LocalException.ice +0 -1040
- data/slice/Ice/Locator.ice +0 -239
- data/slice/Ice/LocatorF.ice +0 -32
- data/slice/Ice/Logger.ice +0 -99
- data/slice/Ice/LoggerF.ice +0 -31
- data/slice/Ice/Metrics.ice +0 -436
- data/slice/Ice/ObjectAdapter.ice +0 -710
- data/slice/Ice/ObjectAdapterF.ice +0 -31
- data/slice/Ice/ObjectFactory.ice +0 -71
- data/slice/Ice/Plugin.ice +0 -131
- data/slice/Ice/PluginF.ice +0 -36
- data/slice/Ice/Process.ice +0 -64
- data/slice/Ice/ProcessF.ice +0 -31
- data/slice/Ice/Properties.ice +0 -244
- data/slice/Ice/PropertiesAdmin.ice +0 -87
- data/slice/Ice/PropertiesF.ice +0 -32
- data/slice/Ice/RemoteLogger.ice +0 -226
- data/slice/Ice/Router.ice +0 -103
- data/slice/Ice/RouterF.ice +0 -31
- data/slice/Ice/ServantLocator.ice +0 -136
- data/slice/Ice/ServantLocatorF.ice +0 -31
- data/slice/Ice/SliceChecksumDict.ice +0 -36
- data/slice/Ice/ValueFactory.ice +0 -133
- data/slice/Ice/Version.ice +0 -51
- data/slice/IceBT/ConnectionInfo.ice +0 -59
- data/slice/IceBT/EndpointInfo.ice +0 -57
- data/slice/IceBT/Types.ice +0 -45
- data/slice/IceBox/IceBox.ice +0 -216
- data/slice/IceDiscovery/IceDiscovery.ice +0 -98
- data/slice/IceGrid/Admin.ice +0 -1957
- data/slice/IceGrid/Descriptor.ice +0 -1094
- data/slice/IceGrid/Exception.ice +0 -396
- data/slice/IceGrid/FileParser.ice +0 -72
- data/slice/IceGrid/PluginFacade.ice +0 -329
- data/slice/IceGrid/Registry.ice +0 -269
- data/slice/IceGrid/Session.ice +0 -128
- data/slice/IceGrid/UserAccountMapper.ice +0 -69
- data/slice/IceIAP/ConnectionInfo.ice +0 -74
- data/slice/IceIAP/EndpointInfo.ice +0 -68
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
- data/slice/IcePatch2/FileInfo.ice +0 -85
- data/slice/IcePatch2/FileServer.ice +0 -191
- data/slice/IceSSL/ConnectionInfo.ice +0 -54
- data/slice/IceSSL/ConnectionInfoF.ice +0 -31
- data/slice/IceSSL/EndpointInfo.ice +0 -45
- data/slice/IceStorm/IceStorm.ice +0 -414
- data/slice/IceStorm/Metrics.ice +0 -83
- /data/{ext → dist}/ice/mcpp/config.h +0 -0
- /data/{ext → dist}/ice/mcpp/configed.H +0 -0
- /data/{ext → dist}/ice/mcpp/directive.c +0 -0
- /data/{ext → dist}/ice/mcpp/eval.c +0 -0
- /data/{ext → dist}/ice/mcpp/expand.c +0 -0
- /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
- /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
- /data/{ext/ice/mcpp/main.c → dist/ice/mcpp/mcpp_main.c} +0 -0
- /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
- /data/{ext → dist}/ice/mcpp/support.c +0 -0
- /data/{ext → dist}/ice/mcpp/system.H +0 -0
- /data/{ext → dist}/ice/mcpp/system.c +0 -0
|
@@ -1,2741 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright (c) ZeroC, Inc. All rights reserved.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include <IceUtil/DisableWarnings.h>
|
|
6
|
-
#include <Ice/InputStream.h>
|
|
7
|
-
#include <Ice/DefaultsAndOverrides.h>
|
|
8
|
-
#include <Ice/Instance.h>
|
|
9
|
-
#include <Ice/Object.h>
|
|
10
|
-
#include <Ice/Proxy.h>
|
|
11
|
-
#include <Ice/ProxyFactory.h>
|
|
12
|
-
#include <Ice/ValueFactory.h>
|
|
13
|
-
#include <Ice/UserExceptionFactory.h>
|
|
14
|
-
#include <Ice/LocalException.h>
|
|
15
|
-
#include <Ice/Protocol.h>
|
|
16
|
-
#include <Ice/FactoryTableInit.h>
|
|
17
|
-
#include <Ice/TraceUtil.h>
|
|
18
|
-
#include <Ice/TraceLevels.h>
|
|
19
|
-
#include <Ice/LoggerUtil.h>
|
|
20
|
-
#include <Ice/SlicedData.h>
|
|
21
|
-
#include <Ice/StringConverter.h>
|
|
22
|
-
#include <iterator>
|
|
23
|
-
|
|
24
|
-
#ifndef ICE_UNALIGNED
|
|
25
|
-
# if defined(__i386) || defined(_M_IX86) || defined(__x86_64) || defined(_M_X64)
|
|
26
|
-
# define ICE_UNALIGNED
|
|
27
|
-
# endif
|
|
28
|
-
#endif
|
|
29
|
-
|
|
30
|
-
using namespace std;
|
|
31
|
-
using namespace Ice;
|
|
32
|
-
using namespace IceInternal;
|
|
33
|
-
|
|
34
|
-
Ice::InputStream::InputStream()
|
|
35
|
-
{
|
|
36
|
-
initialize(currentEncoding);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
Ice::InputStream::InputStream(const vector<Byte>& v) :
|
|
40
|
-
Buffer(v)
|
|
41
|
-
{
|
|
42
|
-
initialize(currentEncoding);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
Ice::InputStream::InputStream(const pair<const Byte*, const Byte*>& p) :
|
|
46
|
-
Buffer(p.first, p.second)
|
|
47
|
-
{
|
|
48
|
-
initialize(currentEncoding);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
Ice::InputStream::InputStream(Buffer& buf, bool adopt) :
|
|
52
|
-
Buffer(buf, adopt)
|
|
53
|
-
{
|
|
54
|
-
initialize(currentEncoding);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator)
|
|
58
|
-
{
|
|
59
|
-
initialize(communicator);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const vector<Byte>& v) :
|
|
63
|
-
Buffer(v)
|
|
64
|
-
{
|
|
65
|
-
initialize(communicator);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const pair<const Byte*, const Byte*>& p) :
|
|
69
|
-
Buffer(p.first, p.second)
|
|
70
|
-
{
|
|
71
|
-
initialize(communicator);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, Buffer& buf, bool adopt) :
|
|
75
|
-
Buffer(buf, adopt)
|
|
76
|
-
{
|
|
77
|
-
initialize(communicator);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
Ice::InputStream::InputStream(const EncodingVersion& encoding)
|
|
81
|
-
{
|
|
82
|
-
initialize(encoding);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
Ice::InputStream::InputStream(const EncodingVersion& encoding, const vector<Byte>& v) :
|
|
86
|
-
Buffer(v)
|
|
87
|
-
{
|
|
88
|
-
initialize(encoding);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
Ice::InputStream::InputStream(const EncodingVersion& encoding, const pair<const Byte*, const Byte*>& p) :
|
|
92
|
-
Buffer(p.first, p.second)
|
|
93
|
-
{
|
|
94
|
-
initialize(encoding);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
Ice::InputStream::InputStream(const EncodingVersion& encoding, Buffer& buf, bool adopt) :
|
|
98
|
-
Buffer(buf, adopt)
|
|
99
|
-
{
|
|
100
|
-
initialize(encoding);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const EncodingVersion& encoding)
|
|
104
|
-
{
|
|
105
|
-
initialize(communicator, encoding);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const EncodingVersion& encoding,
|
|
109
|
-
const vector<Byte>& v) :
|
|
110
|
-
Buffer(v)
|
|
111
|
-
{
|
|
112
|
-
initialize(communicator, encoding);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const EncodingVersion& encoding,
|
|
116
|
-
const pair<const Byte*, const Byte*>& p) :
|
|
117
|
-
Buffer(p.first, p.second)
|
|
118
|
-
{
|
|
119
|
-
initialize(communicator, encoding);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
Ice::InputStream::InputStream(const CommunicatorPtr& communicator, const EncodingVersion& encoding,
|
|
123
|
-
Buffer& buf, bool adopt) :
|
|
124
|
-
Buffer(buf, adopt)
|
|
125
|
-
{
|
|
126
|
-
initialize(communicator, encoding);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
Ice::InputStream::InputStream(Instance* instance, const EncodingVersion& encoding)
|
|
130
|
-
{
|
|
131
|
-
initialize(instance, encoding);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
Ice::InputStream::InputStream(Instance* instance, const EncodingVersion& encoding, Buffer& buf, bool adopt) :
|
|
135
|
-
Buffer(buf, adopt)
|
|
136
|
-
{
|
|
137
|
-
initialize(instance, encoding);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
void
|
|
141
|
-
Ice::InputStream::initialize(const CommunicatorPtr& communicator)
|
|
142
|
-
{
|
|
143
|
-
Instance* instance = getInstance(communicator).get();
|
|
144
|
-
initialize(instance, instance->defaultsAndOverrides()->defaultEncoding);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
void
|
|
148
|
-
Ice::InputStream::initialize(const CommunicatorPtr& communicator, const EncodingVersion& encoding)
|
|
149
|
-
{
|
|
150
|
-
initialize(getInstance(communicator).get(), encoding);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
void
|
|
154
|
-
Ice::InputStream::initialize(Instance* instance, const EncodingVersion& encoding)
|
|
155
|
-
{
|
|
156
|
-
initialize(encoding);
|
|
157
|
-
|
|
158
|
-
_instance = instance;
|
|
159
|
-
|
|
160
|
-
#ifndef ICE_CPP11_MAPPING
|
|
161
|
-
_collectObjects = _instance->collectObjects();
|
|
162
|
-
#endif
|
|
163
|
-
_traceSlicing = _instance->traceLevels()->slicing > 0;
|
|
164
|
-
_classGraphDepthMax = _instance->classGraphDepthMax();
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
void
|
|
168
|
-
Ice::InputStream::initialize(const EncodingVersion& encoding)
|
|
169
|
-
{
|
|
170
|
-
_instance = 0;
|
|
171
|
-
_encoding = encoding;
|
|
172
|
-
_currentEncaps = 0;
|
|
173
|
-
#ifndef ICE_CPP11_MAPPING
|
|
174
|
-
_collectObjects = false;
|
|
175
|
-
#endif
|
|
176
|
-
_traceSlicing = false;
|
|
177
|
-
_classGraphDepthMax = 0x7fffffff;
|
|
178
|
-
_closure = 0;
|
|
179
|
-
_sliceValues = true;
|
|
180
|
-
_startSeq = -1;
|
|
181
|
-
_minSeqSize = 0;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
void
|
|
185
|
-
Ice::InputStream::clear()
|
|
186
|
-
{
|
|
187
|
-
while(_currentEncaps && _currentEncaps != &_preAllocatedEncaps)
|
|
188
|
-
{
|
|
189
|
-
Encaps* oldEncaps = _currentEncaps;
|
|
190
|
-
_currentEncaps = _currentEncaps->previous;
|
|
191
|
-
delete oldEncaps;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
_startSeq = -1;
|
|
195
|
-
_sliceValues = true;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
void
|
|
199
|
-
Ice::InputStream::setValueFactoryManager(const ValueFactoryManagerPtr& vfm)
|
|
200
|
-
{
|
|
201
|
-
_valueFactoryManager = vfm;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
void
|
|
205
|
-
Ice::InputStream::setLogger(const LoggerPtr& logger)
|
|
206
|
-
{
|
|
207
|
-
_logger = logger;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
void
|
|
211
|
-
#ifdef ICE_CPP11_MAPPING
|
|
212
|
-
Ice::InputStream::setCompactIdResolver(std::function<std::string(int)> r)
|
|
213
|
-
#else
|
|
214
|
-
Ice::InputStream::setCompactIdResolver(const CompactIdResolverPtr& r)
|
|
215
|
-
#endif
|
|
216
|
-
{
|
|
217
|
-
_compactIdResolver = r;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
#ifndef ICE_CPP11_MAPPING
|
|
221
|
-
void
|
|
222
|
-
Ice::InputStream::setCollectObjects(bool on)
|
|
223
|
-
{
|
|
224
|
-
_collectObjects = on;
|
|
225
|
-
}
|
|
226
|
-
#endif
|
|
227
|
-
|
|
228
|
-
void
|
|
229
|
-
Ice::InputStream::setSliceValues(bool on)
|
|
230
|
-
{
|
|
231
|
-
_sliceValues = on;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
void
|
|
235
|
-
Ice::InputStream::setTraceSlicing(bool on)
|
|
236
|
-
{
|
|
237
|
-
_traceSlicing = on;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
void
|
|
241
|
-
Ice::InputStream::setClassGraphDepthMax(size_t classGraphDepthMax)
|
|
242
|
-
{
|
|
243
|
-
if(classGraphDepthMax < 1)
|
|
244
|
-
{
|
|
245
|
-
_classGraphDepthMax = 0x7fffffff;
|
|
246
|
-
}
|
|
247
|
-
else
|
|
248
|
-
{
|
|
249
|
-
_classGraphDepthMax = classGraphDepthMax;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
void*
|
|
254
|
-
Ice::InputStream::getClosure() const
|
|
255
|
-
{
|
|
256
|
-
return _closure;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
void*
|
|
260
|
-
Ice::InputStream::setClosure(void* p)
|
|
261
|
-
{
|
|
262
|
-
void* prev = _closure;
|
|
263
|
-
_closure = p;
|
|
264
|
-
return prev;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
void
|
|
268
|
-
Ice::InputStream::swap(InputStream& other)
|
|
269
|
-
{
|
|
270
|
-
swapBuffer(other);
|
|
271
|
-
|
|
272
|
-
std::swap(_instance, other._instance);
|
|
273
|
-
std::swap(_encoding, other._encoding);
|
|
274
|
-
#ifndef ICE_CPP11_MAPPING
|
|
275
|
-
std::swap(_collectObjects, other._collectObjects);
|
|
276
|
-
#endif
|
|
277
|
-
std::swap(_traceSlicing, other._traceSlicing);
|
|
278
|
-
std::swap(_classGraphDepthMax, other._classGraphDepthMax);
|
|
279
|
-
std::swap(_closure, other._closure);
|
|
280
|
-
std::swap(_sliceValues, other._sliceValues);
|
|
281
|
-
|
|
282
|
-
//
|
|
283
|
-
// Swap is never called for streams that have encapsulations being read. However,
|
|
284
|
-
// encapsulations might still be set in case unmarshaling failed. We just
|
|
285
|
-
// reset the encapsulations if there are still some set.
|
|
286
|
-
//
|
|
287
|
-
resetEncapsulation();
|
|
288
|
-
other.resetEncapsulation();
|
|
289
|
-
|
|
290
|
-
std::swap(_startSeq, other._startSeq);
|
|
291
|
-
std::swap(_minSeqSize, other._minSeqSize);
|
|
292
|
-
|
|
293
|
-
std::swap(_valueFactoryManager, other._valueFactoryManager);
|
|
294
|
-
std::swap(_logger, other._logger);
|
|
295
|
-
std::swap(_compactIdResolver, other._compactIdResolver);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
void
|
|
299
|
-
Ice::InputStream::resetEncapsulation()
|
|
300
|
-
{
|
|
301
|
-
while(_currentEncaps && _currentEncaps != &_preAllocatedEncaps)
|
|
302
|
-
{
|
|
303
|
-
Encaps* oldEncaps = _currentEncaps;
|
|
304
|
-
_currentEncaps = _currentEncaps->previous;
|
|
305
|
-
delete oldEncaps;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
_preAllocatedEncaps.reset();
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
Int
|
|
312
|
-
Ice::InputStream::getEncapsulationSize()
|
|
313
|
-
{
|
|
314
|
-
assert(_currentEncaps);
|
|
315
|
-
return _currentEncaps->sz - static_cast<Int>(sizeof(Int)) - 2;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
EncodingVersion
|
|
319
|
-
Ice::InputStream::skipEncapsulation()
|
|
320
|
-
{
|
|
321
|
-
Int sz;
|
|
322
|
-
read(sz);
|
|
323
|
-
if(sz < 6)
|
|
324
|
-
{
|
|
325
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
326
|
-
}
|
|
327
|
-
if(i - sizeof(Int) + sz > b.end())
|
|
328
|
-
{
|
|
329
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
330
|
-
}
|
|
331
|
-
EncodingVersion encoding;
|
|
332
|
-
read(encoding.major);
|
|
333
|
-
read(encoding.minor);
|
|
334
|
-
i += static_cast<size_t>(sz) - sizeof(Int) - 2;
|
|
335
|
-
return encoding;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
void
|
|
339
|
-
Ice::InputStream::readPendingValues()
|
|
340
|
-
{
|
|
341
|
-
if(_currentEncaps && _currentEncaps->decoder)
|
|
342
|
-
{
|
|
343
|
-
_currentEncaps->decoder->readPendingValues();
|
|
344
|
-
}
|
|
345
|
-
else if(getEncoding() == Ice::Encoding_1_0)
|
|
346
|
-
{
|
|
347
|
-
//
|
|
348
|
-
// If using the 1.0 encoding and no instances were read, we
|
|
349
|
-
// still read an empty sequence of pending instances if
|
|
350
|
-
// requested (i.e.: if this is called).
|
|
351
|
-
//
|
|
352
|
-
// This is required by the 1.0 encoding, even if no instances
|
|
353
|
-
// are written we do marshal an empty sequence if marshaled
|
|
354
|
-
// data types use classes.
|
|
355
|
-
//
|
|
356
|
-
skipSize();
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
Int
|
|
361
|
-
Ice::InputStream::readAndCheckSeqSize(int minSize)
|
|
362
|
-
{
|
|
363
|
-
Int sz = readSize();
|
|
364
|
-
|
|
365
|
-
if(sz == 0)
|
|
366
|
-
{
|
|
367
|
-
return sz;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
//
|
|
371
|
-
// The _startSeq variable points to the start of the sequence for which
|
|
372
|
-
// we expect to read at least _minSeqSize bytes from the stream.
|
|
373
|
-
//
|
|
374
|
-
// If not initialized or if we already read more data than _minSeqSize,
|
|
375
|
-
// we reset _startSeq and _minSeqSize for this sequence (possibly a
|
|
376
|
-
// top-level sequence or enclosed sequence it doesn't really matter).
|
|
377
|
-
//
|
|
378
|
-
// Otherwise, we are reading an enclosed sequence and we have to bump
|
|
379
|
-
// _minSeqSize by the minimum size that this sequence will require on
|
|
380
|
-
// the stream.
|
|
381
|
-
//
|
|
382
|
-
// The goal of this check is to ensure that when we start un-marshalling
|
|
383
|
-
// a new sequence, we check the minimal size of this new sequence against
|
|
384
|
-
// the estimated remaining buffer size. This estimatation is based on
|
|
385
|
-
// the minimum size of the enclosing sequences, it's _minSeqSize.
|
|
386
|
-
//
|
|
387
|
-
if(_startSeq == -1 || i > (b.begin() + _startSeq + _minSeqSize))
|
|
388
|
-
{
|
|
389
|
-
_startSeq = static_cast<int>(i - b.begin());
|
|
390
|
-
_minSeqSize = sz * minSize;
|
|
391
|
-
}
|
|
392
|
-
else
|
|
393
|
-
{
|
|
394
|
-
_minSeqSize += sz * minSize;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
//
|
|
398
|
-
// If there isn't enough data to read on the stream for the sequence (and
|
|
399
|
-
// possibly enclosed sequences), something is wrong with the marshalled
|
|
400
|
-
// data: it's claiming having more data that what is possible to read.
|
|
401
|
-
//
|
|
402
|
-
if(_startSeq + _minSeqSize > static_cast<int>(b.size()))
|
|
403
|
-
{
|
|
404
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
return sz;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
void
|
|
411
|
-
Ice::InputStream::readBlob(vector<Byte>& v, Int sz)
|
|
412
|
-
{
|
|
413
|
-
if(sz > 0)
|
|
414
|
-
{
|
|
415
|
-
if(b.end() - i < sz)
|
|
416
|
-
{
|
|
417
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
418
|
-
}
|
|
419
|
-
vector<Byte>(i, i + sz).swap(v);
|
|
420
|
-
i += sz;
|
|
421
|
-
}
|
|
422
|
-
else
|
|
423
|
-
{
|
|
424
|
-
v.clear();
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
void
|
|
429
|
-
Ice::InputStream::read(std::vector<Ice::Byte>& v)
|
|
430
|
-
{
|
|
431
|
-
std::pair<const Ice::Byte*, const Ice::Byte*> p;
|
|
432
|
-
read(p);
|
|
433
|
-
if(p.first != p.second)
|
|
434
|
-
{
|
|
435
|
-
v.resize(static_cast<size_t>(p.second - p.first));
|
|
436
|
-
copy(p.first, p.second, v.begin());
|
|
437
|
-
}
|
|
438
|
-
else
|
|
439
|
-
{
|
|
440
|
-
v.clear();
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
void
|
|
445
|
-
Ice::InputStream::read(pair<const Byte*, const Byte*>& v)
|
|
446
|
-
{
|
|
447
|
-
Int sz = readAndCheckSeqSize(1);
|
|
448
|
-
if(sz > 0)
|
|
449
|
-
{
|
|
450
|
-
v.first = i;
|
|
451
|
-
v.second = i + sz;
|
|
452
|
-
i += sz;
|
|
453
|
-
}
|
|
454
|
-
else
|
|
455
|
-
{
|
|
456
|
-
v.first = v.second = i;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
void
|
|
461
|
-
Ice::InputStream::read(vector<bool>& v)
|
|
462
|
-
{
|
|
463
|
-
Int sz = readAndCheckSeqSize(1);
|
|
464
|
-
if(sz > 0)
|
|
465
|
-
{
|
|
466
|
-
v.resize(static_cast<size_t>(sz));
|
|
467
|
-
copy(i, i + sz, v.begin());
|
|
468
|
-
i += sz;
|
|
469
|
-
}
|
|
470
|
-
else
|
|
471
|
-
{
|
|
472
|
-
v.clear();
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
namespace
|
|
477
|
-
{
|
|
478
|
-
|
|
479
|
-
template<size_t boolSize>
|
|
480
|
-
struct ReadBoolHelper
|
|
481
|
-
{
|
|
482
|
-
static bool* read(pair<const bool*, const bool*>& v, Int sz, InputStream::Container::iterator& i)
|
|
483
|
-
{
|
|
484
|
-
bool* array = new bool[static_cast<size_t>(sz)];
|
|
485
|
-
for(int idx = 0; idx < sz; ++idx)
|
|
486
|
-
{
|
|
487
|
-
array[idx] = static_cast<bool>(*(i + idx));
|
|
488
|
-
}
|
|
489
|
-
v.first = array;
|
|
490
|
-
v.second = array + sz;
|
|
491
|
-
return array;
|
|
492
|
-
}
|
|
493
|
-
};
|
|
494
|
-
|
|
495
|
-
template<>
|
|
496
|
-
struct ReadBoolHelper<1>
|
|
497
|
-
{
|
|
498
|
-
static bool* read(pair<const bool*, const bool*>& v, Int sz, InputStream::Container::iterator& i)
|
|
499
|
-
{
|
|
500
|
-
v.first = reinterpret_cast<bool*>(i);
|
|
501
|
-
v.second = reinterpret_cast<bool*>(i) + sz;
|
|
502
|
-
return 0;
|
|
503
|
-
}
|
|
504
|
-
};
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
#ifdef ICE_CPP11_MAPPING
|
|
509
|
-
void
|
|
510
|
-
Ice::InputStream::read(pair<const bool*, const bool*>& v)
|
|
511
|
-
{
|
|
512
|
-
Int sz = readAndCheckSeqSize(1);
|
|
513
|
-
if(sz > 0)
|
|
514
|
-
{
|
|
515
|
-
auto boolArray = ReadBoolHelper<sizeof(bool)>::read(v, sz, i);
|
|
516
|
-
if(boolArray)
|
|
517
|
-
{
|
|
518
|
-
_deleters.push_back([boolArray] { delete[] boolArray; });
|
|
519
|
-
}
|
|
520
|
-
i += sz;
|
|
521
|
-
}
|
|
522
|
-
else
|
|
523
|
-
{
|
|
524
|
-
v.first = v.second = reinterpret_cast<bool*>(i);
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
#else
|
|
529
|
-
void
|
|
530
|
-
Ice::InputStream::read(pair<const bool*, const bool*>& v, IceUtil::ScopedArray<bool>& result)
|
|
531
|
-
{
|
|
532
|
-
Int sz = readAndCheckSeqSize(1);
|
|
533
|
-
if(sz > 0)
|
|
534
|
-
{
|
|
535
|
-
result.reset(ReadBoolHelper<sizeof(bool)>::read(v, sz, i));
|
|
536
|
-
i += sz;
|
|
537
|
-
}
|
|
538
|
-
else
|
|
539
|
-
{
|
|
540
|
-
result.reset();
|
|
541
|
-
v.first = v.second = reinterpret_cast<bool*>(i);
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
#endif
|
|
545
|
-
|
|
546
|
-
void
|
|
547
|
-
Ice::InputStream::read(Short& v)
|
|
548
|
-
{
|
|
549
|
-
if(b.end() - i < static_cast<int>(sizeof(Short)))
|
|
550
|
-
{
|
|
551
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
552
|
-
}
|
|
553
|
-
const Byte* src = &(*i);
|
|
554
|
-
i += sizeof(Short);
|
|
555
|
-
#ifdef ICE_BIG_ENDIAN
|
|
556
|
-
Byte* dest = reinterpret_cast<Byte*>(&v) + sizeof(Short) - 1;
|
|
557
|
-
*dest-- = *src++;
|
|
558
|
-
*dest = *src;
|
|
559
|
-
#else
|
|
560
|
-
Byte* dest = reinterpret_cast<Byte*>(&v);
|
|
561
|
-
*dest++ = *src++;
|
|
562
|
-
*dest = *src;
|
|
563
|
-
#endif
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
void
|
|
567
|
-
Ice::InputStream::read(vector<Short>& v)
|
|
568
|
-
{
|
|
569
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Short)));
|
|
570
|
-
if(sz > 0)
|
|
571
|
-
{
|
|
572
|
-
Container::iterator begin = i;
|
|
573
|
-
i += sz * static_cast<int>(sizeof(Short));
|
|
574
|
-
v.resize(static_cast<size_t>(sz));
|
|
575
|
-
#ifdef ICE_BIG_ENDIAN
|
|
576
|
-
const Byte* src = &(*begin);
|
|
577
|
-
Byte* dest = reinterpret_cast<Byte*>(&v[0]) + sizeof(Short) - 1;
|
|
578
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
579
|
-
{
|
|
580
|
-
*dest-- = *src++;
|
|
581
|
-
*dest-- = *src++;
|
|
582
|
-
dest += 2 * sizeof(Short);
|
|
583
|
-
}
|
|
584
|
-
#else
|
|
585
|
-
copy(begin, i, reinterpret_cast<Byte*>(&v[0]));
|
|
586
|
-
#endif
|
|
587
|
-
}
|
|
588
|
-
else
|
|
589
|
-
{
|
|
590
|
-
v.clear();
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
#ifdef ICE_CPP11_MAPPING
|
|
595
|
-
void
|
|
596
|
-
Ice::InputStream::read(pair<const short*, const short*>& v)
|
|
597
|
-
#else
|
|
598
|
-
void
|
|
599
|
-
Ice::InputStream::read(pair<const Short*, const Short*>& v, IceUtil::ScopedArray<Short>& result)
|
|
600
|
-
#endif
|
|
601
|
-
{
|
|
602
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Short)));
|
|
603
|
-
if(sz > 0)
|
|
604
|
-
{
|
|
605
|
-
#ifdef ICE_UNALIGNED
|
|
606
|
-
v.first = reinterpret_cast<Short*>(i);
|
|
607
|
-
i += sz * static_cast<int>(sizeof(Short));
|
|
608
|
-
v.second = reinterpret_cast<Short*>(i);
|
|
609
|
-
#else
|
|
610
|
-
# ifdef ICE_CPP11_MAPPING
|
|
611
|
-
auto result = new short[static_cast<size_t>(sz)];
|
|
612
|
-
_deleters.push_back([result] { delete[] result; });
|
|
613
|
-
v.first = result;
|
|
614
|
-
v.second = result + sz;
|
|
615
|
-
# else
|
|
616
|
-
result.reset(new Short[static_cast<size_t>(sz)]);
|
|
617
|
-
v.first = result.get();
|
|
618
|
-
v.second = result.get() + sz;
|
|
619
|
-
# endif
|
|
620
|
-
|
|
621
|
-
Container::iterator begin = i;
|
|
622
|
-
i += sz * static_cast<int>(sizeof(Short));
|
|
623
|
-
# ifdef ICE_BIG_ENDIAN
|
|
624
|
-
const Byte* src = &(*begin);
|
|
625
|
-
Byte* dest = reinterpret_cast<Byte*>(&result[0]) + sizeof(Short) - 1;
|
|
626
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
627
|
-
{
|
|
628
|
-
*dest-- = *src++;
|
|
629
|
-
*dest-- = *src++;
|
|
630
|
-
dest += 2 * sizeof(Short);
|
|
631
|
-
}
|
|
632
|
-
# else
|
|
633
|
-
copy(begin, i, reinterpret_cast<Byte*>(&result[0]));
|
|
634
|
-
# endif
|
|
635
|
-
#endif
|
|
636
|
-
}
|
|
637
|
-
else
|
|
638
|
-
{
|
|
639
|
-
#ifndef ICE_CPP11_MAPPING
|
|
640
|
-
result.reset();
|
|
641
|
-
#endif
|
|
642
|
-
v.first = v.second = 0;
|
|
643
|
-
}
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
void
|
|
647
|
-
Ice::InputStream::read(vector<Int>& v)
|
|
648
|
-
{
|
|
649
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Int)));
|
|
650
|
-
if(sz > 0)
|
|
651
|
-
{
|
|
652
|
-
Container::iterator begin = i;
|
|
653
|
-
i += sz * static_cast<int>(sizeof(Int));
|
|
654
|
-
v.resize(static_cast<size_t>(sz));
|
|
655
|
-
#ifdef ICE_BIG_ENDIAN
|
|
656
|
-
const Byte* src = &(*begin);
|
|
657
|
-
Byte* dest = reinterpret_cast<Byte*>(&v[0]) + sizeof(Int) - 1;
|
|
658
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
659
|
-
{
|
|
660
|
-
*dest-- = *src++;
|
|
661
|
-
*dest-- = *src++;
|
|
662
|
-
*dest-- = *src++;
|
|
663
|
-
*dest-- = *src++;
|
|
664
|
-
dest += 2 * sizeof(Int);
|
|
665
|
-
}
|
|
666
|
-
#else
|
|
667
|
-
copy(begin, i, reinterpret_cast<Byte*>(&v[0]));
|
|
668
|
-
#endif
|
|
669
|
-
}
|
|
670
|
-
else
|
|
671
|
-
{
|
|
672
|
-
v.clear();
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
#ifdef ICE_CPP11_MAPPING
|
|
677
|
-
void
|
|
678
|
-
Ice::InputStream::read(pair<const Int*, const Int*>& v)
|
|
679
|
-
#else
|
|
680
|
-
void
|
|
681
|
-
Ice::InputStream::read(pair<const Int*, const Int*>& v, ::IceUtil::ScopedArray<Int>& result)
|
|
682
|
-
#endif
|
|
683
|
-
{
|
|
684
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Int)));
|
|
685
|
-
if(sz > 0)
|
|
686
|
-
{
|
|
687
|
-
#ifdef ICE_UNALIGNED
|
|
688
|
-
v.first = reinterpret_cast<Int*>(i);
|
|
689
|
-
i += sz * static_cast<int>(sizeof(Int));
|
|
690
|
-
v.second = reinterpret_cast<Int*>(i);
|
|
691
|
-
#else
|
|
692
|
-
|
|
693
|
-
# ifdef ICE_CPP11_MAPPING
|
|
694
|
-
auto result = new int[static_cast<size_t>(sz)];
|
|
695
|
-
_deleters.push_back([result] { delete[] result; });
|
|
696
|
-
v.first = result;
|
|
697
|
-
v.second = result + sz;
|
|
698
|
-
# else
|
|
699
|
-
result.reset(new Int[static_cast<size_t>(sz)]);
|
|
700
|
-
v.first = result.get();
|
|
701
|
-
v.second = result.get() + sz;
|
|
702
|
-
# endif
|
|
703
|
-
|
|
704
|
-
Container::iterator begin = i;
|
|
705
|
-
i += sz * static_cast<int>(sizeof(Int));
|
|
706
|
-
# ifdef ICE_BIG_ENDIAN
|
|
707
|
-
const Byte* src = &(*begin);
|
|
708
|
-
Byte* dest = reinterpret_cast<Byte*>(&result[0]) + sizeof(Int) - 1;
|
|
709
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
710
|
-
{
|
|
711
|
-
*dest-- = *src++;
|
|
712
|
-
*dest-- = *src++;
|
|
713
|
-
*dest-- = *src++;
|
|
714
|
-
*dest-- = *src++;
|
|
715
|
-
dest += 2 * sizeof(Int);
|
|
716
|
-
}
|
|
717
|
-
# else
|
|
718
|
-
copy(begin, i, reinterpret_cast<Byte*>(&result[0]));
|
|
719
|
-
# endif
|
|
720
|
-
#endif
|
|
721
|
-
}
|
|
722
|
-
else
|
|
723
|
-
{
|
|
724
|
-
#ifndef ICE_CPP11_MAPPING
|
|
725
|
-
result.reset();
|
|
726
|
-
#endif
|
|
727
|
-
v.first = v.second = 0;
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
void
|
|
732
|
-
Ice::InputStream::read(Long& v)
|
|
733
|
-
{
|
|
734
|
-
if(b.end() - i < static_cast<int>(sizeof(Long)))
|
|
735
|
-
{
|
|
736
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
737
|
-
}
|
|
738
|
-
const Byte* src = &(*i);
|
|
739
|
-
i += sizeof(Long);
|
|
740
|
-
#ifdef ICE_BIG_ENDIAN
|
|
741
|
-
Byte* dest = reinterpret_cast<Byte*>(&v) + sizeof(Long) - 1;
|
|
742
|
-
*dest-- = *src++;
|
|
743
|
-
*dest-- = *src++;
|
|
744
|
-
*dest-- = *src++;
|
|
745
|
-
*dest-- = *src++;
|
|
746
|
-
*dest-- = *src++;
|
|
747
|
-
*dest-- = *src++;
|
|
748
|
-
*dest-- = *src++;
|
|
749
|
-
*dest = *src;
|
|
750
|
-
#else
|
|
751
|
-
Byte* dest = reinterpret_cast<Byte*>(&v);
|
|
752
|
-
*dest++ = *src++;
|
|
753
|
-
*dest++ = *src++;
|
|
754
|
-
*dest++ = *src++;
|
|
755
|
-
*dest++ = *src++;
|
|
756
|
-
*dest++ = *src++;
|
|
757
|
-
*dest++ = *src++;
|
|
758
|
-
*dest++ = *src++;
|
|
759
|
-
*dest = *src;
|
|
760
|
-
#endif
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
void
|
|
764
|
-
Ice::InputStream::read(vector<Long>& v)
|
|
765
|
-
{
|
|
766
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Long)));
|
|
767
|
-
if(sz > 0)
|
|
768
|
-
{
|
|
769
|
-
Container::iterator begin = i;
|
|
770
|
-
i += sz * static_cast<int>(sizeof(Long));
|
|
771
|
-
v.resize(static_cast<size_t>(sz));
|
|
772
|
-
#ifdef ICE_BIG_ENDIAN
|
|
773
|
-
const Byte* src = &(*begin);
|
|
774
|
-
Byte* dest = reinterpret_cast<Byte*>(&v[0]) + sizeof(Long) - 1;
|
|
775
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
776
|
-
{
|
|
777
|
-
*dest-- = *src++;
|
|
778
|
-
*dest-- = *src++;
|
|
779
|
-
*dest-- = *src++;
|
|
780
|
-
*dest-- = *src++;
|
|
781
|
-
*dest-- = *src++;
|
|
782
|
-
*dest-- = *src++;
|
|
783
|
-
*dest-- = *src++;
|
|
784
|
-
*dest-- = *src++;
|
|
785
|
-
dest += 2 * sizeof(Long);
|
|
786
|
-
}
|
|
787
|
-
#else
|
|
788
|
-
copy(begin, i, reinterpret_cast<Byte*>(&v[0]));
|
|
789
|
-
#endif
|
|
790
|
-
}
|
|
791
|
-
else
|
|
792
|
-
{
|
|
793
|
-
v.clear();
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
#ifdef ICE_CPP11_MAPPING
|
|
798
|
-
void
|
|
799
|
-
Ice::InputStream::read(pair<const Long*, const Long*>& v)
|
|
800
|
-
#else
|
|
801
|
-
void
|
|
802
|
-
Ice::InputStream::read(pair<const Long*, const Long*>& v, IceUtil::ScopedArray<Long>& result)
|
|
803
|
-
#endif
|
|
804
|
-
{
|
|
805
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Long)));
|
|
806
|
-
if(sz > 0)
|
|
807
|
-
{
|
|
808
|
-
#ifdef ICE_UNALIGNED
|
|
809
|
-
v.first = reinterpret_cast<Long*>(i);
|
|
810
|
-
i += sz * static_cast<int>(sizeof(Long));
|
|
811
|
-
v.second = reinterpret_cast<Long*>(i);
|
|
812
|
-
#else
|
|
813
|
-
|
|
814
|
-
# ifdef ICE_CPP11_MAPPING
|
|
815
|
-
auto result = new long long[static_cast<size_t>(sz)];
|
|
816
|
-
_deleters.push_back([result] { delete[] result; });
|
|
817
|
-
v.first = result;
|
|
818
|
-
v.second = result + sz;
|
|
819
|
-
# else
|
|
820
|
-
result.reset(new Long[static_cast<size_t>(sz)]);
|
|
821
|
-
v.first = result.get();
|
|
822
|
-
v.second = result.get() + sz;
|
|
823
|
-
# endif
|
|
824
|
-
|
|
825
|
-
Container::iterator begin = i;
|
|
826
|
-
i += sz * static_cast<int>(sizeof(Long));
|
|
827
|
-
# ifdef ICE_BIG_ENDIAN
|
|
828
|
-
const Byte* src = &(*begin);
|
|
829
|
-
Byte* dest = reinterpret_cast<Byte*>(&result[0]) + sizeof(Long) - 1;
|
|
830
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
831
|
-
{
|
|
832
|
-
*dest-- = *src++;
|
|
833
|
-
*dest-- = *src++;
|
|
834
|
-
*dest-- = *src++;
|
|
835
|
-
*dest-- = *src++;
|
|
836
|
-
*dest-- = *src++;
|
|
837
|
-
*dest-- = *src++;
|
|
838
|
-
*dest-- = *src++;
|
|
839
|
-
*dest-- = *src++;
|
|
840
|
-
dest += 2 * sizeof(Long);
|
|
841
|
-
}
|
|
842
|
-
# else
|
|
843
|
-
copy(begin, i, reinterpret_cast<Byte*>(&result[0]));
|
|
844
|
-
# endif
|
|
845
|
-
#endif
|
|
846
|
-
}
|
|
847
|
-
else
|
|
848
|
-
{
|
|
849
|
-
#ifndef ICE_CPP11_MAPPING
|
|
850
|
-
result.reset();
|
|
851
|
-
#endif
|
|
852
|
-
v.first = v.second = 0;
|
|
853
|
-
}
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
void
|
|
857
|
-
Ice::InputStream::read(Float& v)
|
|
858
|
-
{
|
|
859
|
-
if(b.end() - i < static_cast<int>(sizeof(Float)))
|
|
860
|
-
{
|
|
861
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
862
|
-
}
|
|
863
|
-
const Byte* src = &(*i);
|
|
864
|
-
i += sizeof(Float);
|
|
865
|
-
#ifdef ICE_BIG_ENDIAN
|
|
866
|
-
Byte* dest = reinterpret_cast<Byte*>(&v) + sizeof(Float) - 1;
|
|
867
|
-
*dest-- = *src++;
|
|
868
|
-
*dest-- = *src++;
|
|
869
|
-
*dest-- = *src++;
|
|
870
|
-
*dest = *src;
|
|
871
|
-
#else
|
|
872
|
-
Byte* dest = reinterpret_cast<Byte*>(&v);
|
|
873
|
-
*dest++ = *src++;
|
|
874
|
-
*dest++ = *src++;
|
|
875
|
-
*dest++ = *src++;
|
|
876
|
-
*dest = *src;
|
|
877
|
-
#endif
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
void
|
|
881
|
-
Ice::InputStream::read(vector<Float>& v)
|
|
882
|
-
{
|
|
883
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Float)));
|
|
884
|
-
if(sz > 0)
|
|
885
|
-
{
|
|
886
|
-
Container::iterator begin = i;
|
|
887
|
-
i += sz * static_cast<int>(sizeof(Float));
|
|
888
|
-
v.resize(static_cast<size_t>(sz));
|
|
889
|
-
#ifdef ICE_BIG_ENDIAN
|
|
890
|
-
const Byte* src = &(*begin);
|
|
891
|
-
Byte* dest = reinterpret_cast<Byte*>(&v[0]) + sizeof(Float) - 1;
|
|
892
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
893
|
-
{
|
|
894
|
-
*dest-- = *src++;
|
|
895
|
-
*dest-- = *src++;
|
|
896
|
-
*dest-- = *src++;
|
|
897
|
-
*dest-- = *src++;
|
|
898
|
-
dest += 2 * sizeof(Float);
|
|
899
|
-
}
|
|
900
|
-
#else
|
|
901
|
-
copy(begin, i, reinterpret_cast<Byte*>(&v[0]));
|
|
902
|
-
#endif
|
|
903
|
-
}
|
|
904
|
-
else
|
|
905
|
-
{
|
|
906
|
-
v.clear();
|
|
907
|
-
}
|
|
908
|
-
}
|
|
909
|
-
|
|
910
|
-
#ifdef ICE_CPP11_MAPPING
|
|
911
|
-
void
|
|
912
|
-
Ice::InputStream::read(pair<const Float*, const Float*>& v)
|
|
913
|
-
#else
|
|
914
|
-
void
|
|
915
|
-
Ice::InputStream::read(pair<const Float*, const Float*>& v, IceUtil::ScopedArray<Float>& result)
|
|
916
|
-
#endif
|
|
917
|
-
{
|
|
918
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Float)));
|
|
919
|
-
if(sz > 0)
|
|
920
|
-
{
|
|
921
|
-
#ifdef ICE_UNALIGNED
|
|
922
|
-
v.first = reinterpret_cast<Float*>(i);
|
|
923
|
-
i += sz * static_cast<int>(sizeof(Float));
|
|
924
|
-
v.second = reinterpret_cast<Float*>(i);
|
|
925
|
-
#else
|
|
926
|
-
|
|
927
|
-
# ifdef ICE_CPP11_MAPPING
|
|
928
|
-
auto result = new float[static_cast<size_t>(sz)];
|
|
929
|
-
_deleters.push_back([result] { delete[] result; });
|
|
930
|
-
v.first = result;
|
|
931
|
-
v.second = result + sz;
|
|
932
|
-
# else
|
|
933
|
-
result.reset(new Float[static_cast<size_t>(sz)]);
|
|
934
|
-
v.first = result.get();
|
|
935
|
-
v.second = result.get() + sz;
|
|
936
|
-
# endif
|
|
937
|
-
|
|
938
|
-
Container::iterator begin = i;
|
|
939
|
-
i += sz * static_cast<int>(sizeof(Float));
|
|
940
|
-
# ifdef ICE_BIG_ENDIAN
|
|
941
|
-
const Byte* src = &(*begin);
|
|
942
|
-
Byte* dest = reinterpret_cast<Byte*>(&result[0]) + sizeof(Float) - 1;
|
|
943
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
944
|
-
{
|
|
945
|
-
*dest-- = *src++;
|
|
946
|
-
*dest-- = *src++;
|
|
947
|
-
*dest-- = *src++;
|
|
948
|
-
*dest-- = *src++;
|
|
949
|
-
dest += 2 * sizeof(Float);
|
|
950
|
-
}
|
|
951
|
-
# else
|
|
952
|
-
copy(begin, i, reinterpret_cast<Byte*>(&result[0]));
|
|
953
|
-
# endif
|
|
954
|
-
#endif
|
|
955
|
-
}
|
|
956
|
-
else
|
|
957
|
-
{
|
|
958
|
-
#ifndef ICE_CPP11_MAPPING
|
|
959
|
-
result.reset();
|
|
960
|
-
#endif
|
|
961
|
-
v.first = v.second = 0;
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
void
|
|
966
|
-
Ice::InputStream::read(Double& v)
|
|
967
|
-
{
|
|
968
|
-
if(b.end() - i < static_cast<int>(sizeof(Double)))
|
|
969
|
-
{
|
|
970
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
971
|
-
}
|
|
972
|
-
const Byte* src = &(*i);
|
|
973
|
-
i += sizeof(Double);
|
|
974
|
-
#ifdef ICE_BIG_ENDIAN
|
|
975
|
-
Byte* dest = reinterpret_cast<Byte*>(&v) + sizeof(Double) - 1;
|
|
976
|
-
*dest-- = *src++;
|
|
977
|
-
*dest-- = *src++;
|
|
978
|
-
*dest-- = *src++;
|
|
979
|
-
*dest-- = *src++;
|
|
980
|
-
*dest-- = *src++;
|
|
981
|
-
*dest-- = *src++;
|
|
982
|
-
*dest-- = *src++;
|
|
983
|
-
*dest = *src;
|
|
984
|
-
#else
|
|
985
|
-
Byte* dest = reinterpret_cast<Byte*>(&v);
|
|
986
|
-
*dest++ = *src++;
|
|
987
|
-
*dest++ = *src++;
|
|
988
|
-
*dest++ = *src++;
|
|
989
|
-
*dest++ = *src++;
|
|
990
|
-
*dest++ = *src++;
|
|
991
|
-
*dest++ = *src++;
|
|
992
|
-
*dest++ = *src++;
|
|
993
|
-
*dest = *src;
|
|
994
|
-
#endif
|
|
995
|
-
}
|
|
996
|
-
|
|
997
|
-
void
|
|
998
|
-
Ice::InputStream::read(vector<Double>& v)
|
|
999
|
-
{
|
|
1000
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Double)));
|
|
1001
|
-
if(sz > 0)
|
|
1002
|
-
{
|
|
1003
|
-
Container::iterator begin = i;
|
|
1004
|
-
i += sz * static_cast<int>(sizeof(Double));
|
|
1005
|
-
v.resize(static_cast<size_t>(sz));
|
|
1006
|
-
#ifdef ICE_BIG_ENDIAN
|
|
1007
|
-
const Byte* src = &(*begin);
|
|
1008
|
-
Byte* dest = reinterpret_cast<Byte*>(&v[0]) + sizeof(Double) - 1;
|
|
1009
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
1010
|
-
{
|
|
1011
|
-
*dest-- = *src++;
|
|
1012
|
-
*dest-- = *src++;
|
|
1013
|
-
*dest-- = *src++;
|
|
1014
|
-
*dest-- = *src++;
|
|
1015
|
-
*dest-- = *src++;
|
|
1016
|
-
*dest-- = *src++;
|
|
1017
|
-
*dest-- = *src++;
|
|
1018
|
-
*dest-- = *src++;
|
|
1019
|
-
dest += 2 * sizeof(Double);
|
|
1020
|
-
}
|
|
1021
|
-
#else
|
|
1022
|
-
copy(begin, i, reinterpret_cast<Byte*>(&v[0]));
|
|
1023
|
-
#endif
|
|
1024
|
-
}
|
|
1025
|
-
else
|
|
1026
|
-
{
|
|
1027
|
-
v.clear();
|
|
1028
|
-
}
|
|
1029
|
-
}
|
|
1030
|
-
|
|
1031
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1032
|
-
void
|
|
1033
|
-
Ice::InputStream::read(pair<const Double*, const Double*>& v)
|
|
1034
|
-
#else
|
|
1035
|
-
void
|
|
1036
|
-
Ice::InputStream::read(pair<const Double*, const Double*>& v, IceUtil::ScopedArray<Double>& result)
|
|
1037
|
-
#endif
|
|
1038
|
-
{
|
|
1039
|
-
Int sz = readAndCheckSeqSize(static_cast<int>(sizeof(Double)));
|
|
1040
|
-
if(sz > 0)
|
|
1041
|
-
{
|
|
1042
|
-
#ifdef ICE_UNALIGNED
|
|
1043
|
-
v.first = reinterpret_cast<Double*>(i);
|
|
1044
|
-
i += sz * static_cast<int>(sizeof(Double));
|
|
1045
|
-
v.second = reinterpret_cast<Double*>(i);
|
|
1046
|
-
#else
|
|
1047
|
-
|
|
1048
|
-
# ifdef ICE_CPP11_MAPPING
|
|
1049
|
-
auto result = new double[static_cast<size_t>(sz)];
|
|
1050
|
-
_deleters.push_back([result] { delete[] result; });
|
|
1051
|
-
v.first = result;
|
|
1052
|
-
v.second = result + sz;
|
|
1053
|
-
# else
|
|
1054
|
-
result.reset(new Double[static_cast<size_t>(sz)]);
|
|
1055
|
-
v.first = result.get();
|
|
1056
|
-
v.second = result.get() + sz;
|
|
1057
|
-
# endif
|
|
1058
|
-
|
|
1059
|
-
Container::iterator begin = i;
|
|
1060
|
-
i += sz * static_cast<int>(sizeof(Double));
|
|
1061
|
-
# ifdef ICE_BIG_ENDIAN
|
|
1062
|
-
const Byte* src = &(*begin);
|
|
1063
|
-
Byte* dest = reinterpret_cast<Byte*>(&result[0]) + sizeof(Double) - 1;
|
|
1064
|
-
for(int j = 0 ; j < sz ; ++j)
|
|
1065
|
-
{
|
|
1066
|
-
*dest-- = *src++;
|
|
1067
|
-
*dest-- = *src++;
|
|
1068
|
-
*dest-- = *src++;
|
|
1069
|
-
*dest-- = *src++;
|
|
1070
|
-
*dest-- = *src++;
|
|
1071
|
-
*dest-- = *src++;
|
|
1072
|
-
*dest-- = *src++;
|
|
1073
|
-
*dest-- = *src++;
|
|
1074
|
-
dest += 2 * sizeof(Double);
|
|
1075
|
-
}
|
|
1076
|
-
# else
|
|
1077
|
-
copy(begin, i, reinterpret_cast<Byte*>(&result[0]));
|
|
1078
|
-
# endif
|
|
1079
|
-
#endif
|
|
1080
|
-
}
|
|
1081
|
-
else
|
|
1082
|
-
{
|
|
1083
|
-
#ifndef ICE_CPP11_MAPPING
|
|
1084
|
-
result.reset();
|
|
1085
|
-
#endif
|
|
1086
|
-
v.first = v.second = 0;
|
|
1087
|
-
}
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
void
|
|
1091
|
-
Ice::InputStream::read(std::string& v, bool convert)
|
|
1092
|
-
{
|
|
1093
|
-
Int sz = readSize();
|
|
1094
|
-
if(sz > 0)
|
|
1095
|
-
{
|
|
1096
|
-
if(b.end() - i < sz)
|
|
1097
|
-
{
|
|
1098
|
-
throwUnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
if(!convert || !readConverted(v, sz))
|
|
1102
|
-
{
|
|
1103
|
-
string(reinterpret_cast<const char*>(&*i), reinterpret_cast<const char*>(&*i) + sz).swap(v);
|
|
1104
|
-
}
|
|
1105
|
-
i += sz;
|
|
1106
|
-
}
|
|
1107
|
-
else
|
|
1108
|
-
{
|
|
1109
|
-
v.clear();
|
|
1110
|
-
}
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1114
|
-
void
|
|
1115
|
-
Ice::InputStream::read(const char*& vdata, size_t& vsize, bool convert)
|
|
1116
|
-
{
|
|
1117
|
-
int sz = readSize();
|
|
1118
|
-
if(sz > 0)
|
|
1119
|
-
{
|
|
1120
|
-
if(b.end() - i < sz)
|
|
1121
|
-
{
|
|
1122
|
-
throwUnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1125
|
-
if(convert == false)
|
|
1126
|
-
{
|
|
1127
|
-
vdata = reinterpret_cast<const char*>(&*i);
|
|
1128
|
-
vsize = static_cast<size_t>(sz);
|
|
1129
|
-
i += sz;
|
|
1130
|
-
}
|
|
1131
|
-
else
|
|
1132
|
-
{
|
|
1133
|
-
string converted;
|
|
1134
|
-
if(readConverted(converted, sz))
|
|
1135
|
-
{
|
|
1136
|
-
if(converted.size() <= static_cast<size_t>(sz))
|
|
1137
|
-
{
|
|
1138
|
-
//
|
|
1139
|
-
// Write converted string directly into buffer
|
|
1140
|
-
//
|
|
1141
|
-
std::memcpy(i, converted.data(), converted.size());
|
|
1142
|
-
vdata = reinterpret_cast<const char*>(&*i);
|
|
1143
|
-
vsize = converted.size();
|
|
1144
|
-
}
|
|
1145
|
-
else
|
|
1146
|
-
{
|
|
1147
|
-
auto holder = new string(std::move(converted));
|
|
1148
|
-
_deleters.push_back([holder] { delete holder; });
|
|
1149
|
-
vdata = holder->data();
|
|
1150
|
-
vsize = holder->size();
|
|
1151
|
-
}
|
|
1152
|
-
}
|
|
1153
|
-
else
|
|
1154
|
-
{
|
|
1155
|
-
vdata = reinterpret_cast<const char*>(&*i);
|
|
1156
|
-
vsize = static_cast<size_t>(sz);
|
|
1157
|
-
}
|
|
1158
|
-
i += sz;
|
|
1159
|
-
}
|
|
1160
|
-
}
|
|
1161
|
-
else
|
|
1162
|
-
{
|
|
1163
|
-
vdata = 0;
|
|
1164
|
-
vsize = 0;
|
|
1165
|
-
}
|
|
1166
|
-
}
|
|
1167
|
-
|
|
1168
|
-
#else
|
|
1169
|
-
|
|
1170
|
-
void
|
|
1171
|
-
Ice::InputStream::read(const char*& vdata, size_t& vsize)
|
|
1172
|
-
{
|
|
1173
|
-
Int sz = readSize();
|
|
1174
|
-
if(sz > 0)
|
|
1175
|
-
{
|
|
1176
|
-
if(b.end() - i < sz)
|
|
1177
|
-
{
|
|
1178
|
-
throwUnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1179
|
-
}
|
|
1180
|
-
|
|
1181
|
-
vdata = reinterpret_cast<const char*>(&*i);
|
|
1182
|
-
vsize = static_cast<size_t>(sz);
|
|
1183
|
-
i += sz;
|
|
1184
|
-
}
|
|
1185
|
-
else
|
|
1186
|
-
{
|
|
1187
|
-
vdata = 0;
|
|
1188
|
-
vsize = 0;
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
|
|
1192
|
-
void
|
|
1193
|
-
Ice::InputStream::read(const char*& vdata, size_t& vsize, string& holder)
|
|
1194
|
-
{
|
|
1195
|
-
Int sz = readSize();
|
|
1196
|
-
if(sz > 0)
|
|
1197
|
-
{
|
|
1198
|
-
if(b.end() - i < sz)
|
|
1199
|
-
{
|
|
1200
|
-
throwUnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
if(readConverted(holder, sz))
|
|
1204
|
-
{
|
|
1205
|
-
vdata = holder.data();
|
|
1206
|
-
vsize = holder.size();
|
|
1207
|
-
}
|
|
1208
|
-
else
|
|
1209
|
-
{
|
|
1210
|
-
vdata = reinterpret_cast<const char*>(&*i);
|
|
1211
|
-
vsize = static_cast<size_t>(sz);
|
|
1212
|
-
}
|
|
1213
|
-
i += sz;
|
|
1214
|
-
}
|
|
1215
|
-
else
|
|
1216
|
-
{
|
|
1217
|
-
holder.clear();
|
|
1218
|
-
vdata = 0;
|
|
1219
|
-
vsize = 0;
|
|
1220
|
-
}
|
|
1221
|
-
}
|
|
1222
|
-
#endif
|
|
1223
|
-
|
|
1224
|
-
bool
|
|
1225
|
-
Ice::InputStream::readConverted(string& v, int sz)
|
|
1226
|
-
{
|
|
1227
|
-
try
|
|
1228
|
-
{
|
|
1229
|
-
bool converted = false;
|
|
1230
|
-
|
|
1231
|
-
//
|
|
1232
|
-
// NOTE: When using an _instance, we get a const& on the string reference to
|
|
1233
|
-
// not have to increment unecessarily its reference count.
|
|
1234
|
-
//
|
|
1235
|
-
|
|
1236
|
-
if(_instance)
|
|
1237
|
-
{
|
|
1238
|
-
const StringConverterPtr& stringConverter = _instance->getStringConverter();
|
|
1239
|
-
if(stringConverter)
|
|
1240
|
-
{
|
|
1241
|
-
stringConverter->fromUTF8(i, i + sz, v);
|
|
1242
|
-
converted = true;
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
else
|
|
1246
|
-
{
|
|
1247
|
-
StringConverterPtr stringConverter = getProcessStringConverter();
|
|
1248
|
-
if(stringConverter)
|
|
1249
|
-
{
|
|
1250
|
-
stringConverter->fromUTF8(i, i + sz, v);
|
|
1251
|
-
converted = true;
|
|
1252
|
-
}
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
|
-
return converted;
|
|
1256
|
-
}
|
|
1257
|
-
catch(const IllegalConversionException& ex)
|
|
1258
|
-
{
|
|
1259
|
-
throw StringConversionException(__FILE__, __LINE__, ex.reason());
|
|
1260
|
-
}
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
void
|
|
1264
|
-
Ice::InputStream::read(vector<string>& v, bool convert)
|
|
1265
|
-
{
|
|
1266
|
-
Int sz = readAndCheckSeqSize(1);
|
|
1267
|
-
if(sz > 0)
|
|
1268
|
-
{
|
|
1269
|
-
v.resize(static_cast<size_t>(sz));
|
|
1270
|
-
for(size_t j = 0; j < static_cast<size_t>(sz); ++j)
|
|
1271
|
-
{
|
|
1272
|
-
read(v[j], convert);
|
|
1273
|
-
}
|
|
1274
|
-
}
|
|
1275
|
-
else
|
|
1276
|
-
{
|
|
1277
|
-
v.clear();
|
|
1278
|
-
}
|
|
1279
|
-
}
|
|
1280
|
-
|
|
1281
|
-
void
|
|
1282
|
-
Ice::InputStream::read(wstring& v)
|
|
1283
|
-
{
|
|
1284
|
-
Int sz = readSize();
|
|
1285
|
-
if(sz > 0)
|
|
1286
|
-
{
|
|
1287
|
-
if(b.end() - i < sz)
|
|
1288
|
-
{
|
|
1289
|
-
throwUnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1290
|
-
}
|
|
1291
|
-
|
|
1292
|
-
try
|
|
1293
|
-
{
|
|
1294
|
-
if(_instance)
|
|
1295
|
-
{
|
|
1296
|
-
const WstringConverterPtr& wstringConverter = _instance->getWstringConverter();
|
|
1297
|
-
wstringConverter->fromUTF8(i, i + sz, v);
|
|
1298
|
-
}
|
|
1299
|
-
else
|
|
1300
|
-
{
|
|
1301
|
-
WstringConverterPtr wstringConverter = getProcessWstringConverter();
|
|
1302
|
-
wstringConverter->fromUTF8(i, i + sz, v);
|
|
1303
|
-
}
|
|
1304
|
-
|
|
1305
|
-
i += sz;
|
|
1306
|
-
}
|
|
1307
|
-
catch(const IllegalConversionException& ex)
|
|
1308
|
-
{
|
|
1309
|
-
throw StringConversionException(__FILE__, __LINE__, ex.reason());
|
|
1310
|
-
}
|
|
1311
|
-
}
|
|
1312
|
-
else
|
|
1313
|
-
{
|
|
1314
|
-
v.clear();
|
|
1315
|
-
}
|
|
1316
|
-
}
|
|
1317
|
-
|
|
1318
|
-
void
|
|
1319
|
-
Ice::InputStream::read(vector<wstring>& v)
|
|
1320
|
-
{
|
|
1321
|
-
size_t sz = static_cast<size_t>(readAndCheckSeqSize(1));
|
|
1322
|
-
if(sz > 0)
|
|
1323
|
-
{
|
|
1324
|
-
v.resize(sz);
|
|
1325
|
-
for(size_t j = 0; j < sz; ++j)
|
|
1326
|
-
{
|
|
1327
|
-
read(v[j]);
|
|
1328
|
-
}
|
|
1329
|
-
}
|
|
1330
|
-
else
|
|
1331
|
-
{
|
|
1332
|
-
v.clear();
|
|
1333
|
-
}
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1337
|
-
shared_ptr<ObjectPrx>
|
|
1338
|
-
Ice::InputStream::readProxy()
|
|
1339
|
-
{
|
|
1340
|
-
if(!_instance)
|
|
1341
|
-
{
|
|
1342
|
-
throw MarshalException(__FILE__, __LINE__, "cannot unmarshal a proxy without a communicator");
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
|
-
return _instance->proxyFactory()->streamToProxy(this);
|
|
1346
|
-
}
|
|
1347
|
-
#else
|
|
1348
|
-
void
|
|
1349
|
-
Ice::InputStream::read(ObjectPrx& v)
|
|
1350
|
-
{
|
|
1351
|
-
if(!_instance)
|
|
1352
|
-
{
|
|
1353
|
-
throw MarshalException(__FILE__, __LINE__, "cannot unmarshal a proxy without a communicator");
|
|
1354
|
-
}
|
|
1355
|
-
|
|
1356
|
-
v = _instance->proxyFactory()->streamToProxy(this);
|
|
1357
|
-
}
|
|
1358
|
-
#endif
|
|
1359
|
-
|
|
1360
|
-
Int
|
|
1361
|
-
Ice::InputStream::readEnum(Int maxValue)
|
|
1362
|
-
{
|
|
1363
|
-
if(getEncoding() == Encoding_1_0)
|
|
1364
|
-
{
|
|
1365
|
-
if(maxValue < 127)
|
|
1366
|
-
{
|
|
1367
|
-
Byte value;
|
|
1368
|
-
read(value);
|
|
1369
|
-
return value;
|
|
1370
|
-
}
|
|
1371
|
-
else if(maxValue < 32767)
|
|
1372
|
-
{
|
|
1373
|
-
Short value;
|
|
1374
|
-
read(value);
|
|
1375
|
-
return value;
|
|
1376
|
-
}
|
|
1377
|
-
else
|
|
1378
|
-
{
|
|
1379
|
-
Int value;
|
|
1380
|
-
read(value);
|
|
1381
|
-
return value;
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1384
|
-
else
|
|
1385
|
-
{
|
|
1386
|
-
return readSize();
|
|
1387
|
-
}
|
|
1388
|
-
}
|
|
1389
|
-
|
|
1390
|
-
void
|
|
1391
|
-
Ice::InputStream::throwException(ICE_IN(ICE_DELEGATE(UserExceptionFactory)) factory)
|
|
1392
|
-
{
|
|
1393
|
-
initEncaps();
|
|
1394
|
-
_currentEncaps->decoder->throwException(factory);
|
|
1395
|
-
}
|
|
1396
|
-
|
|
1397
|
-
bool
|
|
1398
|
-
Ice::InputStream::readOptImpl(Int readTag, OptionalFormat expectedFormat)
|
|
1399
|
-
{
|
|
1400
|
-
if(getEncoding() == Encoding_1_0)
|
|
1401
|
-
{
|
|
1402
|
-
return false; // Optional members aren't supported with the 1.0 encoding.
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
while(true)
|
|
1406
|
-
{
|
|
1407
|
-
if(i >= b.begin() + _currentEncaps->start + _currentEncaps->sz)
|
|
1408
|
-
{
|
|
1409
|
-
return false; // End of encapsulation also indicates end of optionals.
|
|
1410
|
-
}
|
|
1411
|
-
|
|
1412
|
-
Byte v;
|
|
1413
|
-
read(v);
|
|
1414
|
-
if(v == OPTIONAL_END_MARKER)
|
|
1415
|
-
{
|
|
1416
|
-
--i; // Rewind
|
|
1417
|
-
return false;
|
|
1418
|
-
}
|
|
1419
|
-
|
|
1420
|
-
OptionalFormat format = static_cast<OptionalFormat>(v & 0x07); // First 3 bits.
|
|
1421
|
-
Int tag = static_cast<Int>(v >> 3);
|
|
1422
|
-
if(tag == 30)
|
|
1423
|
-
{
|
|
1424
|
-
tag = readSize();
|
|
1425
|
-
}
|
|
1426
|
-
|
|
1427
|
-
if(tag > readTag)
|
|
1428
|
-
{
|
|
1429
|
-
i -= tag < 30 ? 1 : (tag < 255 ? 2 : 6); // Rewind
|
|
1430
|
-
return false; // No optional data members with the requested tag.
|
|
1431
|
-
}
|
|
1432
|
-
else if(tag < readTag)
|
|
1433
|
-
{
|
|
1434
|
-
skipOptional(format); // Skip optional data members
|
|
1435
|
-
}
|
|
1436
|
-
else
|
|
1437
|
-
{
|
|
1438
|
-
if(format != expectedFormat)
|
|
1439
|
-
{
|
|
1440
|
-
ostringstream os;
|
|
1441
|
-
os << "invalid optional data member `" << tag << "': unexpected format";
|
|
1442
|
-
throw MarshalException(__FILE__, __LINE__, os.str());
|
|
1443
|
-
}
|
|
1444
|
-
return true;
|
|
1445
|
-
}
|
|
1446
|
-
}
|
|
1447
|
-
return true; // Keep the compiler happy.
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
void
|
|
1451
|
-
Ice::InputStream::skipOptional(OptionalFormat type)
|
|
1452
|
-
{
|
|
1453
|
-
switch(type)
|
|
1454
|
-
{
|
|
1455
|
-
case ICE_SCOPED_ENUM(OptionalFormat, F1):
|
|
1456
|
-
{
|
|
1457
|
-
skip(1);
|
|
1458
|
-
break;
|
|
1459
|
-
}
|
|
1460
|
-
case ICE_SCOPED_ENUM(OptionalFormat, F2):
|
|
1461
|
-
{
|
|
1462
|
-
skip(2);
|
|
1463
|
-
break;
|
|
1464
|
-
}
|
|
1465
|
-
case ICE_SCOPED_ENUM(OptionalFormat, F4):
|
|
1466
|
-
{
|
|
1467
|
-
skip(4);
|
|
1468
|
-
break;
|
|
1469
|
-
}
|
|
1470
|
-
case ICE_SCOPED_ENUM(OptionalFormat, F8):
|
|
1471
|
-
{
|
|
1472
|
-
skip(8);
|
|
1473
|
-
break;
|
|
1474
|
-
}
|
|
1475
|
-
case ICE_SCOPED_ENUM(OptionalFormat, Size):
|
|
1476
|
-
{
|
|
1477
|
-
skipSize();
|
|
1478
|
-
break;
|
|
1479
|
-
}
|
|
1480
|
-
case ICE_SCOPED_ENUM(OptionalFormat, VSize):
|
|
1481
|
-
{
|
|
1482
|
-
skip(static_cast<size_t>(readSize()));
|
|
1483
|
-
break;
|
|
1484
|
-
}
|
|
1485
|
-
case ICE_SCOPED_ENUM(OptionalFormat, FSize):
|
|
1486
|
-
{
|
|
1487
|
-
Int sz;
|
|
1488
|
-
read(sz);
|
|
1489
|
-
if(sz < 0)
|
|
1490
|
-
{
|
|
1491
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1492
|
-
}
|
|
1493
|
-
skip(static_cast<size_t>(sz));
|
|
1494
|
-
break;
|
|
1495
|
-
}
|
|
1496
|
-
case ICE_SCOPED_ENUM(OptionalFormat, Class):
|
|
1497
|
-
{
|
|
1498
|
-
read(0, 0);
|
|
1499
|
-
break;
|
|
1500
|
-
}
|
|
1501
|
-
}
|
|
1502
|
-
}
|
|
1503
|
-
|
|
1504
|
-
void
|
|
1505
|
-
Ice::InputStream::skipOptionals()
|
|
1506
|
-
{
|
|
1507
|
-
//
|
|
1508
|
-
// Skip remaining un-read optional members.
|
|
1509
|
-
//
|
|
1510
|
-
while(true)
|
|
1511
|
-
{
|
|
1512
|
-
if(i >= b.begin() + _currentEncaps->start + _currentEncaps->sz)
|
|
1513
|
-
{
|
|
1514
|
-
return; // End of encapsulation also indicates end of optionals.
|
|
1515
|
-
}
|
|
1516
|
-
|
|
1517
|
-
Byte v;
|
|
1518
|
-
read(v);
|
|
1519
|
-
if(v == OPTIONAL_END_MARKER)
|
|
1520
|
-
{
|
|
1521
|
-
return;
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
|
-
OptionalFormat format = static_cast<OptionalFormat>(v & 0x07); // Read first 3 bits.
|
|
1525
|
-
if(static_cast<Int>(v >> 3) == 30)
|
|
1526
|
-
{
|
|
1527
|
-
skipSize();
|
|
1528
|
-
}
|
|
1529
|
-
skipOptional(format);
|
|
1530
|
-
}
|
|
1531
|
-
}
|
|
1532
|
-
|
|
1533
|
-
void
|
|
1534
|
-
Ice::InputStream::throwUnmarshalOutOfBoundsException(const char* file, int line)
|
|
1535
|
-
{
|
|
1536
|
-
throw UnmarshalOutOfBoundsException(file, line);
|
|
1537
|
-
}
|
|
1538
|
-
|
|
1539
|
-
void
|
|
1540
|
-
Ice::InputStream::throwEncapsulationException(const char* file, int line)
|
|
1541
|
-
{
|
|
1542
|
-
throw EncapsulationException(file, line);
|
|
1543
|
-
}
|
|
1544
|
-
|
|
1545
|
-
string
|
|
1546
|
-
Ice::InputStream::resolveCompactId(int id) const
|
|
1547
|
-
{
|
|
1548
|
-
string type;
|
|
1549
|
-
|
|
1550
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1551
|
-
function<string(int)> resolver = compactIdResolver();
|
|
1552
|
-
#else
|
|
1553
|
-
CompactIdResolverPtr resolver = compactIdResolver();
|
|
1554
|
-
#endif
|
|
1555
|
-
|
|
1556
|
-
if(resolver)
|
|
1557
|
-
{
|
|
1558
|
-
try
|
|
1559
|
-
{
|
|
1560
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1561
|
-
type = resolver(id);
|
|
1562
|
-
#else
|
|
1563
|
-
type = resolver->resolve(id);
|
|
1564
|
-
#endif
|
|
1565
|
-
}
|
|
1566
|
-
catch(const LocalException&)
|
|
1567
|
-
{
|
|
1568
|
-
throw;
|
|
1569
|
-
}
|
|
1570
|
-
catch(const std::exception& ex)
|
|
1571
|
-
{
|
|
1572
|
-
ostringstream ostr;
|
|
1573
|
-
ostr << "exception in CompactIdResolver for ID " << id;
|
|
1574
|
-
string msg = ostr.str();
|
|
1575
|
-
string what = ex.what();
|
|
1576
|
-
if(!what.empty())
|
|
1577
|
-
{
|
|
1578
|
-
msg += ":\n" + what;
|
|
1579
|
-
}
|
|
1580
|
-
throw MarshalException(__FILE__, __LINE__, msg);
|
|
1581
|
-
}
|
|
1582
|
-
catch(...)
|
|
1583
|
-
{
|
|
1584
|
-
ostringstream ostr;
|
|
1585
|
-
ostr << "unknown exception in CompactIdResolver for ID " << id;
|
|
1586
|
-
throw MarshalException(__FILE__, __LINE__, ostr.str());
|
|
1587
|
-
}
|
|
1588
|
-
}
|
|
1589
|
-
|
|
1590
|
-
return type;
|
|
1591
|
-
}
|
|
1592
|
-
|
|
1593
|
-
void
|
|
1594
|
-
Ice::InputStream::postUnmarshal(const ValuePtr& v) const
|
|
1595
|
-
{
|
|
1596
|
-
try
|
|
1597
|
-
{
|
|
1598
|
-
#ifndef ICE_CPP11_MAPPING
|
|
1599
|
-
if(_collectObjects)
|
|
1600
|
-
{
|
|
1601
|
-
v->ice_collectable(true);
|
|
1602
|
-
}
|
|
1603
|
-
#endif
|
|
1604
|
-
v->ice_postUnmarshal();
|
|
1605
|
-
}
|
|
1606
|
-
catch(const std::exception& ex)
|
|
1607
|
-
{
|
|
1608
|
-
if(logger())
|
|
1609
|
-
{
|
|
1610
|
-
Warning out(logger());
|
|
1611
|
-
out << "std::exception raised by ice_postUnmarshal:\n" << ex;
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
catch(...)
|
|
1615
|
-
{
|
|
1616
|
-
if(logger())
|
|
1617
|
-
{
|
|
1618
|
-
Warning out(logger());
|
|
1619
|
-
out << "unknown exception raised by ice_postUnmarshal";
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
}
|
|
1623
|
-
|
|
1624
|
-
void
|
|
1625
|
-
Ice::InputStream::traceSkipSlice(const string& typeId, SliceType sliceType) const
|
|
1626
|
-
{
|
|
1627
|
-
if(_traceSlicing && logger())
|
|
1628
|
-
{
|
|
1629
|
-
traceSlicing(sliceType == ExceptionSlice ? "exception" : "object", typeId, "Slicing", logger());
|
|
1630
|
-
}
|
|
1631
|
-
}
|
|
1632
|
-
|
|
1633
|
-
ValueFactoryManagerPtr
|
|
1634
|
-
Ice::InputStream::valueFactoryManager() const
|
|
1635
|
-
{
|
|
1636
|
-
if(_valueFactoryManager)
|
|
1637
|
-
{
|
|
1638
|
-
return _valueFactoryManager;
|
|
1639
|
-
}
|
|
1640
|
-
else if(_instance)
|
|
1641
|
-
{
|
|
1642
|
-
return _instance->initializationData().valueFactoryManager;
|
|
1643
|
-
}
|
|
1644
|
-
|
|
1645
|
-
return 0;
|
|
1646
|
-
}
|
|
1647
|
-
|
|
1648
|
-
LoggerPtr
|
|
1649
|
-
Ice::InputStream::logger() const
|
|
1650
|
-
{
|
|
1651
|
-
if(_logger)
|
|
1652
|
-
{
|
|
1653
|
-
return _logger;
|
|
1654
|
-
}
|
|
1655
|
-
else if(_instance)
|
|
1656
|
-
{
|
|
1657
|
-
return _instance->initializationData().logger;
|
|
1658
|
-
}
|
|
1659
|
-
|
|
1660
|
-
return 0;
|
|
1661
|
-
}
|
|
1662
|
-
|
|
1663
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1664
|
-
function<string(int)>
|
|
1665
|
-
Ice::InputStream::compactIdResolver() const
|
|
1666
|
-
{
|
|
1667
|
-
if(_compactIdResolver)
|
|
1668
|
-
{
|
|
1669
|
-
return _compactIdResolver;
|
|
1670
|
-
}
|
|
1671
|
-
else if(_instance)
|
|
1672
|
-
{
|
|
1673
|
-
return _instance->initializationData().compactIdResolver;
|
|
1674
|
-
}
|
|
1675
|
-
|
|
1676
|
-
return nullptr;
|
|
1677
|
-
}
|
|
1678
|
-
#else
|
|
1679
|
-
CompactIdResolverPtr
|
|
1680
|
-
Ice::InputStream::compactIdResolver() const
|
|
1681
|
-
{
|
|
1682
|
-
if(_compactIdResolver)
|
|
1683
|
-
{
|
|
1684
|
-
return _compactIdResolver;
|
|
1685
|
-
}
|
|
1686
|
-
else if(_instance)
|
|
1687
|
-
{
|
|
1688
|
-
return _instance->initializationData().compactIdResolver;
|
|
1689
|
-
}
|
|
1690
|
-
|
|
1691
|
-
return 0;
|
|
1692
|
-
}
|
|
1693
|
-
#endif
|
|
1694
|
-
|
|
1695
|
-
void
|
|
1696
|
-
Ice::InputStream::initEncaps()
|
|
1697
|
-
{
|
|
1698
|
-
if(!_currentEncaps) // Lazy initialization.
|
|
1699
|
-
{
|
|
1700
|
-
_currentEncaps = &_preAllocatedEncaps;
|
|
1701
|
-
_currentEncaps->encoding = _encoding;
|
|
1702
|
-
_currentEncaps->sz = static_cast<Ice::Int>(b.size());
|
|
1703
|
-
}
|
|
1704
|
-
|
|
1705
|
-
if(!_currentEncaps->decoder) // Lazy initialization.
|
|
1706
|
-
{
|
|
1707
|
-
ValueFactoryManagerPtr vfm = valueFactoryManager();
|
|
1708
|
-
if(_currentEncaps->encoding == Encoding_1_0)
|
|
1709
|
-
{
|
|
1710
|
-
_currentEncaps->decoder = new EncapsDecoder10(this, _currentEncaps, _sliceValues, _classGraphDepthMax, vfm);
|
|
1711
|
-
}
|
|
1712
|
-
else
|
|
1713
|
-
{
|
|
1714
|
-
_currentEncaps->decoder = new EncapsDecoder11(this, _currentEncaps, _sliceValues, _classGraphDepthMax, vfm);
|
|
1715
|
-
}
|
|
1716
|
-
}
|
|
1717
|
-
}
|
|
1718
|
-
|
|
1719
|
-
Ice::InputStream::EncapsDecoder::~EncapsDecoder()
|
|
1720
|
-
{
|
|
1721
|
-
// Out of line to avoid weak vtable
|
|
1722
|
-
}
|
|
1723
|
-
|
|
1724
|
-
string
|
|
1725
|
-
Ice::InputStream::EncapsDecoder::readTypeId(bool isIndex)
|
|
1726
|
-
{
|
|
1727
|
-
if(isIndex)
|
|
1728
|
-
{
|
|
1729
|
-
Int index = _stream->readSize();
|
|
1730
|
-
TypeIdMap::const_iterator k = _typeIdMap.find(index);
|
|
1731
|
-
if(k == _typeIdMap.end())
|
|
1732
|
-
{
|
|
1733
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
1734
|
-
}
|
|
1735
|
-
return k->second;
|
|
1736
|
-
}
|
|
1737
|
-
else
|
|
1738
|
-
{
|
|
1739
|
-
string typeId;
|
|
1740
|
-
_stream->read(typeId, false);
|
|
1741
|
-
_typeIdMap.insert(make_pair(++_typeIdIndex, typeId));
|
|
1742
|
-
return typeId;
|
|
1743
|
-
}
|
|
1744
|
-
}
|
|
1745
|
-
|
|
1746
|
-
Ice::ValuePtr
|
|
1747
|
-
Ice::InputStream::EncapsDecoder::newInstance(const string& typeId)
|
|
1748
|
-
{
|
|
1749
|
-
Ice::ValuePtr v;
|
|
1750
|
-
|
|
1751
|
-
//
|
|
1752
|
-
// Try to find a factory registered for the specific type.
|
|
1753
|
-
//
|
|
1754
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1755
|
-
function<ValuePtr(const string&)> userFactory;
|
|
1756
|
-
if(_valueFactoryManager)
|
|
1757
|
-
{
|
|
1758
|
-
userFactory = _valueFactoryManager->find(typeId);
|
|
1759
|
-
if(userFactory)
|
|
1760
|
-
{
|
|
1761
|
-
v = userFactory(typeId);
|
|
1762
|
-
}
|
|
1763
|
-
}
|
|
1764
|
-
#else
|
|
1765
|
-
ValueFactoryPtr userFactory;
|
|
1766
|
-
if(_valueFactoryManager)
|
|
1767
|
-
{
|
|
1768
|
-
userFactory = _valueFactoryManager->find(typeId);
|
|
1769
|
-
if(userFactory)
|
|
1770
|
-
{
|
|
1771
|
-
v = userFactory->create(typeId);
|
|
1772
|
-
}
|
|
1773
|
-
}
|
|
1774
|
-
#endif
|
|
1775
|
-
//
|
|
1776
|
-
// If that fails, invoke the default factory if one has been registered.
|
|
1777
|
-
//
|
|
1778
|
-
if(!v && _valueFactoryManager)
|
|
1779
|
-
{
|
|
1780
|
-
userFactory = _valueFactoryManager->find("");
|
|
1781
|
-
if(userFactory)
|
|
1782
|
-
{
|
|
1783
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1784
|
-
v = userFactory(typeId);
|
|
1785
|
-
#else
|
|
1786
|
-
v = userFactory->create(typeId);
|
|
1787
|
-
#endif
|
|
1788
|
-
}
|
|
1789
|
-
}
|
|
1790
|
-
|
|
1791
|
-
//
|
|
1792
|
-
// Last chance: check the table of static factories (i.e.,
|
|
1793
|
-
// automatically generated factories for concrete classes).
|
|
1794
|
-
//
|
|
1795
|
-
if(!v)
|
|
1796
|
-
{
|
|
1797
|
-
#ifdef ICE_CPP11_MAPPING
|
|
1798
|
-
function<ValuePtr(const string&)> of = IceInternal::factoryTable->getValueFactory(typeId);
|
|
1799
|
-
if(of)
|
|
1800
|
-
{
|
|
1801
|
-
v = of(typeId);
|
|
1802
|
-
assert(v);
|
|
1803
|
-
}
|
|
1804
|
-
#else
|
|
1805
|
-
ValueFactoryPtr of = IceInternal::factoryTable->getValueFactory(typeId);
|
|
1806
|
-
if(of)
|
|
1807
|
-
{
|
|
1808
|
-
v = of->create(typeId);
|
|
1809
|
-
assert(v);
|
|
1810
|
-
}
|
|
1811
|
-
#endif
|
|
1812
|
-
}
|
|
1813
|
-
return v;
|
|
1814
|
-
}
|
|
1815
|
-
|
|
1816
|
-
void
|
|
1817
|
-
Ice::InputStream::EncapsDecoder::addPatchEntry(Int index, PatchFunc patchFunc, void* patchAddr)
|
|
1818
|
-
{
|
|
1819
|
-
assert(index > 0);
|
|
1820
|
-
|
|
1821
|
-
//
|
|
1822
|
-
// Check if we already unmarshaled the object. If that's the case, just patch the object smart pointer
|
|
1823
|
-
// and we're done. A null value indicates we've encountered a cycle and Ice.AllowClassCycles is false.
|
|
1824
|
-
//
|
|
1825
|
-
IndexToPtrMap::iterator p = _unmarshaledMap.find(index);
|
|
1826
|
-
if(p != _unmarshaledMap.end())
|
|
1827
|
-
{
|
|
1828
|
-
if (p->second == ICE_NULLPTR)
|
|
1829
|
-
{
|
|
1830
|
-
assert(!_stream->_instance->acceptClassCycles());
|
|
1831
|
-
throw MarshalException(__FILE__, __LINE__, "cycle detected during Value unmarshaling");
|
|
1832
|
-
}
|
|
1833
|
-
(*patchFunc)(patchAddr, p->second);
|
|
1834
|
-
return;
|
|
1835
|
-
}
|
|
1836
|
-
|
|
1837
|
-
//
|
|
1838
|
-
// Add a patch entry if the object isn't unmarshaled yet, the
|
|
1839
|
-
// smart pointer will be patched when the instance is
|
|
1840
|
-
// unmarshaled.
|
|
1841
|
-
//
|
|
1842
|
-
|
|
1843
|
-
PatchMap::iterator q = _patchMap.find(index);
|
|
1844
|
-
if(q == _patchMap.end())
|
|
1845
|
-
{
|
|
1846
|
-
//
|
|
1847
|
-
// We have no outstanding instances to be patched for this
|
|
1848
|
-
// index, so make a new entry in the patch map.
|
|
1849
|
-
//
|
|
1850
|
-
q = _patchMap.insert(make_pair(index, PatchList())).first;
|
|
1851
|
-
}
|
|
1852
|
-
|
|
1853
|
-
//
|
|
1854
|
-
// Append a patch entry for this instance.
|
|
1855
|
-
//
|
|
1856
|
-
PatchEntry e;
|
|
1857
|
-
e.patchFunc = patchFunc;
|
|
1858
|
-
e.patchAddr = patchAddr;
|
|
1859
|
-
e.classGraphDepth = _classGraphDepth;
|
|
1860
|
-
q->second.push_back(e);
|
|
1861
|
-
}
|
|
1862
|
-
|
|
1863
|
-
void
|
|
1864
|
-
Ice::InputStream::EncapsDecoder::unmarshal(Int index, const Ice::ValuePtr& v)
|
|
1865
|
-
{
|
|
1866
|
-
//
|
|
1867
|
-
// Add the object to the map of unmarshaled instances, this must
|
|
1868
|
-
// be done before reading the instances (for circular references).
|
|
1869
|
-
//
|
|
1870
|
-
// If circular references are not allowed we insert null (for cycle detection) and add
|
|
1871
|
-
// the object to the map once it has been fully unmarshaled.
|
|
1872
|
-
//
|
|
1873
|
-
_unmarshaledMap.insert(make_pair(index, _stream->_instance->acceptClassCycles() ? v : Ice::ValuePtr()));
|
|
1874
|
-
|
|
1875
|
-
//
|
|
1876
|
-
// Read the object.
|
|
1877
|
-
//
|
|
1878
|
-
v->_iceRead(_stream);
|
|
1879
|
-
|
|
1880
|
-
//
|
|
1881
|
-
// Patch all instances now that the object is unmarshaled.
|
|
1882
|
-
//
|
|
1883
|
-
PatchMap::iterator patchPos = _patchMap.find(index);
|
|
1884
|
-
if(patchPos != _patchMap.end())
|
|
1885
|
-
{
|
|
1886
|
-
assert(patchPos->second.size() > 0);
|
|
1887
|
-
|
|
1888
|
-
//
|
|
1889
|
-
// Patch all pointers that refer to the instance.
|
|
1890
|
-
//
|
|
1891
|
-
for(PatchList::iterator k = patchPos->second.begin(); k != patchPos->second.end(); ++k)
|
|
1892
|
-
{
|
|
1893
|
-
(*k->patchFunc)(k->patchAddr, v);
|
|
1894
|
-
}
|
|
1895
|
-
|
|
1896
|
-
//
|
|
1897
|
-
// Clear out the patch map for that index -- there is nothing left
|
|
1898
|
-
// to patch for that index for the time being.
|
|
1899
|
-
//
|
|
1900
|
-
_patchMap.erase(patchPos);
|
|
1901
|
-
}
|
|
1902
|
-
|
|
1903
|
-
if(_valueList.empty() && _patchMap.empty())
|
|
1904
|
-
{
|
|
1905
|
-
_stream->postUnmarshal(v);
|
|
1906
|
-
}
|
|
1907
|
-
else
|
|
1908
|
-
{
|
|
1909
|
-
_valueList.push_back(v);
|
|
1910
|
-
|
|
1911
|
-
if(_patchMap.empty())
|
|
1912
|
-
{
|
|
1913
|
-
//
|
|
1914
|
-
// Iterate over the value list and invoke ice_postUnmarshal on
|
|
1915
|
-
// each value. We must do this after all values have been
|
|
1916
|
-
// unmarshaled in order to ensure that any value data members
|
|
1917
|
-
// have been properly patched.
|
|
1918
|
-
//
|
|
1919
|
-
for(ValueList::iterator p = _valueList.begin(); p != _valueList.end(); ++p)
|
|
1920
|
-
{
|
|
1921
|
-
_stream->postUnmarshal(*p);
|
|
1922
|
-
}
|
|
1923
|
-
_valueList.clear();
|
|
1924
|
-
}
|
|
1925
|
-
}
|
|
1926
|
-
|
|
1927
|
-
if(!_stream->_instance->acceptClassCycles())
|
|
1928
|
-
{
|
|
1929
|
-
// This class has been fully unmarshaled without creating any cycles
|
|
1930
|
-
// It can be added to the map now.
|
|
1931
|
-
_unmarshaledMap[index] = v;
|
|
1932
|
-
}
|
|
1933
|
-
}
|
|
1934
|
-
|
|
1935
|
-
void
|
|
1936
|
-
Ice::InputStream::EncapsDecoder10::read(PatchFunc patchFunc, void* patchAddr)
|
|
1937
|
-
{
|
|
1938
|
-
assert(patchFunc && patchAddr);
|
|
1939
|
-
|
|
1940
|
-
//
|
|
1941
|
-
// Object references are encoded as a negative integer in 1.0.
|
|
1942
|
-
//
|
|
1943
|
-
Int index;
|
|
1944
|
-
_stream->read(index);
|
|
1945
|
-
if(index > 0)
|
|
1946
|
-
{
|
|
1947
|
-
throw MarshalException(__FILE__, __LINE__, "invalid object id");
|
|
1948
|
-
}
|
|
1949
|
-
index = -index;
|
|
1950
|
-
|
|
1951
|
-
if(index == 0)
|
|
1952
|
-
{
|
|
1953
|
-
//
|
|
1954
|
-
// Calling the patch function for null instances is necessary for correct functioning of Ice for
|
|
1955
|
-
// Python and Ruby.
|
|
1956
|
-
//
|
|
1957
|
-
ValuePtr nil;
|
|
1958
|
-
patchFunc(patchAddr, nil);
|
|
1959
|
-
}
|
|
1960
|
-
else
|
|
1961
|
-
{
|
|
1962
|
-
addPatchEntry(index, patchFunc, patchAddr);
|
|
1963
|
-
}
|
|
1964
|
-
}
|
|
1965
|
-
|
|
1966
|
-
void
|
|
1967
|
-
Ice::InputStream::EncapsDecoder10::throwException(ICE_IN(ICE_DELEGATE(UserExceptionFactory)) factory)
|
|
1968
|
-
{
|
|
1969
|
-
assert(_sliceType == NoSlice);
|
|
1970
|
-
|
|
1971
|
-
//
|
|
1972
|
-
// User exception with the 1.0 encoding start with a boolean flag
|
|
1973
|
-
// that indicates whether or not the exception has classes.
|
|
1974
|
-
//
|
|
1975
|
-
// This allows reading the pending values even if some part of
|
|
1976
|
-
// the exception was sliced.
|
|
1977
|
-
//
|
|
1978
|
-
bool usesClasses;
|
|
1979
|
-
_stream->read(usesClasses);
|
|
1980
|
-
|
|
1981
|
-
_sliceType = ExceptionSlice;
|
|
1982
|
-
_skipFirstSlice = false;
|
|
1983
|
-
|
|
1984
|
-
//
|
|
1985
|
-
// Read the first slice header.
|
|
1986
|
-
//
|
|
1987
|
-
startSlice();
|
|
1988
|
-
const string mostDerivedId = _typeId;
|
|
1989
|
-
ICE_DELEGATE(UserExceptionFactory) exceptionFactory = factory;
|
|
1990
|
-
while(true)
|
|
1991
|
-
{
|
|
1992
|
-
//
|
|
1993
|
-
// Look for a statically-generated factory for this ID.
|
|
1994
|
-
//
|
|
1995
|
-
if(!exceptionFactory)
|
|
1996
|
-
{
|
|
1997
|
-
exceptionFactory = factoryTable->getExceptionFactory(_typeId);
|
|
1998
|
-
}
|
|
1999
|
-
|
|
2000
|
-
//
|
|
2001
|
-
// We found a factory, we get out of this loop.
|
|
2002
|
-
//
|
|
2003
|
-
if(exceptionFactory)
|
|
2004
|
-
{
|
|
2005
|
-
//
|
|
2006
|
-
// Got factory -- ask the factory to instantiate the
|
|
2007
|
-
// exception, initialize the exception members, and throw
|
|
2008
|
-
// the exception.
|
|
2009
|
-
//
|
|
2010
|
-
try
|
|
2011
|
-
{
|
|
2012
|
-
#ifdef ICE_CPP11_MAPPING
|
|
2013
|
-
exceptionFactory(_typeId);
|
|
2014
|
-
#else
|
|
2015
|
-
exceptionFactory->createAndThrow(_typeId);
|
|
2016
|
-
#endif
|
|
2017
|
-
}
|
|
2018
|
-
catch(UserException& ex)
|
|
2019
|
-
{
|
|
2020
|
-
ex._read(_stream);
|
|
2021
|
-
if(usesClasses)
|
|
2022
|
-
{
|
|
2023
|
-
readPendingValues();
|
|
2024
|
-
}
|
|
2025
|
-
throw;
|
|
2026
|
-
|
|
2027
|
-
// Never reached.
|
|
2028
|
-
}
|
|
2029
|
-
}
|
|
2030
|
-
|
|
2031
|
-
//
|
|
2032
|
-
// Slice off what we don't understand.
|
|
2033
|
-
//
|
|
2034
|
-
skipSlice();
|
|
2035
|
-
try
|
|
2036
|
-
{
|
|
2037
|
-
startSlice();
|
|
2038
|
-
}
|
|
2039
|
-
catch(UnmarshalOutOfBoundsException& ex)
|
|
2040
|
-
{
|
|
2041
|
-
//
|
|
2042
|
-
// An oversight in the 1.0 encoding means there is no marker to indicate
|
|
2043
|
-
// the last slice of an exception. As a result, we just try to read the
|
|
2044
|
-
// next type ID, which raises UnmarshalOutOfBoundsException when the
|
|
2045
|
-
// input buffer underflows.
|
|
2046
|
-
//
|
|
2047
|
-
// Set the reason member to a more helpful message.
|
|
2048
|
-
//
|
|
2049
|
-
ex.reason = "unknown exception type `" + mostDerivedId + "'";
|
|
2050
|
-
throw;
|
|
2051
|
-
}
|
|
2052
|
-
}
|
|
2053
|
-
}
|
|
2054
|
-
|
|
2055
|
-
void
|
|
2056
|
-
#ifndef NDEBUG
|
|
2057
|
-
Ice::InputStream::EncapsDecoder10::startInstance(SliceType sliceType)
|
|
2058
|
-
#else
|
|
2059
|
-
Ice::InputStream::EncapsDecoder10::startInstance(SliceType)
|
|
2060
|
-
#endif
|
|
2061
|
-
{
|
|
2062
|
-
assert(_sliceType == sliceType);
|
|
2063
|
-
_skipFirstSlice = true;
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
SlicedDataPtr
|
|
2067
|
-
Ice::InputStream::EncapsDecoder10::endInstance(bool)
|
|
2068
|
-
{
|
|
2069
|
-
//
|
|
2070
|
-
// Read the Ice::Value slice.
|
|
2071
|
-
//
|
|
2072
|
-
if(_sliceType == ValueSlice)
|
|
2073
|
-
{
|
|
2074
|
-
startSlice();
|
|
2075
|
-
Int sz = _stream->readSize(); // For compatibility with the old AFM.
|
|
2076
|
-
if(sz != 0)
|
|
2077
|
-
{
|
|
2078
|
-
throw MarshalException(__FILE__, __LINE__, "invalid Object slice");
|
|
2079
|
-
}
|
|
2080
|
-
endSlice();
|
|
2081
|
-
}
|
|
2082
|
-
_sliceType = NoSlice;
|
|
2083
|
-
return 0;
|
|
2084
|
-
}
|
|
2085
|
-
|
|
2086
|
-
const std::string&
|
|
2087
|
-
Ice::InputStream::EncapsDecoder10::startSlice()
|
|
2088
|
-
{
|
|
2089
|
-
//
|
|
2090
|
-
// If first slice, don't read the header, it was already read in
|
|
2091
|
-
// readInstance or throwException to find the factory.
|
|
2092
|
-
//
|
|
2093
|
-
if(_skipFirstSlice)
|
|
2094
|
-
{
|
|
2095
|
-
_skipFirstSlice = false;
|
|
2096
|
-
return _typeId;
|
|
2097
|
-
}
|
|
2098
|
-
|
|
2099
|
-
//
|
|
2100
|
-
// For values, first read the type ID boolean which indicates
|
|
2101
|
-
// whether or not the type ID is encoded as a string or as an
|
|
2102
|
-
// index. For exceptions, the type ID is always encoded as a
|
|
2103
|
-
// string.
|
|
2104
|
-
//
|
|
2105
|
-
if(_sliceType == ValueSlice)
|
|
2106
|
-
{
|
|
2107
|
-
bool isIndex;
|
|
2108
|
-
_stream->read(isIndex);
|
|
2109
|
-
_typeId = readTypeId(isIndex);
|
|
2110
|
-
}
|
|
2111
|
-
else
|
|
2112
|
-
{
|
|
2113
|
-
_stream->read(_typeId, false);
|
|
2114
|
-
}
|
|
2115
|
-
|
|
2116
|
-
_stream->read(_sliceSize);
|
|
2117
|
-
if(_sliceSize < 4)
|
|
2118
|
-
{
|
|
2119
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
2120
|
-
}
|
|
2121
|
-
return _typeId;
|
|
2122
|
-
}
|
|
2123
|
-
|
|
2124
|
-
void
|
|
2125
|
-
Ice::InputStream::EncapsDecoder10::endSlice()
|
|
2126
|
-
{
|
|
2127
|
-
}
|
|
2128
|
-
|
|
2129
|
-
void
|
|
2130
|
-
Ice::InputStream::EncapsDecoder10::skipSlice()
|
|
2131
|
-
{
|
|
2132
|
-
_stream->traceSkipSlice(_typeId, _sliceType);
|
|
2133
|
-
assert(_sliceSize >= 4);
|
|
2134
|
-
_stream->skip(static_cast<size_t>(_sliceSize) - sizeof(Int));
|
|
2135
|
-
}
|
|
2136
|
-
|
|
2137
|
-
void
|
|
2138
|
-
Ice::InputStream::EncapsDecoder10::readPendingValues()
|
|
2139
|
-
{
|
|
2140
|
-
Int num;
|
|
2141
|
-
do
|
|
2142
|
-
{
|
|
2143
|
-
num = _stream->readSize();
|
|
2144
|
-
for(Int k = num; k > 0; --k)
|
|
2145
|
-
{
|
|
2146
|
-
readInstance();
|
|
2147
|
-
}
|
|
2148
|
-
}
|
|
2149
|
-
while(num);
|
|
2150
|
-
|
|
2151
|
-
if(!_patchMap.empty())
|
|
2152
|
-
{
|
|
2153
|
-
//
|
|
2154
|
-
// If any entries remain in the patch map, the sender has sent an index for an object, but failed
|
|
2155
|
-
// to supply the object.
|
|
2156
|
-
//
|
|
2157
|
-
throw MarshalException(__FILE__, __LINE__, "index for class received, but no instance");
|
|
2158
|
-
}
|
|
2159
|
-
}
|
|
2160
|
-
|
|
2161
|
-
void
|
|
2162
|
-
Ice::InputStream::EncapsDecoder10::readInstance()
|
|
2163
|
-
{
|
|
2164
|
-
Int index;
|
|
2165
|
-
_stream->read(index);
|
|
2166
|
-
|
|
2167
|
-
if(index <= 0)
|
|
2168
|
-
{
|
|
2169
|
-
throw MarshalException(__FILE__, __LINE__, "invalid object id");
|
|
2170
|
-
}
|
|
2171
|
-
|
|
2172
|
-
_sliceType = ValueSlice;
|
|
2173
|
-
_skipFirstSlice = false;
|
|
2174
|
-
|
|
2175
|
-
//
|
|
2176
|
-
// Read the first slice header.
|
|
2177
|
-
//
|
|
2178
|
-
startSlice();
|
|
2179
|
-
const string mostDerivedId = _typeId;
|
|
2180
|
-
ValuePtr v;
|
|
2181
|
-
while(true)
|
|
2182
|
-
{
|
|
2183
|
-
//
|
|
2184
|
-
// For the 1.0 encoding, the type ID for the base Object class
|
|
2185
|
-
// marks the last slice.
|
|
2186
|
-
//
|
|
2187
|
-
if(_typeId == Object::ice_staticId())
|
|
2188
|
-
{
|
|
2189
|
-
throw NoValueFactoryException(__FILE__, __LINE__, "", mostDerivedId);
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2192
|
-
v = newInstance(_typeId);
|
|
2193
|
-
|
|
2194
|
-
//
|
|
2195
|
-
// We found a factory, we get out of this loop.
|
|
2196
|
-
//
|
|
2197
|
-
if(v)
|
|
2198
|
-
{
|
|
2199
|
-
break;
|
|
2200
|
-
}
|
|
2201
|
-
|
|
2202
|
-
//
|
|
2203
|
-
// If value slicing is disabled, stop unmarshaling.
|
|
2204
|
-
//
|
|
2205
|
-
if(!_sliceValues)
|
|
2206
|
-
{
|
|
2207
|
-
throw NoValueFactoryException(__FILE__, __LINE__, "no value factory found and value slicing is disabled",
|
|
2208
|
-
_typeId);
|
|
2209
|
-
}
|
|
2210
|
-
|
|
2211
|
-
//
|
|
2212
|
-
// Slice off what we don't understand.
|
|
2213
|
-
//
|
|
2214
|
-
skipSlice();
|
|
2215
|
-
startSlice(); // Read next Slice header for next iteration.
|
|
2216
|
-
}
|
|
2217
|
-
|
|
2218
|
-
//
|
|
2219
|
-
// Compute the biggest class graph depth of this object. To compute this,
|
|
2220
|
-
// we get the class graph depth of each ancestor from the patch map and
|
|
2221
|
-
// keep the biggest one.
|
|
2222
|
-
//
|
|
2223
|
-
_classGraphDepth = 0;
|
|
2224
|
-
PatchMap::iterator patchPos = _patchMap.find(index);
|
|
2225
|
-
if(patchPos != _patchMap.end())
|
|
2226
|
-
{
|
|
2227
|
-
assert(patchPos->second.size() > 0);
|
|
2228
|
-
for(PatchList::iterator k = patchPos->second.begin(); k != patchPos->second.end(); ++k)
|
|
2229
|
-
{
|
|
2230
|
-
if(k->classGraphDepth > _classGraphDepth)
|
|
2231
|
-
{
|
|
2232
|
-
_classGraphDepth = k->classGraphDepth;
|
|
2233
|
-
}
|
|
2234
|
-
}
|
|
2235
|
-
}
|
|
2236
|
-
|
|
2237
|
-
if(++_classGraphDepth > _classGraphDepthMax)
|
|
2238
|
-
{
|
|
2239
|
-
throw MarshalException(__FILE__, __LINE__, "maximum class graph depth reached");
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
|
-
//
|
|
2243
|
-
// Unmarshal the instance and add it to the map of unmarshaled instances.
|
|
2244
|
-
//
|
|
2245
|
-
unmarshal(index, v);
|
|
2246
|
-
}
|
|
2247
|
-
|
|
2248
|
-
void
|
|
2249
|
-
Ice::InputStream::EncapsDecoder11::read(PatchFunc patchFunc, void* patchAddr)
|
|
2250
|
-
{
|
|
2251
|
-
Int index = _stream->readSize();
|
|
2252
|
-
if(index < 0)
|
|
2253
|
-
{
|
|
2254
|
-
throw MarshalException(__FILE__, __LINE__, "invalid object id");
|
|
2255
|
-
}
|
|
2256
|
-
else if(index == 0)
|
|
2257
|
-
{
|
|
2258
|
-
//
|
|
2259
|
-
// Calling the patch function for null instances is necessary for correct functioning of Ice for
|
|
2260
|
-
// Python and Ruby.
|
|
2261
|
-
//
|
|
2262
|
-
if(patchFunc)
|
|
2263
|
-
{
|
|
2264
|
-
ValuePtr nil;
|
|
2265
|
-
patchFunc(patchAddr, nil);
|
|
2266
|
-
}
|
|
2267
|
-
}
|
|
2268
|
-
else if(_current && _current->sliceFlags & FLAG_HAS_INDIRECTION_TABLE)
|
|
2269
|
-
{
|
|
2270
|
-
//
|
|
2271
|
-
// When reading an object within a slice and there's an
|
|
2272
|
-
// indirect object table, always read an indirect reference
|
|
2273
|
-
// that points to an object from the indirect object table
|
|
2274
|
-
// marshaled at the end of the Slice.
|
|
2275
|
-
//
|
|
2276
|
-
// Maintain a list of indirect references. Note that the
|
|
2277
|
-
// indirect index starts at 1, so we decrement it by one to
|
|
2278
|
-
// derive an index into the indirection table that we'll read
|
|
2279
|
-
// at the end of the slice.
|
|
2280
|
-
//
|
|
2281
|
-
if(patchFunc)
|
|
2282
|
-
{
|
|
2283
|
-
IndirectPatchEntry e;
|
|
2284
|
-
e.index = index - 1;
|
|
2285
|
-
e.patchFunc = patchFunc;
|
|
2286
|
-
e.patchAddr = patchAddr;
|
|
2287
|
-
_current->indirectPatchList.push_back(e);
|
|
2288
|
-
}
|
|
2289
|
-
}
|
|
2290
|
-
else
|
|
2291
|
-
{
|
|
2292
|
-
readInstance(index, patchFunc, patchAddr);
|
|
2293
|
-
}
|
|
2294
|
-
}
|
|
2295
|
-
|
|
2296
|
-
void
|
|
2297
|
-
Ice::InputStream::EncapsDecoder11::throwException(ICE_IN(ICE_DELEGATE(UserExceptionFactory)) factory)
|
|
2298
|
-
{
|
|
2299
|
-
assert(!_current);
|
|
2300
|
-
|
|
2301
|
-
push(ExceptionSlice);
|
|
2302
|
-
|
|
2303
|
-
//
|
|
2304
|
-
// Read the first slice header.
|
|
2305
|
-
//
|
|
2306
|
-
startSlice();
|
|
2307
|
-
const string mostDerivedId = _current->typeId;
|
|
2308
|
-
ICE_DELEGATE(UserExceptionFactory) exceptionFactory = factory;
|
|
2309
|
-
while(true)
|
|
2310
|
-
{
|
|
2311
|
-
//
|
|
2312
|
-
// Look for a statically-generated factory for this ID.
|
|
2313
|
-
//
|
|
2314
|
-
if(!exceptionFactory)
|
|
2315
|
-
{
|
|
2316
|
-
exceptionFactory = factoryTable->getExceptionFactory(_current->typeId);
|
|
2317
|
-
}
|
|
2318
|
-
|
|
2319
|
-
//
|
|
2320
|
-
// We found a factory, we get out of this loop.
|
|
2321
|
-
//
|
|
2322
|
-
if(exceptionFactory)
|
|
2323
|
-
{
|
|
2324
|
-
//
|
|
2325
|
-
// Got factory -- ask the factory to instantiate the
|
|
2326
|
-
// exception, initialize the exception members, and throw
|
|
2327
|
-
// the exception.
|
|
2328
|
-
//
|
|
2329
|
-
try
|
|
2330
|
-
{
|
|
2331
|
-
#ifdef ICE_CPP11_MAPPING
|
|
2332
|
-
exceptionFactory(_current->typeId);
|
|
2333
|
-
#else
|
|
2334
|
-
exceptionFactory->createAndThrow(_current->typeId);
|
|
2335
|
-
#endif
|
|
2336
|
-
}
|
|
2337
|
-
catch(UserException& ex)
|
|
2338
|
-
{
|
|
2339
|
-
ex._read(_stream);
|
|
2340
|
-
throw;
|
|
2341
|
-
|
|
2342
|
-
// Never reached.
|
|
2343
|
-
}
|
|
2344
|
-
}
|
|
2345
|
-
|
|
2346
|
-
//
|
|
2347
|
-
// Slice off what we don't understand.
|
|
2348
|
-
//
|
|
2349
|
-
skipSlice();
|
|
2350
|
-
|
|
2351
|
-
//
|
|
2352
|
-
// If this is the last slice, raise an exception and stop un-marshalling.
|
|
2353
|
-
//
|
|
2354
|
-
if(_current->sliceFlags & FLAG_IS_LAST_SLICE)
|
|
2355
|
-
{
|
|
2356
|
-
throw UnknownUserException(__FILE__, __LINE__, mostDerivedId);
|
|
2357
|
-
}
|
|
2358
|
-
|
|
2359
|
-
startSlice();
|
|
2360
|
-
}
|
|
2361
|
-
}
|
|
2362
|
-
|
|
2363
|
-
void
|
|
2364
|
-
#ifndef NDEBUG
|
|
2365
|
-
Ice::InputStream::EncapsDecoder11::startInstance(SliceType sliceType)
|
|
2366
|
-
#else
|
|
2367
|
-
Ice::InputStream::EncapsDecoder11::startInstance(SliceType)
|
|
2368
|
-
#endif
|
|
2369
|
-
{
|
|
2370
|
-
assert(_current->sliceType == sliceType);
|
|
2371
|
-
_current->skipFirstSlice = true;
|
|
2372
|
-
}
|
|
2373
|
-
|
|
2374
|
-
SlicedDataPtr
|
|
2375
|
-
Ice::InputStream::EncapsDecoder11::endInstance(bool preserve)
|
|
2376
|
-
{
|
|
2377
|
-
SlicedDataPtr slicedData;
|
|
2378
|
-
if(preserve)
|
|
2379
|
-
{
|
|
2380
|
-
slicedData = readSlicedData();
|
|
2381
|
-
}
|
|
2382
|
-
_current->slices.clear();
|
|
2383
|
-
_current->indirectionTables.clear();
|
|
2384
|
-
_current = _current->previous;
|
|
2385
|
-
return slicedData;
|
|
2386
|
-
}
|
|
2387
|
-
|
|
2388
|
-
const std::string&
|
|
2389
|
-
Ice::InputStream::EncapsDecoder11::startSlice()
|
|
2390
|
-
{
|
|
2391
|
-
//
|
|
2392
|
-
// If first slice, don't read the header, it was already read in
|
|
2393
|
-
// readInstance or throwException to find the factory.
|
|
2394
|
-
//
|
|
2395
|
-
if(_current->skipFirstSlice)
|
|
2396
|
-
{
|
|
2397
|
-
_current->skipFirstSlice = false;
|
|
2398
|
-
return _current->typeId;
|
|
2399
|
-
}
|
|
2400
|
-
|
|
2401
|
-
_stream->read(_current->sliceFlags);
|
|
2402
|
-
|
|
2403
|
-
//
|
|
2404
|
-
// Read the type ID, for value slices the type ID is encoded as a
|
|
2405
|
-
// string or as an index, for exceptions it's always encoded as a
|
|
2406
|
-
// string.
|
|
2407
|
-
//
|
|
2408
|
-
if(_current->sliceType == ValueSlice)
|
|
2409
|
-
{
|
|
2410
|
-
if((_current->sliceFlags & FLAG_HAS_TYPE_ID_COMPACT) == FLAG_HAS_TYPE_ID_COMPACT) // Must be checked first!
|
|
2411
|
-
{
|
|
2412
|
-
_current->typeId.clear();
|
|
2413
|
-
_current->compactId = _stream->readSize();
|
|
2414
|
-
}
|
|
2415
|
-
else if(_current->sliceFlags & (FLAG_HAS_TYPE_ID_STRING | FLAG_HAS_TYPE_ID_INDEX))
|
|
2416
|
-
{
|
|
2417
|
-
_current->typeId = readTypeId(_current->sliceFlags & FLAG_HAS_TYPE_ID_INDEX);
|
|
2418
|
-
_current->compactId = -1;
|
|
2419
|
-
}
|
|
2420
|
-
else
|
|
2421
|
-
{
|
|
2422
|
-
// Only the most derived slice encodes the type ID for the compact format.
|
|
2423
|
-
_current->typeId.clear();
|
|
2424
|
-
_current->compactId = -1;
|
|
2425
|
-
}
|
|
2426
|
-
}
|
|
2427
|
-
else
|
|
2428
|
-
{
|
|
2429
|
-
_stream->read(_current->typeId, false);
|
|
2430
|
-
}
|
|
2431
|
-
|
|
2432
|
-
//
|
|
2433
|
-
// Read the slice size if necessary.
|
|
2434
|
-
//
|
|
2435
|
-
if(_current->sliceFlags & FLAG_HAS_SLICE_SIZE)
|
|
2436
|
-
{
|
|
2437
|
-
_stream->read(_current->sliceSize);
|
|
2438
|
-
if(_current->sliceSize < 4)
|
|
2439
|
-
{
|
|
2440
|
-
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
|
|
2441
|
-
}
|
|
2442
|
-
}
|
|
2443
|
-
else
|
|
2444
|
-
{
|
|
2445
|
-
_current->sliceSize = 0;
|
|
2446
|
-
}
|
|
2447
|
-
|
|
2448
|
-
return _current->typeId;
|
|
2449
|
-
}
|
|
2450
|
-
|
|
2451
|
-
void
|
|
2452
|
-
Ice::InputStream::EncapsDecoder11::endSlice()
|
|
2453
|
-
{
|
|
2454
|
-
if(_current->sliceFlags & FLAG_HAS_OPTIONAL_MEMBERS)
|
|
2455
|
-
{
|
|
2456
|
-
_stream->skipOptionals();
|
|
2457
|
-
}
|
|
2458
|
-
|
|
2459
|
-
//
|
|
2460
|
-
// Read the indirect object table if one is present.
|
|
2461
|
-
//
|
|
2462
|
-
if(_current->sliceFlags & FLAG_HAS_INDIRECTION_TABLE)
|
|
2463
|
-
{
|
|
2464
|
-
IndexList indirectionTable(static_cast<size_t>(_stream->readAndCheckSeqSize(1)));
|
|
2465
|
-
for(IndexList::iterator p = indirectionTable.begin(); p != indirectionTable.end(); ++p)
|
|
2466
|
-
{
|
|
2467
|
-
*p = readInstance(_stream->readSize(), 0, 0);
|
|
2468
|
-
}
|
|
2469
|
-
|
|
2470
|
-
//
|
|
2471
|
-
// Sanity checks. If there are optional members, it's possible
|
|
2472
|
-
// that not all object references were read if they are from
|
|
2473
|
-
// unknown optional data members.
|
|
2474
|
-
//
|
|
2475
|
-
if(indirectionTable.empty())
|
|
2476
|
-
{
|
|
2477
|
-
throw MarshalException(__FILE__, __LINE__, "empty indirection table");
|
|
2478
|
-
}
|
|
2479
|
-
if(_current->indirectPatchList.empty() && !(_current->sliceFlags & FLAG_HAS_OPTIONAL_MEMBERS))
|
|
2480
|
-
{
|
|
2481
|
-
throw MarshalException(__FILE__, __LINE__, "no references to indirection table");
|
|
2482
|
-
}
|
|
2483
|
-
|
|
2484
|
-
//
|
|
2485
|
-
// Convert indirect references into direct references.
|
|
2486
|
-
//
|
|
2487
|
-
IndirectPatchList::iterator p;
|
|
2488
|
-
for(p = _current->indirectPatchList.begin(); p != _current->indirectPatchList.end(); ++p)
|
|
2489
|
-
{
|
|
2490
|
-
assert(p->index >= 0);
|
|
2491
|
-
if(p->index >= static_cast<Int>(indirectionTable.size()))
|
|
2492
|
-
{
|
|
2493
|
-
throw MarshalException(__FILE__, __LINE__, "indirection out of range");
|
|
2494
|
-
}
|
|
2495
|
-
addPatchEntry(indirectionTable[static_cast<size_t>(p->index)], p->patchFunc, p->patchAddr);
|
|
2496
|
-
}
|
|
2497
|
-
_current->indirectPatchList.clear();
|
|
2498
|
-
}
|
|
2499
|
-
}
|
|
2500
|
-
|
|
2501
|
-
void
|
|
2502
|
-
Ice::InputStream::EncapsDecoder11::skipSlice()
|
|
2503
|
-
{
|
|
2504
|
-
_stream->traceSkipSlice(_current->typeId, _current->sliceType);
|
|
2505
|
-
|
|
2506
|
-
Container::iterator start = _stream->i;
|
|
2507
|
-
|
|
2508
|
-
if(_current->sliceFlags & FLAG_HAS_SLICE_SIZE)
|
|
2509
|
-
{
|
|
2510
|
-
assert(_current->sliceSize >= 4);
|
|
2511
|
-
_stream->skip(static_cast<size_t>(_current->sliceSize) - sizeof(Int));
|
|
2512
|
-
}
|
|
2513
|
-
else
|
|
2514
|
-
{
|
|
2515
|
-
if(_current->sliceType == ValueSlice)
|
|
2516
|
-
{
|
|
2517
|
-
throw NoValueFactoryException(__FILE__, __LINE__,
|
|
2518
|
-
"no value factory found and compact format prevents "
|
|
2519
|
-
"slicing (the sender should use the sliced format instead)",
|
|
2520
|
-
_current->typeId);
|
|
2521
|
-
}
|
|
2522
|
-
else
|
|
2523
|
-
{
|
|
2524
|
-
throw UnknownUserException(__FILE__, __LINE__, _current->typeId);
|
|
2525
|
-
}
|
|
2526
|
-
}
|
|
2527
|
-
|
|
2528
|
-
//
|
|
2529
|
-
// Preserve this slice.
|
|
2530
|
-
//
|
|
2531
|
-
SliceInfoPtr info = ICE_MAKE_SHARED(SliceInfo);
|
|
2532
|
-
info->typeId = _current->typeId;
|
|
2533
|
-
info->compactId = _current->compactId;
|
|
2534
|
-
info->hasOptionalMembers = _current->sliceFlags & FLAG_HAS_OPTIONAL_MEMBERS;
|
|
2535
|
-
info->isLastSlice = _current->sliceFlags & FLAG_IS_LAST_SLICE;
|
|
2536
|
-
if(info->hasOptionalMembers)
|
|
2537
|
-
{
|
|
2538
|
-
//
|
|
2539
|
-
// Don't include the optional member end marker. It will be re-written by
|
|
2540
|
-
// endSlice when the sliced data is re-written.
|
|
2541
|
-
//
|
|
2542
|
-
vector<Byte>(start, _stream->i - 1).swap(info->bytes);
|
|
2543
|
-
}
|
|
2544
|
-
else
|
|
2545
|
-
{
|
|
2546
|
-
vector<Byte>(start, _stream->i).swap(info->bytes);
|
|
2547
|
-
}
|
|
2548
|
-
|
|
2549
|
-
_current->indirectionTables.push_back(IndexList());
|
|
2550
|
-
|
|
2551
|
-
//
|
|
2552
|
-
// Read the indirect object table. We read the instances or their
|
|
2553
|
-
// IDs if the instance is a reference to an already un-marhsaled
|
|
2554
|
-
// object.
|
|
2555
|
-
//
|
|
2556
|
-
// The SliceInfo object sequence is initialized only if
|
|
2557
|
-
// readSlicedData is called.
|
|
2558
|
-
//
|
|
2559
|
-
if(_current->sliceFlags & FLAG_HAS_INDIRECTION_TABLE)
|
|
2560
|
-
{
|
|
2561
|
-
IndexList& table = _current->indirectionTables.back();
|
|
2562
|
-
table.resize(static_cast<size_t>(_stream->readAndCheckSeqSize(1)));
|
|
2563
|
-
for(IndexList::iterator p = table.begin(); p != table.end(); ++p)
|
|
2564
|
-
{
|
|
2565
|
-
*p = readInstance(_stream->readSize(), 0, 0);
|
|
2566
|
-
}
|
|
2567
|
-
}
|
|
2568
|
-
|
|
2569
|
-
_current->slices.push_back(info);
|
|
2570
|
-
}
|
|
2571
|
-
|
|
2572
|
-
bool
|
|
2573
|
-
Ice::InputStream::EncapsDecoder11::readOptional(Ice::Int readTag, Ice::OptionalFormat expectedFormat)
|
|
2574
|
-
{
|
|
2575
|
-
if(!_current)
|
|
2576
|
-
{
|
|
2577
|
-
return _stream->readOptImpl(readTag, expectedFormat);
|
|
2578
|
-
}
|
|
2579
|
-
else if(_current->sliceFlags & FLAG_HAS_OPTIONAL_MEMBERS)
|
|
2580
|
-
{
|
|
2581
|
-
return _stream->readOptImpl(readTag, expectedFormat);
|
|
2582
|
-
}
|
|
2583
|
-
return false;
|
|
2584
|
-
}
|
|
2585
|
-
|
|
2586
|
-
Int
|
|
2587
|
-
Ice::InputStream::EncapsDecoder11::readInstance(Int index, PatchFunc patchFunc, void* patchAddr)
|
|
2588
|
-
{
|
|
2589
|
-
assert(index > 0);
|
|
2590
|
-
|
|
2591
|
-
if(index > 1)
|
|
2592
|
-
{
|
|
2593
|
-
if(patchFunc)
|
|
2594
|
-
{
|
|
2595
|
-
addPatchEntry(index, patchFunc, patchAddr);
|
|
2596
|
-
}
|
|
2597
|
-
return index;
|
|
2598
|
-
}
|
|
2599
|
-
|
|
2600
|
-
push(ValueSlice);
|
|
2601
|
-
|
|
2602
|
-
//
|
|
2603
|
-
// Get the object ID before we start reading slices. If some
|
|
2604
|
-
// slices are skiped, the indirect object table are still read and
|
|
2605
|
-
// might read other instances.
|
|
2606
|
-
//
|
|
2607
|
-
index = ++_valueIdIndex;
|
|
2608
|
-
|
|
2609
|
-
//
|
|
2610
|
-
// Read the first slice header.
|
|
2611
|
-
//
|
|
2612
|
-
startSlice();
|
|
2613
|
-
const string mostDerivedId = _current->typeId;
|
|
2614
|
-
Ice::ValuePtr v;
|
|
2615
|
-
while(true)
|
|
2616
|
-
{
|
|
2617
|
-
if(_current->compactId >= 0)
|
|
2618
|
-
{
|
|
2619
|
-
//
|
|
2620
|
-
// Translate a compact (numeric) type ID into a string type ID.
|
|
2621
|
-
//
|
|
2622
|
-
_current->typeId = _stream->resolveCompactId(_current->compactId);
|
|
2623
|
-
if(_current->typeId.empty())
|
|
2624
|
-
{
|
|
2625
|
-
_current->typeId = IceInternal::factoryTable->getTypeId(_current->compactId);
|
|
2626
|
-
}
|
|
2627
|
-
}
|
|
2628
|
-
|
|
2629
|
-
if(!_current->typeId.empty())
|
|
2630
|
-
{
|
|
2631
|
-
v = newInstance(_current->typeId);
|
|
2632
|
-
|
|
2633
|
-
//
|
|
2634
|
-
// We found a factory, we get out of this loop.
|
|
2635
|
-
//
|
|
2636
|
-
if(v)
|
|
2637
|
-
{
|
|
2638
|
-
break;
|
|
2639
|
-
}
|
|
2640
|
-
}
|
|
2641
|
-
|
|
2642
|
-
//
|
|
2643
|
-
// If value slicing is disabled, stop unmarshaling.
|
|
2644
|
-
//
|
|
2645
|
-
if(!_sliceValues)
|
|
2646
|
-
{
|
|
2647
|
-
throw NoValueFactoryException(__FILE__, __LINE__, "no value factory found and value slicing is disabled",
|
|
2648
|
-
_current->typeId);
|
|
2649
|
-
}
|
|
2650
|
-
|
|
2651
|
-
//
|
|
2652
|
-
// Slice off what we don't understand.
|
|
2653
|
-
//
|
|
2654
|
-
skipSlice();
|
|
2655
|
-
|
|
2656
|
-
//
|
|
2657
|
-
// If this is the last slice, keep the object as an opaque UnknownSlicedValue.
|
|
2658
|
-
//
|
|
2659
|
-
if(_current->sliceFlags & FLAG_IS_LAST_SLICE)
|
|
2660
|
-
{
|
|
2661
|
-
//
|
|
2662
|
-
// Provide a factory with an opportunity to supply the object.
|
|
2663
|
-
// We pass the "::Ice::Object" ID to indicate that this is the
|
|
2664
|
-
// last chance to preserve the object.
|
|
2665
|
-
//
|
|
2666
|
-
v = newInstance(Object::ice_staticId());
|
|
2667
|
-
if(!v)
|
|
2668
|
-
{
|
|
2669
|
-
v = ICE_MAKE_SHARED(UnknownSlicedValue, mostDerivedId);
|
|
2670
|
-
}
|
|
2671
|
-
|
|
2672
|
-
break;
|
|
2673
|
-
}
|
|
2674
|
-
|
|
2675
|
-
startSlice(); // Read next Slice header for next iteration.
|
|
2676
|
-
}
|
|
2677
|
-
|
|
2678
|
-
if(++_classGraphDepth > _classGraphDepthMax)
|
|
2679
|
-
{
|
|
2680
|
-
throw MarshalException(__FILE__, __LINE__, "maximum class graph depth reached");
|
|
2681
|
-
}
|
|
2682
|
-
|
|
2683
|
-
//
|
|
2684
|
-
// Unmarshal the object.
|
|
2685
|
-
//
|
|
2686
|
-
unmarshal(index, v);
|
|
2687
|
-
|
|
2688
|
-
--_classGraphDepth;
|
|
2689
|
-
|
|
2690
|
-
if(!_current && !_patchMap.empty())
|
|
2691
|
-
{
|
|
2692
|
-
//
|
|
2693
|
-
// If any entries remain in the patch map, the sender has sent an index for an object, but failed
|
|
2694
|
-
// to supply the object.
|
|
2695
|
-
//
|
|
2696
|
-
throw MarshalException(__FILE__, __LINE__, "index for class received, but no instance");
|
|
2697
|
-
}
|
|
2698
|
-
|
|
2699
|
-
if(patchFunc)
|
|
2700
|
-
{
|
|
2701
|
-
patchFunc(patchAddr, v);
|
|
2702
|
-
}
|
|
2703
|
-
return index;
|
|
2704
|
-
}
|
|
2705
|
-
|
|
2706
|
-
SlicedDataPtr
|
|
2707
|
-
Ice::InputStream::EncapsDecoder11::readSlicedData()
|
|
2708
|
-
{
|
|
2709
|
-
if(_current->slices.empty()) // No preserved slices.
|
|
2710
|
-
{
|
|
2711
|
-
return 0;
|
|
2712
|
-
}
|
|
2713
|
-
|
|
2714
|
-
//
|
|
2715
|
-
// The indirectionTables member holds the indirection table for
|
|
2716
|
-
// each slice in slices.
|
|
2717
|
-
//
|
|
2718
|
-
assert(_current->slices.size() == _current->indirectionTables.size());
|
|
2719
|
-
for(SliceInfoSeq::size_type n = 0; n < _current->slices.size(); ++n)
|
|
2720
|
-
{
|
|
2721
|
-
//
|
|
2722
|
-
// We use the "instances" list in SliceInfo to hold references
|
|
2723
|
-
// to the target instances. Note that the instances might not have
|
|
2724
|
-
// been read yet in the case of a circular reference to an
|
|
2725
|
-
// enclosing instance.
|
|
2726
|
-
//
|
|
2727
|
-
const IndexList& table = _current->indirectionTables[n];
|
|
2728
|
-
vector<ValuePtr>& instances = _current->slices[n]->instances;
|
|
2729
|
-
instances.resize(table.size());
|
|
2730
|
-
IndexList::size_type j = 0;
|
|
2731
|
-
for(IndexList::const_iterator p = table.begin(); p != table.end(); ++p)
|
|
2732
|
-
{
|
|
2733
|
-
#ifdef ICE_CPP11_MAPPING
|
|
2734
|
-
addPatchEntry(*p, &patchHandle<Value>, &instances[j++]);
|
|
2735
|
-
#else
|
|
2736
|
-
addPatchEntry(*p, &patchHandle<Object>, &instances[j++]);
|
|
2737
|
-
#endif
|
|
2738
|
-
}
|
|
2739
|
-
}
|
|
2740
|
-
return ICE_MAKE_SHARED(SlicedData, _current->slices);
|
|
2741
|
-
}
|