zeroc-ice 3.6b1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ICE_LICENSE +54 -0
- data/LICENSE +339 -0
- data/bin/slice2rb +17 -0
- data/ext/Communicator.cpp +596 -0
- data/ext/Communicator.h +25 -0
- data/ext/Config.h +111 -0
- data/ext/Connection.cpp +381 -0
- data/ext/Connection.h +26 -0
- data/ext/Endpoint.cpp +311 -0
- data/ext/Endpoint.h +27 -0
- data/ext/ImplicitContext.cpp +152 -0
- data/ext/ImplicitContext.h +25 -0
- data/ext/Init.cpp +52 -0
- data/ext/Logger.cpp +151 -0
- data/ext/Logger.h +28 -0
- data/ext/ObjectFactory.cpp +140 -0
- data/ext/ObjectFactory.h +50 -0
- data/ext/Operation.cpp +676 -0
- data/ext/Operation.h +36 -0
- data/ext/Properties.cpp +369 -0
- data/ext/Properties.h +25 -0
- data/ext/Proxy.cpp +1354 -0
- data/ext/Proxy.h +27 -0
- data/ext/Slice.cpp +223 -0
- data/ext/Slice.h +22 -0
- data/ext/Types.cpp +3160 -0
- data/ext/Types.h +545 -0
- data/ext/Util.cpp +792 -0
- data/ext/Util.h +511 -0
- data/ext/extconf.rb +118 -0
- data/ext/ice/BZIP_LICENSE +42 -0
- data/ext/ice/MCPP_LICENSE +36 -0
- data/ext/ice/bzip2/blocksort.c +1094 -0
- data/ext/ice/bzip2/bzlib.c +1572 -0
- data/ext/ice/bzip2/bzlib.h +282 -0
- data/ext/ice/bzip2/bzlib_private.h +509 -0
- data/ext/ice/bzip2/compress.c +672 -0
- data/ext/ice/bzip2/crctable.c +104 -0
- data/ext/ice/bzip2/decompress.c +646 -0
- data/ext/ice/bzip2/huffman.c +205 -0
- data/ext/ice/bzip2/randtable.c +84 -0
- data/ext/ice/cpp/include/Ice/ACMF.h +30 -0
- data/ext/ice/cpp/include/Ice/Application.h +156 -0
- data/ext/ice/cpp/include/Ice/AsyncResult.h +363 -0
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +26 -0
- data/ext/ice/cpp/include/Ice/BasicStream.h +1315 -0
- data/ext/ice/cpp/include/Ice/Buffer.h +159 -0
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +74 -0
- data/ext/ice/cpp/include/Ice/Communicator.h +194 -0
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/Config.h +97 -0
- data/ext/ice/cpp/include/Ice/Connection.h +495 -0
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +115 -0
- data/ext/ice/cpp/include/Ice/ConnectionF.h +72 -0
- data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +30 -0
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +37 -0
- data/ext/ice/cpp/include/Ice/Current.h +94 -0
- data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +48 -0
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +62 -0
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +33 -0
- data/ext/ice/cpp/include/Ice/Dispatcher.h +51 -0
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +105 -0
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +29 -0
- data/ext/ice/cpp/include/Ice/Endpoint.h +350 -0
- data/ext/ice/cpp/include/Ice/EndpointF.h +97 -0
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +74 -0
- data/ext/ice/cpp/include/Ice/Exception.h +114 -0
- data/ext/ice/cpp/include/Ice/FacetMap.h +56 -0
- data/ext/ice/cpp/include/Ice/FactoryTable.h +69 -0
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +87 -0
- data/ext/ice/cpp/include/Ice/Format.h +39 -0
- data/ext/ice/cpp/include/Ice/Functional.h +138 -0
- data/ext/ice/cpp/include/Ice/GCObject.h +73 -0
- data/ext/ice/cpp/include/Ice/Handle.h +192 -0
- data/ext/ice/cpp/include/Ice/Ice.h +54 -0
- data/ext/ice/cpp/include/Ice/Identity.h +160 -0
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +96 -0
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +60 -0
- data/ext/ice/cpp/include/Ice/Incoming.h +131 -0
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +108 -0
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +35 -0
- data/ext/ice/cpp/include/Ice/Initialize.h +141 -0
- data/ext/ice/cpp/include/Ice/InstanceF.h +26 -0
- data/ext/ice/cpp/include/Ice/Instrumentation.h +377 -0
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +71 -0
- data/ext/ice/cpp/include/Ice/LocalException.h +1022 -0
- data/ext/ice/cpp/include/Ice/LocalObject.h +36 -0
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/Locator.h +2191 -0
- data/ext/ice/cpp/include/Ice/LocatorF.h +89 -0
- data/ext/ice/cpp/include/Ice/Logger.h +94 -0
- data/ext/ice/cpp/include/Ice/LoggerF.h +60 -0
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +153 -0
- data/ext/ice/cpp/include/Ice/Makefile +26 -0
- data/ext/ice/cpp/include/Ice/Metrics.h +2989 -0
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +662 -0
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +144 -0
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +576 -0
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +55 -0
- data/ext/ice/cpp/include/Ice/Object.h +165 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +162 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +86 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +60 -0
- data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +177 -0
- data/ext/ice/cpp/include/Ice/Outgoing.h +197 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +264 -0
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +38 -0
- data/ext/ice/cpp/include/Ice/Plugin.h +121 -0
- data/ext/ice/cpp/include/Ice/PluginF.h +66 -0
- data/ext/ice/cpp/include/Ice/Process.h +568 -0
- data/ext/ice/cpp/include/Ice/ProcessF.h +77 -0
- data/ext/ice/cpp/include/Ice/Properties.h +130 -0
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +824 -0
- data/ext/ice/cpp/include/Ice/PropertiesF.h +83 -0
- data/ext/ice/cpp/include/Ice/Protocol.h +242 -0
- data/ext/ice/cpp/include/Ice/Proxy.h +2448 -0
- data/ext/ice/cpp/include/Ice/ProxyF.h +78 -0
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +26 -0
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +330 -0
- data/ext/ice/cpp/include/Ice/ReferenceF.h +34 -0
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +1496 -0
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +29 -0
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +25 -0
- data/ext/ice/cpp/include/Ice/Router.h +1155 -0
- data/ext/ice/cpp/include/Ice/RouterF.h +77 -0
- data/ext/ice/cpp/include/Ice/ServantLocator.h +90 -0
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +60 -0
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +26 -0
- data/ext/ice/cpp/include/Ice/Service.h +260 -0
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +56 -0
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +34 -0
- data/ext/ice/cpp/include/Ice/SlicedData.h +103 -0
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +34 -0
- data/ext/ice/cpp/include/Ice/Stream.h +449 -0
- data/ext/ice/cpp/include/Ice/StreamF.h +30 -0
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +877 -0
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +28 -0
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +56 -0
- data/ext/ice/cpp/include/Ice/Version.h +254 -0
- data/ext/ice/cpp/include/IceSSL/Config.h +23 -0
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +119 -0
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +101 -0
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +22 -0
- data/ext/ice/cpp/include/IceSSL/Makefile +26 -0
- data/ext/ice/cpp/include/IceSSL/Plugin.h +558 -0
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +119 -0
- data/ext/ice/cpp/include/IceUtil/Cache.h +362 -0
- data/ext/ice/cpp/include/IceUtil/Cond.h +323 -0
- data/ext/ice/cpp/include/IceUtil/Config.h +234 -0
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +50 -0
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +70 -0
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +45 -0
- data/ext/ice/cpp/include/IceUtil/Exception.h +184 -0
- data/ext/ice/cpp/include/IceUtil/Functional.h +389 -0
- data/ext/ice/cpp/include/IceUtil/Handle.h +266 -0
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +51 -0
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +302 -0
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +47 -0
- data/ext/ice/cpp/include/IceUtil/Iterator.h +36 -0
- data/ext/ice/cpp/include/IceUtil/Lock.h +135 -0
- data/ext/ice/cpp/include/IceUtil/Makefile +26 -0
- data/ext/ice/cpp/include/IceUtil/Monitor.h +249 -0
- data/ext/ice/cpp/include/IceUtil/Mutex.h +357 -0
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +28 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +83 -0
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +82 -0
- data/ext/ice/cpp/include/IceUtil/Optional.h +322 -0
- data/ext/ice/cpp/include/IceUtil/Options.h +141 -0
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +362 -0
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +19 -0
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +26 -0
- data/ext/ice/cpp/include/IceUtil/Random.h +24 -0
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +113 -0
- data/ext/ice/cpp/include/IceUtil/SHA1.h +65 -0
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +44 -0
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +97 -0
- data/ext/ice/cpp/include/IceUtil/Shared.h +168 -0
- data/ext/ice/cpp/include/IceUtil/StringConverter.h +175 -0
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +91 -0
- data/ext/ice/cpp/include/IceUtil/Thread.h +181 -0
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +108 -0
- data/ext/ice/cpp/include/IceUtil/Time.h +209 -0
- data/ext/ice/cpp/include/IceUtil/Timer.h +143 -0
- data/ext/ice/cpp/include/IceUtil/UUID.h +22 -0
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +42 -0
- data/ext/ice/cpp/include/IceUtil/UniquePtr.h +101 -0
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/Checksum.h +26 -0
- data/ext/ice/cpp/include/Slice/CsUtil.h +92 -0
- data/ext/ice/cpp/include/Slice/DotNetNames.h +34 -0
- data/ext/ice/cpp/include/Slice/FileTracker.h +71 -0
- data/ext/ice/cpp/include/Slice/JavaUtil.h +277 -0
- data/ext/ice/cpp/include/Slice/Makefile +26 -0
- data/ext/ice/cpp/include/Slice/PHPUtil.h +50 -0
- data/ext/ice/cpp/include/Slice/Parser.h +1116 -0
- data/ext/ice/cpp/include/Slice/Preprocessor.h +68 -0
- data/ext/ice/cpp/include/Slice/PythonUtil.h +64 -0
- data/ext/ice/cpp/include/Slice/RubyUtil.h +54 -0
- data/ext/ice/cpp/include/Slice/Util.h +33 -0
- data/ext/ice/cpp/src/Ice/ACM.cpp +343 -0
- data/ext/ice/cpp/src/Ice/ACM.h +117 -0
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Acceptor.h +41 -0
- data/ext/ice/cpp/src/Ice/AcceptorF.h +30 -0
- data/ext/ice/cpp/src/Ice/Application.cpp +760 -0
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +599 -0
- data/ext/ice/cpp/src/Ice/Base64.cpp +269 -0
- data/ext/ice/cpp/src/Ice/Base64.h +36 -0
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +3393 -0
- data/ext/ice/cpp/src/Ice/Buffer.cpp +98 -0
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +34 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +718 -0
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +106 -0
- data/ext/ice/cpp/src/Ice/Communicator.cpp +45 -0
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +386 -0
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +112 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +546 -0
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +97 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +58 -0
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +1639 -0
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +236 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +3876 -0
- data/ext/ice/cpp/src/Ice/ConnectionI.h +364 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +115 -0
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +50 -0
- data/ext/ice/cpp/src/Ice/Connector.cpp +16 -0
- data/ext/ice/cpp/src/Ice/Connector.h +36 -0
- data/ext/ice/cpp/src/Ice/ConnectorF.h +26 -0
- data/ext/ice/cpp/src/Ice/Current.cpp +38 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +168 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +57 -0
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +26 -0
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +60 -0
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +49 -0
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +281 -0
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +53 -0
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +25 -0
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +44 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +208 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +46 -0
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +87 -0
- data/ext/ice/cpp/src/Ice/EndpointI.h +165 -0
- data/ext/ice/cpp/src/Ice/EndpointIF.h +41 -0
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +38 -0
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +35 -0
- data/ext/ice/cpp/src/Ice/EventHandler.h +78 -0
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +26 -0
- data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +53 -0
- data/ext/ice/cpp/src/Ice/Exception.cpp +832 -0
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +34 -0
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +158 -0
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +95 -0
- data/ext/ice/cpp/src/Ice/GCObject.cpp +444 -0
- data/ext/ice/cpp/src/Ice/HashUtil.h +59 -0
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +680 -0
- data/ext/ice/cpp/src/Ice/HttpParser.h +124 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +733 -0
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +157 -0
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +29 -0
- data/ext/ice/cpp/src/Ice/Identity.cpp +42 -0
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +639 -0
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +51 -0
- data/ext/ice/cpp/src/Ice/Incoming.cpp +757 -0
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +340 -0
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +37 -0
- data/ext/ice/cpp/src/Ice/Initialize.cpp +401 -0
- data/ext/ice/cpp/src/Ice/Instance.cpp +1928 -0
- data/ext/ice/cpp/src/Ice/Instance.h +198 -0
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +68 -0
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +43 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1083 -0
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +262 -0
- data/ext/ice/cpp/src/Ice/LocalException.cpp +2091 -0
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +29 -0
- data/ext/ice/cpp/src/Ice/Locator.cpp +1946 -0
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +917 -0
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +193 -0
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +34 -0
- data/ext/ice/cpp/src/Ice/Logger.cpp +40 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +862 -0
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +46 -0
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +199 -0
- data/ext/ice/cpp/src/Ice/LoggerI.h +57 -0
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +107 -0
- data/ext/ice/cpp/src/Ice/Makefile +190 -0
- data/ext/ice/cpp/src/Ice/Metrics.cpp +2159 -0
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +669 -0
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +14 -0
- data/ext/ice/cpp/src/Ice/Network.cpp +2694 -0
- data/ext/ice/cpp/src/Ice/Network.h +291 -0
- data/ext/ice/cpp/src/Ice/NetworkF.h +28 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +325 -0
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +74 -0
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +26 -0
- data/ext/ice/cpp/src/Ice/Object.cpp +440 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +241 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +52 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1498 -0
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +155 -0
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +140 -0
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +43 -0
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +84 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +407 -0
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +70 -0
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +737 -0
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +874 -0
- data/ext/ice/cpp/src/Ice/Plugin.cpp +43 -0
- data/ext/ice/cpp/src/Ice/PluginF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
- data/ext/ice/cpp/src/Ice/PluginManagerI.h +67 -0
- data/ext/ice/cpp/src/Ice/Process.cpp +299 -0
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/Properties.cpp +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +555 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +207 -0
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +45 -0
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +759 -0
- data/ext/ice/cpp/src/Ice/PropertiesI.h +78 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +1293 -0
- data/ext/ice/cpp/src/Ice/PropertyNames.h +81 -0
- data/ext/ice/cpp/src/Ice/Protocol.cpp +137 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +98 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +91 -0
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +26 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +51 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +67 -0
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +26 -0
- data/ext/ice/cpp/src/Ice/Proxy.cpp +1810 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +305 -0
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +57 -0
- data/ext/ice/cpp/src/Ice/Reference.cpp +1947 -0
- data/ext/ice/cpp/src/Ice/Reference.h +305 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +937 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +81 -0
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +24 -0
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +958 -0
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +29 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +40 -0
- data/ext/ice/cpp/src/Ice/RequestHandler.h +90 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +70 -0
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +41 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +20 -0
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +39 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +154 -0
- data/ext/ice/cpp/src/Ice/RetryQueue.h +69 -0
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +24 -0
- data/ext/ice/cpp/src/Ice/Router.cpp +849 -0
- data/ext/ice/cpp/src/Ice/RouterF.cpp +39 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +381 -0
- data/ext/ice/cpp/src/Ice/RouterInfo.h +148 -0
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +30 -0
- data/ext/ice/cpp/src/Ice/Selector.cpp +926 -0
- data/ext/ice/cpp/src/Ice/Selector.h +231 -0
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +41 -0
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +38 -0
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +495 -0
- data/ext/ice/cpp/src/Ice/ServantManager.h +74 -0
- data/ext/ice/cpp/src/Ice/Service.cpp +1897 -0
- data/ext/ice/cpp/src/Ice/SharedContext.h +51 -0
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +34 -0
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +80 -0
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +80 -0
- data/ext/ice/cpp/src/Ice/Stream.cpp +53 -0
- data/ext/ice/cpp/src/Ice/StreamI.cpp +832 -0
- data/ext/ice/cpp/src/Ice/StreamI.h +198 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +521 -0
- data/ext/ice/cpp/src/Ice/StreamSocket.h +85 -0
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +145 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +167 -0
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +43 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +235 -0
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +67 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +133 -0
- data/ext/ice/cpp/src/Ice/TcpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +397 -0
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +93 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +127 -0
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +61 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1357 -0
- data/ext/ice/cpp/src/Ice/ThreadPool.h +399 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +43 -0
- data/ext/ice/cpp/src/Ice/TraceLevels.h +50 -0
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +26 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +452 -0
- data/ext/ice/cpp/src/Ice/TraceUtil.h +28 -0
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +24 -0
- data/ext/ice/cpp/src/Ice/Transceiver.h +52 -0
- data/ext/ice/cpp/src/Ice/TransceiverF.h +38 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +144 -0
- data/ext/ice/cpp/src/Ice/UdpConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +483 -0
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +95 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +1156 -0
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +123 -0
- data/ext/ice/cpp/src/Ice/Version.cpp +46 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +103 -0
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +61 -0
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +113 -0
- data/ext/ice/cpp/src/Ice/WSConnector.h +51 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +441 -0
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +97 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1728 -0
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +149 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +594 -0
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +1035 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +208 -0
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +78 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +308 -0
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +183 -0
- data/ext/ice/cpp/src/IceDiscovery/Makefile +61 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +148 -0
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +39 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +258 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +66 -0
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1334 -0
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +42 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +151 -0
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +397 -0
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +96 -0
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +41 -0
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +38 -0
- data/ext/ice/cpp/src/IceSSL/Instance.h +42 -0
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +34 -0
- data/ext/ice/cpp/src/IceSSL/Makefile +82 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +1001 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +607 -0
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +75 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +102 -0
- data/ext/ice/cpp/src/IceSSL/PluginI.h +56 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +541 -0
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +67 -0
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +729 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +1062 -0
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +130 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +291 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +264 -0
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +41 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1514 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +609 -0
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +91 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +246 -0
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +51 -0
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +26 -0
- data/ext/ice/cpp/src/IceSSL/Util.cpp +1423 -0
- data/ext/ice/cpp/src/IceSSL/Util.h +136 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +65 -0
- data/ext/ice/cpp/src/IceUtil/ArgVector.h +41 -0
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +386 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +477 -0
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +144 -0
- data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +184 -0
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +273 -0
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +782 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +532 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +159 -0
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +41 -0
- data/ext/ice/cpp/src/IceUtil/Makefile +68 -0
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +24 -0
- data/ext/ice/cpp/src/IceUtil/Options.cpp +1049 -0
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +591 -0
- data/ext/ice/cpp/src/IceUtil/Random.cpp +185 -0
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +257 -0
- data/ext/ice/cpp/src/IceUtil/SHA1.cpp +126 -0
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +200 -0
- data/ext/ice/cpp/src/IceUtil/StopWatch.h +54 -0
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +450 -0
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +842 -0
- data/ext/ice/cpp/src/IceUtil/Thread.cpp +809 -0
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +172 -0
- data/ext/ice/cpp/src/IceUtil/Time.cpp +306 -0
- data/ext/ice/cpp/src/IceUtil/Timer.cpp +251 -0
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +174 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +131 -0
- data/ext/ice/cpp/src/IceUtil/Unicode.h +49 -0
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +1139 -0
- data/ext/ice/cpp/src/Slice/Checksum.cpp +452 -0
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +2650 -0
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +146 -0
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +203 -0
- data/ext/ice/cpp/src/Slice/Grammar.cpp +4755 -0
- data/ext/ice/cpp/src/Slice/Grammar.h +98 -0
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +234 -0
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +4376 -0
- data/ext/ice/cpp/src/Slice/MD5.cpp +57 -0
- data/ext/ice/cpp/src/Slice/MD5.h +44 -0
- data/ext/ice/cpp/src/Slice/MD5I.cpp +385 -0
- data/ext/ice/cpp/src/Slice/MD5I.h +91 -0
- data/ext/ice/cpp/src/Slice/Makefile +65 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +156 -0
- data/ext/ice/cpp/src/Slice/Parser.cpp +6386 -0
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +686 -0
- data/ext/ice/cpp/src/Slice/Python.cpp +675 -0
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2614 -0
- data/ext/ice/cpp/src/Slice/Ruby.cpp +317 -0
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +1774 -0
- data/ext/ice/cpp/src/Slice/Scanner.cpp +2426 -0
- data/ext/ice/cpp/src/Slice/Util.cpp +325 -0
- data/ext/ice/mcpp/config.h.Darwin +227 -0
- data/ext/ice/mcpp/config.h.Linux +227 -0
- data/ext/ice/mcpp/config.h.MINGW +7 -0
- data/ext/ice/mcpp/configed.H +382 -0
- data/ext/ice/mcpp/directive.c +1699 -0
- data/ext/ice/mcpp/eval.c +1673 -0
- data/ext/ice/mcpp/expand.c +2980 -0
- data/ext/ice/mcpp/internal.H +564 -0
- data/ext/ice/mcpp/main.c +1131 -0
- data/ext/ice/mcpp/mbchar.c +869 -0
- data/ext/ice/mcpp/mcpp_lib.h +31 -0
- data/ext/ice/mcpp/mcpp_out.h +13 -0
- data/ext/ice/mcpp/support.c +2811 -0
- data/ext/ice/mcpp/system.H +396 -0
- data/ext/ice/mcpp/system.c +4940 -0
- data/ice.gemspec +41 -0
- data/lib/Glacier2.rb +12 -0
- data/lib/Glacier2/Metrics.rb +99 -0
- data/lib/Glacier2/PermissionsVerifier.rb +168 -0
- data/lib/Glacier2/PermissionsVerifierF.rb +34 -0
- data/lib/Glacier2/Router.rb +141 -0
- data/lib/Glacier2/RouterF.rb +29 -0
- data/lib/Glacier2/SSLInfo.rb +79 -0
- data/lib/Glacier2/Session.rb +470 -0
- data/lib/Ice.rb +659 -0
- data/lib/Ice/BuiltinSequences.rb +64 -0
- data/lib/Ice/Communicator.rb +93 -0
- data/lib/Ice/CommunicatorF.rb +28 -0
- data/lib/Ice/Connection.rb +414 -0
- data/lib/Ice/ConnectionF.rb +36 -0
- data/lib/Ice/Current.rb +152 -0
- data/lib/Ice/Endpoint.rb +265 -0
- data/lib/Ice/EndpointF.rb +52 -0
- data/lib/Ice/EndpointTypes.rb +77 -0
- data/lib/Ice/FacetMap.rb +28 -0
- data/lib/Ice/Identity.rb +70 -0
- data/lib/Ice/ImplicitContext.rb +59 -0
- data/lib/Ice/ImplicitContextF.rb +28 -0
- data/lib/Ice/Instrumentation.rb +425 -0
- data/lib/Ice/InstrumentationF.rb +35 -0
- data/lib/Ice/LocalException.rb +1081 -0
- data/lib/Ice/Locator.rb +314 -0
- data/lib/Ice/LocatorF.rb +34 -0
- data/lib/Ice/Logger.rb +57 -0
- data/lib/Ice/LoggerF.rb +28 -0
- data/lib/Ice/Metrics.rb +696 -0
- data/lib/Ice/ObjectAdapterF.rb +28 -0
- data/lib/Ice/ObjectFactory.rb +53 -0
- data/lib/Ice/ObjectFactoryF.rb +28 -0
- data/lib/Ice/Plugin.rb +87 -0
- data/lib/Ice/PluginF.rb +32 -0
- data/lib/Ice/Process.rb +93 -0
- data/lib/Ice/ProcessF.rb +29 -0
- data/lib/Ice/Properties.rb +65 -0
- data/lib/Ice/PropertiesAdmin.rb +104 -0
- data/lib/Ice/PropertiesF.rb +33 -0
- data/lib/Ice/Router.rb +163 -0
- data/lib/Ice/RouterF.rb +29 -0
- data/lib/Ice/SliceChecksumDict.rb +28 -0
- data/lib/Ice/Version.rb +100 -0
- data/lib/IceBox.rb +10 -0
- data/lib/IceBox/IceBox.rb +272 -0
- data/lib/IceGrid.rb +17 -0
- data/lib/IceGrid/Admin.rb +1076 -0
- data/lib/IceGrid/Descriptor.rb +1505 -0
- data/lib/IceGrid/Exception.rb +401 -0
- data/lib/IceGrid/FileParser.rb +105 -0
- data/lib/IceGrid/Locator.rb +105 -0
- data/lib/IceGrid/Observer.rb +571 -0
- data/lib/IceGrid/Query.rb +168 -0
- data/lib/IceGrid/Registry.rb +120 -0
- data/lib/IceGrid/Session.rb +114 -0
- data/lib/IceGrid/UserAccountMapper.rb +101 -0
- data/lib/IcePatch2.rb +10 -0
- data/lib/IcePatch2/FileInfo.rb +75 -0
- data/lib/IcePatch2/FileServer.rb +141 -0
- data/lib/IceStorm.rb +11 -0
- data/lib/IceStorm/IceStorm.rb +463 -0
- data/lib/IceStorm/Metrics.rb +155 -0
- data/slice/Freeze/BackgroundSaveEvictor.ice +111 -0
- data/slice/Freeze/CatalogData.ice +49 -0
- data/slice/Freeze/Connection.ice +111 -0
- data/slice/Freeze/ConnectionF.ice +20 -0
- data/slice/Freeze/DB.ice +37 -0
- data/slice/Freeze/Evictor.ice +339 -0
- data/slice/Freeze/EvictorF.ice +22 -0
- data/slice/Freeze/EvictorStorage.ice +72 -0
- data/slice/Freeze/Exception.ice +100 -0
- data/slice/Freeze/Transaction.ice +57 -0
- data/slice/Freeze/TransactionalEvictor.ice +50 -0
- data/slice/Glacier2/Metrics.ice +77 -0
- data/slice/Glacier2/PermissionsVerifier.ice +105 -0
- data/slice/Glacier2/PermissionsVerifierF.ice +21 -0
- data/slice/Glacier2/Router.ice +178 -0
- data/slice/Glacier2/RouterF.ice +20 -0
- data/slice/Glacier2/SSLInfo.ice +50 -0
- data/slice/Glacier2/Session.ice +273 -0
- data/slice/Ice/BuiltinSequences.ice +48 -0
- data/slice/Ice/Communicator.ice +567 -0
- data/slice/Ice/CommunicatorF.ice +20 -0
- data/slice/Ice/Connection.ice +323 -0
- data/slice/Ice/ConnectionF.ice +22 -0
- data/slice/Ice/Current.ice +160 -0
- data/slice/Ice/Endpoint.ice +227 -0
- data/slice/Ice/EndpointF.ice +32 -0
- data/slice/Ice/EndpointTypes.ice +38 -0
- data/slice/Ice/FacetMap.ice +25 -0
- data/slice/Ice/Identity.ice +59 -0
- data/slice/Ice/ImplicitContext.ice +109 -0
- data/slice/Ice/ImplicitContextF.ice +20 -0
- data/slice/Ice/Instrumentation.ice +499 -0
- data/slice/Ice/InstrumentationF.ice +26 -0
- data/slice/Ice/LocalException.ice +1015 -0
- data/slice/Ice/Locator.ice +227 -0
- data/slice/Ice/LocatorF.ice +21 -0
- data/slice/Ice/Logger.ice +86 -0
- data/slice/Ice/LoggerF.ice +20 -0
- data/slice/Ice/Metrics.ice +422 -0
- data/slice/Ice/ObjectAdapter.ice +673 -0
- data/slice/Ice/ObjectAdapterF.ice +20 -0
- data/slice/Ice/ObjectFactory.ice +60 -0
- data/slice/Ice/ObjectFactoryF.ice +20 -0
- data/slice/Ice/Plugin.ice +117 -0
- data/slice/Ice/PluginF.ice +21 -0
- data/slice/Ice/Process.ice +54 -0
- data/slice/Ice/ProcessF.ice +20 -0
- data/slice/Ice/Properties.ice +228 -0
- data/slice/Ice/PropertiesAdmin.ice +75 -0
- data/slice/Ice/PropertiesF.ice +21 -0
- data/slice/Ice/RemoteLogger.ice +232 -0
- data/slice/Ice/Router.ice +83 -0
- data/slice/Ice/RouterF.ice +20 -0
- data/slice/Ice/ServantLocator.ice +117 -0
- data/slice/Ice/ServantLocatorF.ice +20 -0
- data/slice/Ice/SliceChecksumDict.ice +25 -0
- data/slice/Ice/Version.ice +39 -0
- data/slice/IceBox/IceBox.ice +194 -0
- data/slice/IceDiscovery/IceDiscovery.ice +32 -0
- data/slice/IceGrid/Admin.ice +1578 -0
- data/slice/IceGrid/Descriptor.ice +1079 -0
- data/slice/IceGrid/Discovery.ice +73 -0
- data/slice/IceGrid/Exception.ice +383 -0
- data/slice/IceGrid/FileParser.ice +61 -0
- data/slice/IceGrid/Locator.ice +56 -0
- data/slice/IceGrid/Observer.ice +394 -0
- data/slice/IceGrid/PluginFacade.ice +316 -0
- data/slice/IceGrid/Query.ice +130 -0
- data/slice/IceGrid/Registry.ice +138 -0
- data/slice/IceGrid/Session.ice +124 -0
- data/slice/IceGrid/UserAccountMapper.ice +58 -0
- data/slice/IcePatch2/FileInfo.ice +49 -0
- data/slice/IcePatch2/FileServer.ice +129 -0
- data/slice/IceSSL/ConnectionInfo.ice +34 -0
- data/slice/IceSSL/EndpointInfo.ice +41 -0
- data/slice/IceStorm/IceStorm.ice +405 -0
- data/slice/IceStorm/Metrics.ice +71 -0
- metadata +737 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICE_STREAM_F_H
|
|
11
|
+
#define ICE_STREAM_F_H
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/Shared.h>
|
|
14
|
+
|
|
15
|
+
#include <Ice/Handle.h>
|
|
16
|
+
|
|
17
|
+
namespace Ice
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
class InputStream;
|
|
21
|
+
ICE_API IceUtil::Shared* upCast(::Ice::InputStream*);
|
|
22
|
+
typedef IceInternal::Handle< InputStream > InputStreamPtr;
|
|
23
|
+
|
|
24
|
+
class OutputStream;
|
|
25
|
+
ICE_API IceUtil::Shared* upCast(::Ice::OutputStream*);
|
|
26
|
+
typedef IceInternal::Handle< OutputStream > OutputStreamPtr;
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#endif
|
|
@@ -0,0 +1,877 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef ICE_STREAM_TRAITS_H
|
|
11
|
+
#define ICE_STREAM_TRAITS_H
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/ScopedArray.h>
|
|
14
|
+
#include <IceUtil/Iterator.h>
|
|
15
|
+
|
|
16
|
+
#include <Ice/ObjectF.h>
|
|
17
|
+
|
|
18
|
+
namespace Ice
|
|
19
|
+
{
|
|
20
|
+
|
|
21
|
+
// The stream helper category
|
|
22
|
+
// Allows streams to select the desired StreamHelper for a given streamable object;
|
|
23
|
+
// see StreamableTraits below.
|
|
24
|
+
//
|
|
25
|
+
|
|
26
|
+
typedef int StreamHelperCategory;
|
|
27
|
+
|
|
28
|
+
const StreamHelperCategory StreamHelperCategoryUnknown = 0;
|
|
29
|
+
const StreamHelperCategory StreamHelperCategoryBuiltin = 1;
|
|
30
|
+
const StreamHelperCategory StreamHelperCategoryStruct = 2;
|
|
31
|
+
const StreamHelperCategory StreamHelperCategoryStructClass = 3; // struct with cpp:class metadata
|
|
32
|
+
const StreamHelperCategory StreamHelperCategoryEnum = 4;
|
|
33
|
+
const StreamHelperCategory StreamHelperCategorySequence = 5;
|
|
34
|
+
const StreamHelperCategory StreamHelperCategoryDictionary = 6;
|
|
35
|
+
const StreamHelperCategory StreamHelperCategoryProxy = 7;
|
|
36
|
+
const StreamHelperCategory StreamHelperCategoryClass = 8;
|
|
37
|
+
const StreamHelperCategory StreamHelperCategoryUserException = 9;
|
|
38
|
+
|
|
39
|
+
//
|
|
40
|
+
// The optional format.
|
|
41
|
+
//
|
|
42
|
+
// Optional data members and parameters are encoded with a specific
|
|
43
|
+
// optional format. This optional format describes how the data is encoded
|
|
44
|
+
// and how it can be skipped by the unmarshaling code if the optional
|
|
45
|
+
// isn't known to the receiver.
|
|
46
|
+
//
|
|
47
|
+
enum OptionalFormat
|
|
48
|
+
{
|
|
49
|
+
OptionalFormatF1 = 0, // Fixed 1-byte encoding
|
|
50
|
+
OptionalFormatF2 = 1, // Fixed 2 bytes encoding
|
|
51
|
+
OptionalFormatF4 = 2, // Fixed 4 bytes encoding
|
|
52
|
+
OptionalFormatF8 = 3, // Fixed 8 bytes encoding
|
|
53
|
+
OptionalFormatSize = 4, // "Size encoding" on 1 to 5 bytes, e.g. enum, class identifier
|
|
54
|
+
OptionalFormatVSize = 5, // "Size encoding" on 1 to 5 bytes followed by data, e.g. string, fixed size
|
|
55
|
+
// struct, or containers whose size can be computed prior to marshaling
|
|
56
|
+
OptionalFormatFSize = 6, // Fixed size on 4 bytes followed by data, e.g. variable-size struct, container.
|
|
57
|
+
OptionalFormatClass = 7
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
//
|
|
62
|
+
// Is the provided type a container?
|
|
63
|
+
// For now, the implementation only checks if there is a T::iterator typedef
|
|
64
|
+
// using SFINAE
|
|
65
|
+
//
|
|
66
|
+
template<typename T>
|
|
67
|
+
struct IsContainer
|
|
68
|
+
{
|
|
69
|
+
template<typename C>
|
|
70
|
+
static char test(typename C::iterator*);
|
|
71
|
+
|
|
72
|
+
template<typename C>
|
|
73
|
+
static long test(...);
|
|
74
|
+
|
|
75
|
+
static const bool value = sizeof(test<T>(0)) == sizeof(char);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
//
|
|
79
|
+
// Is the provided type a map?
|
|
80
|
+
// For now, the implementation only checks if there is a T::mapped_type typedef
|
|
81
|
+
// using SFINAE
|
|
82
|
+
//
|
|
83
|
+
template<typename T>
|
|
84
|
+
struct IsMap
|
|
85
|
+
{
|
|
86
|
+
template<typename C>
|
|
87
|
+
static char test(typename C::mapped_type*);
|
|
88
|
+
|
|
89
|
+
template<typename C>
|
|
90
|
+
static long test(...);
|
|
91
|
+
|
|
92
|
+
static const bool value = IsContainer<T>::value && sizeof(test<T>(0)) == sizeof(char);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
//
|
|
96
|
+
// Base traits template.
|
|
97
|
+
// Types with no specialized trait use this trait.
|
|
98
|
+
//
|
|
99
|
+
template<typename T, typename Enabler = void>
|
|
100
|
+
struct StreamableTraits
|
|
101
|
+
{
|
|
102
|
+
static const StreamHelperCategory helper = IsMap<T>::value ? StreamHelperCategoryDictionary :
|
|
103
|
+
(IsContainer<T>::value ? StreamHelperCategorySequence : StreamHelperCategoryUnknown);
|
|
104
|
+
|
|
105
|
+
//
|
|
106
|
+
// When extracting a sequence<T> from a stream, we can ensure the
|
|
107
|
+
// stream has at least StreamableTraits<T>::minWireSize * size bytes
|
|
108
|
+
// For containers, the minWireSize is 1 (just 1 byte for an empty container).
|
|
109
|
+
//
|
|
110
|
+
static const int minWireSize = 1;
|
|
111
|
+
|
|
112
|
+
//
|
|
113
|
+
// Is this type encoded on a fixed number of bytes?
|
|
114
|
+
// Used only for marshaling/unmarshaling optional data members and parameters.
|
|
115
|
+
//
|
|
116
|
+
static const bool fixedLength = false;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
//
|
|
120
|
+
// StreamableTraits specialization for array / range mapped sequences
|
|
121
|
+
// The type can be a std::pair<T, T> or a
|
|
122
|
+
// std::pair<IceUtil::ScopedArray<T>, std::pair<const T*, const T*> >
|
|
123
|
+
//
|
|
124
|
+
template<typename T, typename U>
|
|
125
|
+
struct StreamableTraits< ::std::pair<T, U> >
|
|
126
|
+
{
|
|
127
|
+
static const StreamHelperCategory helper = StreamHelperCategorySequence;
|
|
128
|
+
static const int minWireSize = 1;
|
|
129
|
+
static const bool fixedLength = false;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
//
|
|
133
|
+
// StreamableTraits specialization for user exceptions.
|
|
134
|
+
//
|
|
135
|
+
template<>
|
|
136
|
+
struct StreamableTraits<UserException>
|
|
137
|
+
{
|
|
138
|
+
static const StreamHelperCategory helper = StreamHelperCategoryUserException;
|
|
139
|
+
|
|
140
|
+
//
|
|
141
|
+
// There is no sequence/dictionary of UserException (so no need for minWireSize)
|
|
142
|
+
// and no optional UserException (so no need for fixedLength)
|
|
143
|
+
//
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
//
|
|
148
|
+
// StreamableTraits specialization for builtins (these are needed for sequence
|
|
149
|
+
// marshaling to figure out the minWireSize of each built-in).
|
|
150
|
+
//
|
|
151
|
+
template<>
|
|
152
|
+
struct StreamableTraits<bool>
|
|
153
|
+
{
|
|
154
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
155
|
+
static const int minWireSize = 1;
|
|
156
|
+
static const bool fixedLength = true;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
template<>
|
|
160
|
+
struct StreamableTraits<Byte>
|
|
161
|
+
{
|
|
162
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
163
|
+
static const int minWireSize = 1;
|
|
164
|
+
static const bool fixedLength = true;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
template<>
|
|
168
|
+
struct StreamableTraits<Short>
|
|
169
|
+
{
|
|
170
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
171
|
+
static const int minWireSize = 2;
|
|
172
|
+
static const bool fixedLength = true;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
template<>
|
|
176
|
+
struct StreamableTraits<Int>
|
|
177
|
+
{
|
|
178
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
179
|
+
static const int minWireSize = 4;
|
|
180
|
+
static const bool fixedLength = true;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
template<>
|
|
184
|
+
struct StreamableTraits<Long>
|
|
185
|
+
{
|
|
186
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
187
|
+
static const int minWireSize = 8;
|
|
188
|
+
static const bool fixedLength = true;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
template<>
|
|
192
|
+
struct StreamableTraits<Float>
|
|
193
|
+
{
|
|
194
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
195
|
+
static const int minWireSize = 4;
|
|
196
|
+
static const bool fixedLength = true;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
template<>
|
|
200
|
+
struct StreamableTraits<Double>
|
|
201
|
+
{
|
|
202
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
203
|
+
static const int minWireSize = 8;
|
|
204
|
+
static const bool fixedLength = true;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
template<>
|
|
208
|
+
struct StreamableTraits< ::std::string>
|
|
209
|
+
{
|
|
210
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
211
|
+
static const int minWireSize = 1;
|
|
212
|
+
static const bool fixedLength = false;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
template<>
|
|
216
|
+
struct StreamableTraits< ::std::wstring>
|
|
217
|
+
{
|
|
218
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
219
|
+
static const int minWireSize = 1;
|
|
220
|
+
static const bool fixedLength = false;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
//
|
|
224
|
+
// vector<bool> is a special type in C++: the streams are responsible
|
|
225
|
+
// to handle it like a built-in type.
|
|
226
|
+
//
|
|
227
|
+
template<>
|
|
228
|
+
struct StreamableTraits< ::std::vector<bool> >
|
|
229
|
+
{
|
|
230
|
+
static const StreamHelperCategory helper = StreamHelperCategoryBuiltin;
|
|
231
|
+
static const int minWireSize = 1;
|
|
232
|
+
static const bool fixedLength = false;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
template<typename T>
|
|
237
|
+
struct StreamableTraits< ::IceInternal::ProxyHandle<T> >
|
|
238
|
+
{
|
|
239
|
+
static const StreamHelperCategory helper = StreamHelperCategoryProxy;
|
|
240
|
+
static const int minWireSize = 2;
|
|
241
|
+
static const bool fixedLength = false;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
template<typename T>
|
|
245
|
+
struct StreamableTraits< ::IceInternal::Handle<T> >
|
|
246
|
+
{
|
|
247
|
+
static const StreamHelperCategory helper = StreamHelperCategoryClass;
|
|
248
|
+
static const int minWireSize = 1;
|
|
249
|
+
static const bool fixedLength = false;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
//
|
|
253
|
+
// StreamHelper templates used by streams to read and write data.
|
|
254
|
+
//
|
|
255
|
+
|
|
256
|
+
// Base StreamHelper template; it must be specialized for each type
|
|
257
|
+
template<typename T, StreamHelperCategory st>
|
|
258
|
+
struct StreamHelper;
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
// Helper for builtins, delegates read/write to the stream.
|
|
262
|
+
template<typename T>
|
|
263
|
+
struct StreamHelper<T, StreamHelperCategoryBuiltin>
|
|
264
|
+
{
|
|
265
|
+
template<class S> static inline void
|
|
266
|
+
write(S* stream, const T& v)
|
|
267
|
+
{
|
|
268
|
+
stream->write(v);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
template<class S> static inline void
|
|
272
|
+
read(S* stream, T& v)
|
|
273
|
+
{
|
|
274
|
+
stream->read(v);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// "helpers" for the StreamHelper<T, StreamHelperCategoryStruct[Class]> below
|
|
279
|
+
// We generate specializations, which can be instantiated explicitly and exported from DLLs
|
|
280
|
+
//
|
|
281
|
+
|
|
282
|
+
template<typename T, typename S>
|
|
283
|
+
struct StreamWriter;
|
|
284
|
+
|
|
285
|
+
template<typename T, typename S>
|
|
286
|
+
struct StreamReader;
|
|
287
|
+
|
|
288
|
+
// Helper for structs
|
|
289
|
+
template<typename T>
|
|
290
|
+
struct StreamHelper<T, StreamHelperCategoryStruct>
|
|
291
|
+
{
|
|
292
|
+
template<class S> static inline void
|
|
293
|
+
write(S* stream, const T& v)
|
|
294
|
+
{
|
|
295
|
+
StreamWriter<T, S>::write(stream, v);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
template<class S> static inline void
|
|
299
|
+
read(S* stream, T& v)
|
|
300
|
+
{
|
|
301
|
+
StreamReader<T, S>::read(stream, v);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
// Helper for class structs
|
|
307
|
+
template<typename T>
|
|
308
|
+
struct StreamHelper<T, StreamHelperCategoryStructClass>
|
|
309
|
+
{
|
|
310
|
+
template<class S> static inline void
|
|
311
|
+
write(S* stream, const T& v)
|
|
312
|
+
{
|
|
313
|
+
StreamWriter<T, S>::write(stream, v);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
template<class S> static inline void
|
|
317
|
+
read(S* stream, T& v)
|
|
318
|
+
{
|
|
319
|
+
v = new typename T::element_type;
|
|
320
|
+
StreamReader<T, S>::read(stream, v);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
// Helper for enums
|
|
325
|
+
template<typename T>
|
|
326
|
+
struct StreamHelper<T, StreamHelperCategoryEnum>
|
|
327
|
+
{
|
|
328
|
+
template<class S> static inline void
|
|
329
|
+
write(S* stream, const T& v)
|
|
330
|
+
{
|
|
331
|
+
if(static_cast<Int>(v) < StreamableTraits<T>::minValue || static_cast<Int>(v) > StreamableTraits<T>::maxValue)
|
|
332
|
+
{
|
|
333
|
+
IceInternal::Ex::throwMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
|
334
|
+
}
|
|
335
|
+
stream->writeEnum(static_cast<Int>(v), StreamableTraits<T>::maxValue);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
template<class S> static inline void
|
|
339
|
+
read(S* stream, T& v)
|
|
340
|
+
{
|
|
341
|
+
Int value = stream->readEnum(StreamableTraits<T>::maxValue);
|
|
342
|
+
if(value < StreamableTraits<T>::minValue || value > StreamableTraits<T>::maxValue)
|
|
343
|
+
{
|
|
344
|
+
IceInternal::Ex::throwMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
|
345
|
+
}
|
|
346
|
+
v = static_cast<T>(value);
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
// Helper for sequences
|
|
351
|
+
template<typename T>
|
|
352
|
+
struct StreamHelper<T, StreamHelperCategorySequence>
|
|
353
|
+
{
|
|
354
|
+
template<class S> static inline void
|
|
355
|
+
write(S* stream, const T& v)
|
|
356
|
+
{
|
|
357
|
+
stream->writeSize(static_cast<Int>(v.size()));
|
|
358
|
+
for(typename T::const_iterator p = v.begin(); p != v.end(); ++p)
|
|
359
|
+
{
|
|
360
|
+
stream->write(*p);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
template<class S> static inline void
|
|
365
|
+
read(S* stream, T& v)
|
|
366
|
+
{
|
|
367
|
+
Int sz = stream->readAndCheckSeqSize(StreamableTraits<typename T::value_type>::minWireSize);
|
|
368
|
+
T(sz).swap(v);
|
|
369
|
+
for(typename T::iterator p = v.begin(); p != v.end(); ++p)
|
|
370
|
+
{
|
|
371
|
+
stream->read(*p);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
// Helper for array and range:array custom sequence parameters
|
|
377
|
+
template<typename T>
|
|
378
|
+
struct StreamHelper<std::pair<const T*, const T*>, StreamHelperCategorySequence>
|
|
379
|
+
{
|
|
380
|
+
template<class S> static inline void
|
|
381
|
+
write(S* stream, const std::pair<const T*, const T*>& v)
|
|
382
|
+
{
|
|
383
|
+
stream->write(v.first, v.second);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
template<class S> static inline void
|
|
387
|
+
read(S* stream, std::pair<const T*, const T*>& v)
|
|
388
|
+
{
|
|
389
|
+
stream->read(v);
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
// Helper for range custom sequence parameters
|
|
394
|
+
template<typename T>
|
|
395
|
+
struct StreamHelper<std::pair<T, T>, StreamHelperCategorySequence>
|
|
396
|
+
{
|
|
397
|
+
template<class S> static inline void
|
|
398
|
+
write(S* stream, const std::pair<T, T>& v)
|
|
399
|
+
{
|
|
400
|
+
stream->writeSize(static_cast<Int>(IceUtilInternal::distance(v.first, v.second)));
|
|
401
|
+
for(T p = v.first; p != v.second; ++p)
|
|
402
|
+
{
|
|
403
|
+
stream->write(*p);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
template<class S> static inline void
|
|
408
|
+
read(S* stream, std::pair<T, T>& v)
|
|
409
|
+
{
|
|
410
|
+
stream->read(v);
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
template<>
|
|
415
|
+
struct StreamHelper<std::pair< ::std::vector<bool>::const_iterator,
|
|
416
|
+
::std::vector<bool>::const_iterator>, StreamHelperCategorySequence>
|
|
417
|
+
{
|
|
418
|
+
template<class S> static inline void
|
|
419
|
+
write(S* stream, const std::pair< ::std::vector<bool>::const_iterator,
|
|
420
|
+
::std::vector<bool>::const_iterator>& v)
|
|
421
|
+
{
|
|
422
|
+
stream->writeSize(static_cast<Int>(IceUtilInternal::distance(v.first, v.second)));
|
|
423
|
+
for(::std::vector<bool>::const_iterator p = v.first; p != v.second; ++p)
|
|
424
|
+
{
|
|
425
|
+
stream->write(static_cast<bool>(*p));
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// no read: only used for marshaling
|
|
430
|
+
};
|
|
431
|
+
|
|
432
|
+
// Helper for zero-copy array sequence parameters
|
|
433
|
+
template<typename T>
|
|
434
|
+
struct StreamHelper<std::pair<IceUtil::ScopedArray<T>, std::pair<const T*, const T*> >, StreamHelperCategorySequence>
|
|
435
|
+
{
|
|
436
|
+
template<class S> static inline void
|
|
437
|
+
read(S* stream, std::pair<IceUtil::ScopedArray<T>, std::pair<const T*, const T*> >& v)
|
|
438
|
+
{
|
|
439
|
+
stream->read(v.second, v.first);
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// no write: only used for unmarshaling
|
|
443
|
+
};
|
|
444
|
+
|
|
445
|
+
// Helper for dictionaries
|
|
446
|
+
template<typename T>
|
|
447
|
+
struct StreamHelper<T, StreamHelperCategoryDictionary>
|
|
448
|
+
{
|
|
449
|
+
template<class S> static inline void
|
|
450
|
+
write(S* stream, const T& v)
|
|
451
|
+
{
|
|
452
|
+
stream->writeSize(static_cast<Int>(v.size()));
|
|
453
|
+
for(typename T::const_iterator p = v.begin(); p != v.end(); ++p)
|
|
454
|
+
{
|
|
455
|
+
stream->write(p->first);
|
|
456
|
+
stream->write(p->second);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
template<class S> static inline void
|
|
461
|
+
read(S* stream, T& v)
|
|
462
|
+
{
|
|
463
|
+
Int sz = stream->readSize();
|
|
464
|
+
v.clear();
|
|
465
|
+
while(sz--)
|
|
466
|
+
{
|
|
467
|
+
typename T::value_type p;
|
|
468
|
+
stream->read(const_cast<typename T::key_type&>(p.first));
|
|
469
|
+
typename T::iterator i = v.insert(v.end(), p);
|
|
470
|
+
stream->read(i->second);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
// Helper for user exceptions
|
|
476
|
+
template<typename T>
|
|
477
|
+
struct StreamHelper<T, StreamHelperCategoryUserException>
|
|
478
|
+
{
|
|
479
|
+
template<class S> static inline void
|
|
480
|
+
write(S* stream, const T& v)
|
|
481
|
+
{
|
|
482
|
+
stream->writeException(v);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// no read: only used for marshaling
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
// Helper for proxies
|
|
489
|
+
template<typename T>
|
|
490
|
+
struct StreamHelper<T, StreamHelperCategoryProxy>
|
|
491
|
+
{
|
|
492
|
+
template<class S> static inline void
|
|
493
|
+
write(S* stream, const T& v)
|
|
494
|
+
{
|
|
495
|
+
stream->write(v);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
template<class S> static inline void
|
|
499
|
+
read(S* stream, T& v)
|
|
500
|
+
{
|
|
501
|
+
stream->read(v);
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
// Helper for classes
|
|
506
|
+
template<typename T>
|
|
507
|
+
struct StreamHelper<T, StreamHelperCategoryClass>
|
|
508
|
+
{
|
|
509
|
+
template<class S> static inline void
|
|
510
|
+
write(S* stream, const T& v)
|
|
511
|
+
{
|
|
512
|
+
stream->write(v);
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
template<class S> static inline void
|
|
516
|
+
read(S* stream, T& v)
|
|
517
|
+
{
|
|
518
|
+
stream->read(v);
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
//
|
|
524
|
+
// Helpers to read/write optional attributes or members.
|
|
525
|
+
//
|
|
526
|
+
|
|
527
|
+
//
|
|
528
|
+
// Extract / compute the optionalFormat
|
|
529
|
+
// This is used _only_ for the base StreamOptionalHelper below
|
|
530
|
+
// /!\ Do not use in StreamOptionalHelper specializations, and do
|
|
531
|
+
// not provide specialization not handled by the base StreamOptionalHelper
|
|
532
|
+
//
|
|
533
|
+
template<StreamHelperCategory st, int minWireSize, bool fixedLength>
|
|
534
|
+
struct GetOptionalFormat;
|
|
535
|
+
|
|
536
|
+
template<>
|
|
537
|
+
struct GetOptionalFormat<StreamHelperCategoryBuiltin, 1, true>
|
|
538
|
+
{
|
|
539
|
+
static const OptionalFormat value = OptionalFormatF1;
|
|
540
|
+
};
|
|
541
|
+
|
|
542
|
+
template<>
|
|
543
|
+
struct GetOptionalFormat<StreamHelperCategoryBuiltin, 2, true>
|
|
544
|
+
{
|
|
545
|
+
static const OptionalFormat value = OptionalFormatF2;
|
|
546
|
+
};
|
|
547
|
+
|
|
548
|
+
template<>
|
|
549
|
+
struct GetOptionalFormat<StreamHelperCategoryBuiltin, 4, true>
|
|
550
|
+
{
|
|
551
|
+
static const OptionalFormat value = OptionalFormatF4;
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
template<>
|
|
555
|
+
struct GetOptionalFormat<StreamHelperCategoryBuiltin, 8, true>
|
|
556
|
+
{
|
|
557
|
+
static const OptionalFormat value = OptionalFormatF8;
|
|
558
|
+
};
|
|
559
|
+
|
|
560
|
+
template<>
|
|
561
|
+
struct GetOptionalFormat<StreamHelperCategoryBuiltin, 1, false>
|
|
562
|
+
{
|
|
563
|
+
static const OptionalFormat value = OptionalFormatVSize;
|
|
564
|
+
};
|
|
565
|
+
|
|
566
|
+
template<>
|
|
567
|
+
struct GetOptionalFormat<StreamHelperCategoryClass, 1, false>
|
|
568
|
+
{
|
|
569
|
+
static const OptionalFormat value = OptionalFormatClass;
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
template<int minWireSize>
|
|
573
|
+
struct GetOptionalFormat<StreamHelperCategoryEnum, minWireSize, false>
|
|
574
|
+
{
|
|
575
|
+
static const OptionalFormat value = OptionalFormatSize;
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
// Base helper: simply read/write the data
|
|
580
|
+
template<typename T, StreamHelperCategory st, bool fixedLength>
|
|
581
|
+
struct StreamOptionalHelper
|
|
582
|
+
{
|
|
583
|
+
typedef StreamableTraits<T> Traits;
|
|
584
|
+
|
|
585
|
+
// If this optionalFormat fails to compile, you must either define your specialization
|
|
586
|
+
// for GetOptionalFormat (in which case the optional data will be marshaled/unmarshaled
|
|
587
|
+
// with straight calls to write/read on the stream), or define your own
|
|
588
|
+
// StreamOptionalHelper specialization (which gives you more control over marshaling)
|
|
589
|
+
//
|
|
590
|
+
static const OptionalFormat optionalFormat = GetOptionalFormat<st, Traits::minWireSize, fixedLength>::value;
|
|
591
|
+
|
|
592
|
+
template<class S> static inline void
|
|
593
|
+
write(S* stream, const T& v)
|
|
594
|
+
{
|
|
595
|
+
stream->write(v);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
template<class S> static inline void
|
|
599
|
+
read(S* stream, T& v)
|
|
600
|
+
{
|
|
601
|
+
stream->read(v);
|
|
602
|
+
}
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
// Helper to write fixed size structs
|
|
606
|
+
template<typename T>
|
|
607
|
+
struct StreamOptionalHelper<T, StreamHelperCategoryStruct, true>
|
|
608
|
+
{
|
|
609
|
+
static const OptionalFormat optionalFormat = OptionalFormatVSize;
|
|
610
|
+
|
|
611
|
+
template<class S> static inline void
|
|
612
|
+
write(S* stream, const T& v)
|
|
613
|
+
{
|
|
614
|
+
stream->writeSize(StreamableTraits<T>::minWireSize);
|
|
615
|
+
stream->write(v);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
template<class S> static inline void
|
|
619
|
+
read(S* stream, T& v)
|
|
620
|
+
{
|
|
621
|
+
stream->skipSize();
|
|
622
|
+
stream->read(v);
|
|
623
|
+
}
|
|
624
|
+
};
|
|
625
|
+
|
|
626
|
+
// Helper to write variable size structs
|
|
627
|
+
template<typename T>
|
|
628
|
+
struct StreamOptionalHelper<T, StreamHelperCategoryStruct, false>
|
|
629
|
+
{
|
|
630
|
+
static const OptionalFormat optionalFormat = OptionalFormatFSize;
|
|
631
|
+
|
|
632
|
+
template<class S> static inline void
|
|
633
|
+
write(S* stream, const T& v)
|
|
634
|
+
{
|
|
635
|
+
typename S::size_type pos = stream->startSize();
|
|
636
|
+
stream->write(v);
|
|
637
|
+
stream->endSize(pos);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
template<class S> static inline void
|
|
641
|
+
read(S* stream, T& v)
|
|
642
|
+
{
|
|
643
|
+
stream->skip(4);
|
|
644
|
+
stream->read(v);
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
// Class structs are encoded like structs
|
|
649
|
+
template<typename T, bool fixedLength>
|
|
650
|
+
struct StreamOptionalHelper<T, StreamHelperCategoryStructClass, fixedLength> : StreamOptionalHelper<T, StreamHelperCategoryStruct, fixedLength>
|
|
651
|
+
{
|
|
652
|
+
};
|
|
653
|
+
|
|
654
|
+
// Optional proxies are encoded like variable size structs, using the FSize encoding
|
|
655
|
+
template<typename T>
|
|
656
|
+
struct StreamOptionalHelper<T, StreamHelperCategoryProxy, false> : StreamOptionalHelper<T, StreamHelperCategoryStruct, false>
|
|
657
|
+
{
|
|
658
|
+
};
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
//
|
|
662
|
+
// Helpers to read/write optional sequences or dictionaries
|
|
663
|
+
//
|
|
664
|
+
template<typename T, bool fixedLength, int sz>
|
|
665
|
+
struct StreamOptionalContainerHelper;
|
|
666
|
+
|
|
667
|
+
//
|
|
668
|
+
// Encode containers of variable size elements with the FSize optional
|
|
669
|
+
// type, since we can't easily figure out the size of the container
|
|
670
|
+
// before encoding. This is the same encoding as variable size structs
|
|
671
|
+
// so we just re-use its implementation.
|
|
672
|
+
//
|
|
673
|
+
template<typename T, int sz>
|
|
674
|
+
struct StreamOptionalContainerHelper<T, false, sz>
|
|
675
|
+
{
|
|
676
|
+
static const OptionalFormat optionalFormat = OptionalFormatFSize;
|
|
677
|
+
|
|
678
|
+
template<class S> static inline void
|
|
679
|
+
write(S* stream, const T& v, Int)
|
|
680
|
+
{
|
|
681
|
+
StreamOptionalHelper<T, StreamHelperCategoryStruct, false>::write(stream, v);
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
template<class S> static inline void
|
|
685
|
+
read(S* stream, T& v)
|
|
686
|
+
{
|
|
687
|
+
StreamOptionalHelper<T, StreamHelperCategoryStruct, false>::read(stream, v);
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
|
|
691
|
+
//
|
|
692
|
+
// Encode containers of fixed size elements with the VSize optional
|
|
693
|
+
// type since we can figure out the size of the container before
|
|
694
|
+
// encoding.
|
|
695
|
+
//
|
|
696
|
+
template<typename T, int sz>
|
|
697
|
+
struct StreamOptionalContainerHelper<T, true, sz>
|
|
698
|
+
{
|
|
699
|
+
static const OptionalFormat optionalFormat = OptionalFormatVSize;
|
|
700
|
+
|
|
701
|
+
template<class S> static inline void
|
|
702
|
+
write(S* stream, const T& v, Int n)
|
|
703
|
+
{
|
|
704
|
+
//
|
|
705
|
+
// The container size is the number of elements * the size of
|
|
706
|
+
// an element and the size-encoded number of elements (1 or
|
|
707
|
+
// 5 depending on the number of elements).
|
|
708
|
+
//
|
|
709
|
+
stream->writeSize(sz * n + (n < 255 ? 1 : 5));
|
|
710
|
+
stream->write(v);
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
template<class S> static inline void
|
|
714
|
+
read(S* stream, T& v)
|
|
715
|
+
{
|
|
716
|
+
stream->skipSize();
|
|
717
|
+
stream->read(v);
|
|
718
|
+
}
|
|
719
|
+
};
|
|
720
|
+
|
|
721
|
+
//
|
|
722
|
+
// Optimization: containers of 1 byte elements are encoded with the
|
|
723
|
+
// VSize optional type. There's no need to encode an additional size
|
|
724
|
+
// for those, the number of elements of the container can be used to
|
|
725
|
+
// skip the optional.
|
|
726
|
+
//
|
|
727
|
+
template<typename T>
|
|
728
|
+
struct StreamOptionalContainerHelper<T, true, 1>
|
|
729
|
+
{
|
|
730
|
+
static const OptionalFormat optionalFormat = OptionalFormatVSize;
|
|
731
|
+
|
|
732
|
+
template<class S> static inline void
|
|
733
|
+
write(S* stream, const T& v, Int)
|
|
734
|
+
{
|
|
735
|
+
stream->write(v);
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
template<class S> static inline void
|
|
739
|
+
read(S* stream, T& v)
|
|
740
|
+
{
|
|
741
|
+
stream->read(v);
|
|
742
|
+
}
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
//
|
|
747
|
+
// Helper to write sequences, delegates to the optional container
|
|
748
|
+
// helper template partial specializations.
|
|
749
|
+
//
|
|
750
|
+
template<typename T>
|
|
751
|
+
struct StreamOptionalHelper<T, StreamHelperCategorySequence, false>
|
|
752
|
+
{
|
|
753
|
+
typedef typename T::value_type E;
|
|
754
|
+
static const int size = StreamableTraits<E>::minWireSize;
|
|
755
|
+
static const bool fixedLength = StreamableTraits<E>::fixedLength;
|
|
756
|
+
|
|
757
|
+
// The optional type of a sequence depends on whether or not elements are fixed
|
|
758
|
+
// or variable size elements and their size.
|
|
759
|
+
static const OptionalFormat optionalFormat = StreamOptionalContainerHelper<T, fixedLength, size>::optionalFormat;
|
|
760
|
+
|
|
761
|
+
template<class S> static inline void
|
|
762
|
+
write(S* stream, const T& v)
|
|
763
|
+
{
|
|
764
|
+
StreamOptionalContainerHelper<T, fixedLength, size>::write(stream, v, static_cast<Int>(v.size()));
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
template<class S> static inline void
|
|
768
|
+
read(S* stream, T& v)
|
|
769
|
+
{
|
|
770
|
+
StreamOptionalContainerHelper<T, fixedLength, size>::read(stream, v);
|
|
771
|
+
}
|
|
772
|
+
};
|
|
773
|
+
|
|
774
|
+
template<typename T>
|
|
775
|
+
struct StreamOptionalHelper<std::pair<const T*, const T*>, StreamHelperCategorySequence, false>
|
|
776
|
+
{
|
|
777
|
+
typedef std::pair<const T*, const T*> P;
|
|
778
|
+
static const int size = StreamableTraits<T>::minWireSize;
|
|
779
|
+
static const bool fixedLength = StreamableTraits<T>::fixedLength;
|
|
780
|
+
|
|
781
|
+
// The optional type of a sequence depends on whether or not elements are fixed
|
|
782
|
+
// or variable size elements and their size.
|
|
783
|
+
static const OptionalFormat optionalFormat = StreamOptionalContainerHelper<P, fixedLength, size>::optionalFormat;
|
|
784
|
+
|
|
785
|
+
template<class S> static inline void
|
|
786
|
+
write(S* stream, const P& v)
|
|
787
|
+
{
|
|
788
|
+
Int n = static_cast<Int>(v.second - v.first);
|
|
789
|
+
StreamOptionalContainerHelper<P, fixedLength, size>::write(stream, v, n);
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
template<class S> static inline void
|
|
793
|
+
read(S* stream, P& v)
|
|
794
|
+
{
|
|
795
|
+
StreamOptionalContainerHelper<P, fixedLength, size>::read(stream, v);
|
|
796
|
+
}
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
template<typename T>
|
|
800
|
+
struct StreamOptionalHelper<std::pair<T, T>, StreamHelperCategorySequence, false>
|
|
801
|
+
{
|
|
802
|
+
typedef std::pair<T, T> P;
|
|
803
|
+
static const int size = StreamableTraits<typename T::value_type>::minWireSize;
|
|
804
|
+
static const bool fixedLength = StreamableTraits<typename T::value_type>::fixedLength;
|
|
805
|
+
|
|
806
|
+
// The optional type of a sequence depends on whether or not elements are fixed
|
|
807
|
+
// or variable size elements and their size.
|
|
808
|
+
static const OptionalFormat optionalFormat = StreamOptionalContainerHelper<P, fixedLength, size>::optionalFormat;
|
|
809
|
+
|
|
810
|
+
template<class S> static inline void
|
|
811
|
+
write(S* stream, const P& v)
|
|
812
|
+
{
|
|
813
|
+
Int n = static_cast<Int>(v.second - v.first);
|
|
814
|
+
StreamOptionalContainerHelper<P, fixedLength, size>::write(stream, v, n);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
template<class S> static inline void
|
|
818
|
+
read(S* stream, P& v)
|
|
819
|
+
{
|
|
820
|
+
StreamOptionalContainerHelper<P, fixedLength, size>::read(stream, v);
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
|
|
824
|
+
template<typename T>
|
|
825
|
+
struct StreamOptionalHelper<std::pair<IceUtil::ScopedArray<T>, std::pair<const T*, const T*> >,
|
|
826
|
+
StreamHelperCategorySequence, false>
|
|
827
|
+
{
|
|
828
|
+
typedef std::pair<IceUtil::ScopedArray<T>, std::pair<const T*, const T*> > P;
|
|
829
|
+
static const int size = StreamableTraits<T>::minWireSize;
|
|
830
|
+
static const bool fixedLength = StreamableTraits<T>::fixedLength;
|
|
831
|
+
|
|
832
|
+
// The optional type of a sequence depends on whether or not elements are fixed
|
|
833
|
+
// or variable size elements and their size.
|
|
834
|
+
static const OptionalFormat optionalFormat = StreamOptionalContainerHelper<P, fixedLength, size>::optionalFormat;
|
|
835
|
+
|
|
836
|
+
template<class S> static inline void
|
|
837
|
+
read(S* stream, P& v)
|
|
838
|
+
{
|
|
839
|
+
StreamOptionalContainerHelper<P, fixedLength, size>::read(stream, v);
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
// no write: only used for unmarshaling
|
|
843
|
+
};
|
|
844
|
+
|
|
845
|
+
//
|
|
846
|
+
// Helper to write dictionaries, delegates to the optional container
|
|
847
|
+
// helper template partial specializations.
|
|
848
|
+
//
|
|
849
|
+
template<typename T>
|
|
850
|
+
struct StreamOptionalHelper<T, StreamHelperCategoryDictionary, false>
|
|
851
|
+
{
|
|
852
|
+
typedef typename T::key_type K;
|
|
853
|
+
typedef typename T::mapped_type V;
|
|
854
|
+
|
|
855
|
+
static const int size = StreamableTraits<K>::minWireSize + StreamableTraits<V>::minWireSize;
|
|
856
|
+
static const bool fixedLength = StreamableTraits<K>::fixedLength && StreamableTraits<V>::fixedLength;
|
|
857
|
+
|
|
858
|
+
// The optional type of a dictionary depends on whether or not elements are fixed
|
|
859
|
+
// or variable size elements.
|
|
860
|
+
static const OptionalFormat optionalFormat = StreamOptionalContainerHelper<T, fixedLength, size>::optionalFormat;
|
|
861
|
+
|
|
862
|
+
template<class S> static inline void
|
|
863
|
+
write(S* stream, const T& v)
|
|
864
|
+
{
|
|
865
|
+
StreamOptionalContainerHelper<T, fixedLength, size>::write(stream, v, static_cast<Int>(v.size()));
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
template<class S> static inline void
|
|
869
|
+
read(S* stream, T& v)
|
|
870
|
+
{
|
|
871
|
+
StreamOptionalContainerHelper<T, fixedLength, size>::read(stream, v);
|
|
872
|
+
}
|
|
873
|
+
};
|
|
874
|
+
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
#endif
|