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,193 @@
|
|
|
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_LOCATOR_INFO_H
|
|
11
|
+
#define ICE_LOCATOR_INFO_H
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/Shared.h>
|
|
14
|
+
#include <IceUtil/Mutex.h>
|
|
15
|
+
#include <IceUtil/Monitor.h>
|
|
16
|
+
#include <IceUtil/Time.h>
|
|
17
|
+
#include <Ice/LocatorInfoF.h>
|
|
18
|
+
#include <Ice/LocatorF.h>
|
|
19
|
+
#include <Ice/ReferenceF.h>
|
|
20
|
+
#include <Ice/Identity.h>
|
|
21
|
+
#include <Ice/EndpointIF.h>
|
|
22
|
+
#include <Ice/PropertiesF.h>
|
|
23
|
+
#include <Ice/Version.h>
|
|
24
|
+
|
|
25
|
+
#include <IceUtil/UniquePtr.h>
|
|
26
|
+
|
|
27
|
+
namespace IceInternal
|
|
28
|
+
{
|
|
29
|
+
|
|
30
|
+
class LocatorManager : public IceUtil::Shared, public IceUtil::Mutex
|
|
31
|
+
{
|
|
32
|
+
public:
|
|
33
|
+
|
|
34
|
+
LocatorManager(const Ice::PropertiesPtr&);
|
|
35
|
+
|
|
36
|
+
void destroy();
|
|
37
|
+
|
|
38
|
+
//
|
|
39
|
+
// Returns locator info for a given locator. Automatically creates
|
|
40
|
+
// the locator info if it doesn't exist yet.
|
|
41
|
+
//
|
|
42
|
+
LocatorInfoPtr get(const Ice::LocatorPrx&);
|
|
43
|
+
|
|
44
|
+
private:
|
|
45
|
+
|
|
46
|
+
const bool _background;
|
|
47
|
+
|
|
48
|
+
std::map<Ice::LocatorPrx, LocatorInfoPtr> _table;
|
|
49
|
+
std::map<Ice::LocatorPrx, LocatorInfoPtr>::iterator _tableHint;
|
|
50
|
+
|
|
51
|
+
std::map<std::pair<Ice::Identity, Ice::EncodingVersion>, LocatorTablePtr> _locatorTables;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
class LocatorTable : public IceUtil::Shared, public IceUtil::Mutex
|
|
55
|
+
{
|
|
56
|
+
public:
|
|
57
|
+
|
|
58
|
+
LocatorTable();
|
|
59
|
+
|
|
60
|
+
void clear();
|
|
61
|
+
|
|
62
|
+
bool getAdapterEndpoints(const std::string&, int, ::std::vector<EndpointIPtr>&);
|
|
63
|
+
void addAdapterEndpoints(const std::string&, const ::std::vector<EndpointIPtr>&);
|
|
64
|
+
::std::vector<EndpointIPtr> removeAdapterEndpoints(const std::string&);
|
|
65
|
+
|
|
66
|
+
bool getObjectReference(const Ice::Identity&, int, ReferencePtr&);
|
|
67
|
+
void addObjectReference(const Ice::Identity&, const ReferencePtr&);
|
|
68
|
+
ReferencePtr removeObjectReference(const Ice::Identity&);
|
|
69
|
+
|
|
70
|
+
private:
|
|
71
|
+
|
|
72
|
+
bool checkTTL(const IceUtil::Time&, int) const;
|
|
73
|
+
|
|
74
|
+
std::map<std::string, std::pair<IceUtil::Time, std::vector<EndpointIPtr> > > _adapterEndpointsMap;
|
|
75
|
+
std::map<Ice::Identity, std::pair<IceUtil::Time, ReferencePtr> > _objectMap;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
class LocatorInfo : public IceUtil::Shared, public IceUtil::Mutex
|
|
79
|
+
{
|
|
80
|
+
public:
|
|
81
|
+
|
|
82
|
+
class GetEndpointsCallback : virtual public IceUtil::Shared
|
|
83
|
+
{
|
|
84
|
+
public:
|
|
85
|
+
|
|
86
|
+
virtual void setEndpoints(const std::vector<EndpointIPtr>&, bool) = 0;
|
|
87
|
+
virtual void setException(const Ice::LocalException&) = 0;
|
|
88
|
+
};
|
|
89
|
+
typedef IceUtil::Handle<GetEndpointsCallback> GetEndpointsCallbackPtr;
|
|
90
|
+
|
|
91
|
+
class RequestCallback : virtual public IceUtil::Shared
|
|
92
|
+
{
|
|
93
|
+
public:
|
|
94
|
+
|
|
95
|
+
RequestCallback(const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
|
|
96
|
+
|
|
97
|
+
void response(const LocatorInfoPtr&, const Ice::ObjectPrx&);
|
|
98
|
+
void exception(const LocatorInfoPtr&, const Ice::Exception&);
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
|
|
102
|
+
const ReferencePtr _ref;
|
|
103
|
+
const int _ttl;
|
|
104
|
+
const GetEndpointsCallbackPtr _callback;
|
|
105
|
+
};
|
|
106
|
+
typedef IceUtil::Handle<RequestCallback> RequestCallbackPtr;
|
|
107
|
+
|
|
108
|
+
class Request : virtual public IceUtil::Shared
|
|
109
|
+
{
|
|
110
|
+
public:
|
|
111
|
+
|
|
112
|
+
void addCallback(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
|
|
113
|
+
std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
|
|
114
|
+
|
|
115
|
+
void response(const Ice::ObjectPrx&);
|
|
116
|
+
void exception(const Ice::Exception&);
|
|
117
|
+
|
|
118
|
+
protected:
|
|
119
|
+
|
|
120
|
+
Request(const LocatorInfoPtr&, const ReferencePtr&);
|
|
121
|
+
|
|
122
|
+
virtual void send() = 0;
|
|
123
|
+
|
|
124
|
+
const LocatorInfoPtr _locatorInfo;
|
|
125
|
+
const ReferencePtr _ref;
|
|
126
|
+
|
|
127
|
+
private:
|
|
128
|
+
|
|
129
|
+
IceUtil::Monitor<IceUtil::Mutex> _monitor;
|
|
130
|
+
std::vector<RequestCallbackPtr> _callbacks;
|
|
131
|
+
std::vector<ReferencePtr> _wellKnownRefs;
|
|
132
|
+
bool _sent;
|
|
133
|
+
bool _response;
|
|
134
|
+
Ice::ObjectPrx _proxy;
|
|
135
|
+
IceUtil::UniquePtr<Ice::Exception> _exception;
|
|
136
|
+
};
|
|
137
|
+
typedef IceUtil::Handle<Request> RequestPtr;
|
|
138
|
+
|
|
139
|
+
LocatorInfo(const Ice::LocatorPrx&, const LocatorTablePtr&, bool);
|
|
140
|
+
|
|
141
|
+
void destroy();
|
|
142
|
+
|
|
143
|
+
bool operator==(const LocatorInfo&) const;
|
|
144
|
+
bool operator!=(const LocatorInfo&) const;
|
|
145
|
+
bool operator<(const LocatorInfo&) const;
|
|
146
|
+
|
|
147
|
+
const Ice::LocatorPrx& getLocator() const
|
|
148
|
+
{
|
|
149
|
+
//
|
|
150
|
+
// No mutex lock necessary, _locator is immutable.
|
|
151
|
+
//
|
|
152
|
+
return _locator;
|
|
153
|
+
}
|
|
154
|
+
Ice::LocatorRegistryPrx getLocatorRegistry();
|
|
155
|
+
|
|
156
|
+
std::vector<EndpointIPtr> getEndpoints(const ReferencePtr& ref, int ttl, bool& cached)
|
|
157
|
+
{
|
|
158
|
+
return getEndpoints(ref, 0, ttl, cached);
|
|
159
|
+
}
|
|
160
|
+
void getEndpoints(const ReferencePtr& ref, int ttl, const GetEndpointsCallbackPtr& cb)
|
|
161
|
+
{
|
|
162
|
+
getEndpoints(ref, 0, ttl, cb);
|
|
163
|
+
}
|
|
164
|
+
std::vector<EndpointIPtr> getEndpoints(const ReferencePtr&, const ReferencePtr&, int, bool&);
|
|
165
|
+
void getEndpoints(const ReferencePtr&, const ReferencePtr&, int, const GetEndpointsCallbackPtr&);
|
|
166
|
+
|
|
167
|
+
void clearCache(const ReferencePtr&);
|
|
168
|
+
|
|
169
|
+
private:
|
|
170
|
+
|
|
171
|
+
void getEndpointsException(const ReferencePtr&, const Ice::Exception&);
|
|
172
|
+
void getEndpointsTrace(const ReferencePtr&, const std::vector<EndpointIPtr>&, bool);
|
|
173
|
+
void trace(const std::string&, const ReferencePtr&, const std::vector<EndpointIPtr>&);
|
|
174
|
+
|
|
175
|
+
RequestPtr getAdapterRequest(const ReferencePtr&);
|
|
176
|
+
RequestPtr getObjectRequest(const ReferencePtr&);
|
|
177
|
+
|
|
178
|
+
void finishRequest(const ReferencePtr&, const std::vector<ReferencePtr>&, const Ice::ObjectPrx&, bool);
|
|
179
|
+
friend class Request;
|
|
180
|
+
friend class RequestCallback;
|
|
181
|
+
|
|
182
|
+
const Ice::LocatorPrx _locator;
|
|
183
|
+
Ice::LocatorRegistryPrx _locatorRegistry;
|
|
184
|
+
const LocatorTablePtr _table;
|
|
185
|
+
const bool _background;
|
|
186
|
+
|
|
187
|
+
std::map<std::string, RequestPtr> _adapterRequests;
|
|
188
|
+
std::map<Ice::Identity, RequestPtr> _objectRequests;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
#endif
|
|
@@ -0,0 +1,34 @@
|
|
|
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_LOCATOR_INFO_F_H
|
|
11
|
+
#define ICE_LOCATOR_INFO_F_H
|
|
12
|
+
|
|
13
|
+
#include <IceUtil/Shared.h>
|
|
14
|
+
|
|
15
|
+
#include <Ice/Handle.h>
|
|
16
|
+
|
|
17
|
+
namespace IceInternal
|
|
18
|
+
{
|
|
19
|
+
|
|
20
|
+
class LocatorManager;
|
|
21
|
+
IceUtil::Shared* upCast(LocatorManager*);
|
|
22
|
+
typedef Handle<LocatorManager> LocatorManagerPtr;
|
|
23
|
+
|
|
24
|
+
class LocatorInfo;
|
|
25
|
+
IceUtil::Shared* upCast(LocatorInfo*);
|
|
26
|
+
typedef Handle<LocatorInfo> LocatorInfoPtr;
|
|
27
|
+
|
|
28
|
+
class LocatorTable;
|
|
29
|
+
IceUtil::Shared* upCast(LocatorTable*);
|
|
30
|
+
typedef Handle<LocatorTable> LocatorTablePtr;
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#endif
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
// Ice version 3.6b
|
|
11
|
+
//
|
|
12
|
+
// <auto-generated>
|
|
13
|
+
//
|
|
14
|
+
// Generated from file `Logger.ice'
|
|
15
|
+
//
|
|
16
|
+
// Warning: do not edit this file.
|
|
17
|
+
//
|
|
18
|
+
// </auto-generated>
|
|
19
|
+
//
|
|
20
|
+
|
|
21
|
+
#ifndef ICE_API_EXPORTS
|
|
22
|
+
# define ICE_API_EXPORTS
|
|
23
|
+
#endif
|
|
24
|
+
#include <Ice/Logger.h>
|
|
25
|
+
#include <IceUtil/PushDisableWarnings.h>
|
|
26
|
+
#include <IceUtil/Iterator.h>
|
|
27
|
+
#include <IceUtil/PopDisableWarnings.h>
|
|
28
|
+
|
|
29
|
+
#ifndef ICE_IGNORE_VERSION
|
|
30
|
+
# if ICE_INT_VERSION != 30651
|
|
31
|
+
# error Ice version mismatch: an exact match is required for beta generated code
|
|
32
|
+
# endif
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
namespace
|
|
36
|
+
{
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
ICE_DECLSPEC_EXPORT ::Ice::LocalObject* Ice::upCast(::Ice::Logger* p) { return p; }
|
|
@@ -0,0 +1,862 @@
|
|
|
1
|
+
// **********************************************************************
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This copy of Ice is licensed to you under the terms described in the
|
|
6
|
+
// ICE_LICENSE file included in this distribution.
|
|
7
|
+
//
|
|
8
|
+
// **********************************************************************
|
|
9
|
+
|
|
10
|
+
#include <Ice/LoggerAdminI.h>
|
|
11
|
+
#include <Ice/Initialize.h>
|
|
12
|
+
#include <Ice/Communicator.h>
|
|
13
|
+
#include <Ice/RemoteLogger.h>
|
|
14
|
+
#include <Ice/Properties.h>
|
|
15
|
+
#include <Ice/ObjectAdapter.h>
|
|
16
|
+
#include <Ice/Connection.h>
|
|
17
|
+
#include <Ice/LocalException.h>
|
|
18
|
+
#include <Ice/LoggerUtil.h>
|
|
19
|
+
|
|
20
|
+
#include <set>
|
|
21
|
+
|
|
22
|
+
using namespace Ice;
|
|
23
|
+
using namespace std;
|
|
24
|
+
|
|
25
|
+
namespace
|
|
26
|
+
{
|
|
27
|
+
|
|
28
|
+
const char* traceCategory = "Admin.Logger";
|
|
29
|
+
|
|
30
|
+
class LoggerAdminI : public Ice::LoggerAdmin
|
|
31
|
+
{
|
|
32
|
+
public:
|
|
33
|
+
|
|
34
|
+
LoggerAdminI(const PropertiesPtr&);
|
|
35
|
+
|
|
36
|
+
virtual void attachRemoteLogger(const RemoteLoggerPrx&, const LogMessageTypeSeq&,
|
|
37
|
+
const StringSeq&, Int, const Current&);
|
|
38
|
+
|
|
39
|
+
virtual bool detachRemoteLogger(const RemoteLoggerPrx&, const Current&);
|
|
40
|
+
|
|
41
|
+
virtual LogMessageSeq getLog(const LogMessageTypeSeq&, const StringSeq&, Int, string&, const Current&);
|
|
42
|
+
|
|
43
|
+
void destroy();
|
|
44
|
+
|
|
45
|
+
vector<RemoteLoggerPrx> log(const LogMessage&);
|
|
46
|
+
|
|
47
|
+
void deadRemoteLogger(const RemoteLoggerPrx&, const LoggerPtr&, const LocalException&, const string&);
|
|
48
|
+
|
|
49
|
+
const int getTraceLevel() const
|
|
50
|
+
{
|
|
51
|
+
return _traceLevel;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
private:
|
|
55
|
+
|
|
56
|
+
bool removeRemoteLogger(const RemoteLoggerPrx&);
|
|
57
|
+
|
|
58
|
+
void initCompleted(const AsyncResultPtr&);
|
|
59
|
+
|
|
60
|
+
IceUtil::Mutex _mutex;
|
|
61
|
+
list<LogMessage> _queue;
|
|
62
|
+
int _logCount; // non-trace messages
|
|
63
|
+
const int _maxLogCount;
|
|
64
|
+
int _traceCount;
|
|
65
|
+
const int _maxTraceCount;
|
|
66
|
+
const int _traceLevel;
|
|
67
|
+
|
|
68
|
+
list<LogMessage>::iterator _oldestTrace;
|
|
69
|
+
list<LogMessage>::iterator _oldestLog;
|
|
70
|
+
|
|
71
|
+
struct ObjectIdentityCompare
|
|
72
|
+
{
|
|
73
|
+
bool operator()(const RemoteLoggerPrx& lhs, const RemoteLoggerPrx& rhs) const
|
|
74
|
+
{
|
|
75
|
+
//
|
|
76
|
+
// Caller should make sure that proxies are never null
|
|
77
|
+
//
|
|
78
|
+
assert(lhs != 0 && rhs != 0);
|
|
79
|
+
|
|
80
|
+
return lhs->ice_getIdentity() < rhs->ice_getIdentity();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
struct Filters
|
|
85
|
+
{
|
|
86
|
+
Filters(const LogMessageTypeSeq& m, const StringSeq& c) :
|
|
87
|
+
messageTypes(m.begin(), m.end()),
|
|
88
|
+
traceCategories(c.begin(), c.end())
|
|
89
|
+
{
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const set<LogMessageType> messageTypes;
|
|
93
|
+
const set<string> traceCategories;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
typedef map<RemoteLoggerPrx, Filters, ObjectIdentityCompare> RemoteLoggerMap;
|
|
97
|
+
|
|
98
|
+
struct GetRemoteLoggerMapKey
|
|
99
|
+
{
|
|
100
|
+
RemoteLoggerMap::key_type
|
|
101
|
+
operator()(const RemoteLoggerMap::value_type& val)
|
|
102
|
+
{
|
|
103
|
+
return val.first;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
RemoteLoggerMap _remoteLoggerMap;
|
|
108
|
+
CommunicatorPtr _sendLogCommunicator;
|
|
109
|
+
bool _destroyed;
|
|
110
|
+
};
|
|
111
|
+
typedef IceUtil::Handle<LoggerAdminI> LoggerAdminIPtr;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class Job : public IceUtil::Shared
|
|
115
|
+
{
|
|
116
|
+
public:
|
|
117
|
+
|
|
118
|
+
Job(const vector<RemoteLoggerPrx>& r, const LogMessage& l) :
|
|
119
|
+
remoteLoggers(r),
|
|
120
|
+
logMessage(l)
|
|
121
|
+
{
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const vector<RemoteLoggerPrx> remoteLoggers;
|
|
125
|
+
const LogMessage logMessage;
|
|
126
|
+
};
|
|
127
|
+
typedef IceUtil::Handle<Job> JobPtr;
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class LoggerAdminLoggerI : public IceInternal::LoggerAdminLogger
|
|
131
|
+
{
|
|
132
|
+
public:
|
|
133
|
+
|
|
134
|
+
LoggerAdminLoggerI(const PropertiesPtr&, const LoggerPtr&);
|
|
135
|
+
|
|
136
|
+
virtual void print(const std::string&);
|
|
137
|
+
virtual void trace(const std::string&, const std::string&);
|
|
138
|
+
virtual void warning(const std::string&);
|
|
139
|
+
virtual void error(const std::string&);
|
|
140
|
+
virtual std::string getPrefix();
|
|
141
|
+
virtual LoggerPtr cloneWithPrefix(const std::string&);
|
|
142
|
+
|
|
143
|
+
virtual ObjectPtr getFacet() const;
|
|
144
|
+
|
|
145
|
+
virtual void destroy();
|
|
146
|
+
|
|
147
|
+
const LoggerPtr& getLocalLogger() const
|
|
148
|
+
{
|
|
149
|
+
return _localLogger;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
void run();
|
|
153
|
+
|
|
154
|
+
private:
|
|
155
|
+
|
|
156
|
+
void log(const LogMessage&);
|
|
157
|
+
|
|
158
|
+
void logCompleted(const AsyncResultPtr&);
|
|
159
|
+
|
|
160
|
+
LoggerPtr _localLogger;
|
|
161
|
+
const LoggerAdminIPtr _loggerAdmin;
|
|
162
|
+
|
|
163
|
+
IceUtil::Monitor<IceUtil::Mutex> _monitor;
|
|
164
|
+
|
|
165
|
+
bool _destroyed;
|
|
166
|
+
IceUtil::ThreadPtr _sendLogThread;
|
|
167
|
+
std::deque<JobPtr> _jobQueue;
|
|
168
|
+
};
|
|
169
|
+
typedef IceUtil::Handle<LoggerAdminLoggerI> LoggerAdminLoggerIPtr;
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class SendLogThread : public IceUtil::Thread
|
|
173
|
+
{
|
|
174
|
+
public:
|
|
175
|
+
|
|
176
|
+
SendLogThread(const LoggerAdminLoggerIPtr&);
|
|
177
|
+
|
|
178
|
+
virtual void run();
|
|
179
|
+
|
|
180
|
+
private:
|
|
181
|
+
|
|
182
|
+
LoggerAdminLoggerIPtr _logger;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
//
|
|
187
|
+
// Helper functions
|
|
188
|
+
//
|
|
189
|
+
|
|
190
|
+
//
|
|
191
|
+
// Filter out messages from in/out logMessages list
|
|
192
|
+
//
|
|
193
|
+
void
|
|
194
|
+
filterLogMessages(LogMessageSeq& logMessages, const set<LogMessageType>& messageTypes,
|
|
195
|
+
const set<string>& traceCategories, Int messageMax)
|
|
196
|
+
{
|
|
197
|
+
assert(!logMessages.empty() && messageMax != 0);
|
|
198
|
+
|
|
199
|
+
//
|
|
200
|
+
// Filter only if one of the 3 filters is set; messageMax < 0 means "give me all"
|
|
201
|
+
// that match the other filters, if any.
|
|
202
|
+
//
|
|
203
|
+
if(!messageTypes.empty() || !traceCategories.empty() || messageMax > 0)
|
|
204
|
+
{
|
|
205
|
+
int count = 0;
|
|
206
|
+
LogMessageSeq::reverse_iterator p = logMessages.rbegin();
|
|
207
|
+
while(p != logMessages.rend())
|
|
208
|
+
{
|
|
209
|
+
bool keepIt = false;
|
|
210
|
+
if(messageTypes.empty() || messageTypes.count(p->type) != 0)
|
|
211
|
+
{
|
|
212
|
+
if(p->type != TraceMessage || traceCategories.empty() ||
|
|
213
|
+
traceCategories.count(p->traceCategory) != 0)
|
|
214
|
+
{
|
|
215
|
+
keepIt = true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if(keepIt)
|
|
220
|
+
{
|
|
221
|
+
++p;
|
|
222
|
+
++count;
|
|
223
|
+
if(messageMax > 0 && count >= messageMax)
|
|
224
|
+
{
|
|
225
|
+
//
|
|
226
|
+
// p.base() points to p "+1"; note that this invalidates p.
|
|
227
|
+
//
|
|
228
|
+
logMessages.erase(logMessages.begin(), p.base());
|
|
229
|
+
break; // while
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else
|
|
233
|
+
{
|
|
234
|
+
++p;
|
|
235
|
+
//
|
|
236
|
+
// p.base() points to p "+1"; the erase invalidates p so we
|
|
237
|
+
// need to rebuild it
|
|
238
|
+
//
|
|
239
|
+
p = LogMessageSeq::reverse_iterator(logMessages.erase(p.base()));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// else, don't need any filtering
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
//
|
|
247
|
+
// Change this proxy's communicator, while keeping its invocation timeout
|
|
248
|
+
//
|
|
249
|
+
RemoteLoggerPrx
|
|
250
|
+
changeCommunicator(const RemoteLoggerPrx& prx, const CommunicatorPtr& communicator)
|
|
251
|
+
{
|
|
252
|
+
if(prx == 0)
|
|
253
|
+
{
|
|
254
|
+
return 0;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
RemoteLoggerPrx result = RemoteLoggerPrx::uncheckedCast(communicator->stringToProxy(prx->ice_toString()));
|
|
258
|
+
|
|
259
|
+
return result->ice_invocationTimeout(prx->ice_getInvocationTimeout());
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
//
|
|
263
|
+
// Copies a set of properties
|
|
264
|
+
//
|
|
265
|
+
void
|
|
266
|
+
copyProperties(const string& prefix, const PropertiesPtr& from, const PropertiesPtr& to)
|
|
267
|
+
{
|
|
268
|
+
PropertyDict dict = from->getPropertiesForPrefix(prefix);
|
|
269
|
+
for(PropertyDict::const_iterator p = dict.begin(); p != dict.end(); ++p)
|
|
270
|
+
{
|
|
271
|
+
to->setProperty(p->first, p->second);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
//
|
|
276
|
+
// Create communicator used to send logs
|
|
277
|
+
//
|
|
278
|
+
CommunicatorPtr
|
|
279
|
+
createSendLogCommunicator(const CommunicatorPtr& communicator, const LoggerPtr& logger)
|
|
280
|
+
{
|
|
281
|
+
InitializationData initData;
|
|
282
|
+
initData.logger = logger;
|
|
283
|
+
initData.properties = createProperties();
|
|
284
|
+
|
|
285
|
+
PropertiesPtr mainProps = communicator->getProperties();
|
|
286
|
+
|
|
287
|
+
copyProperties("Ice.Default.Locator", mainProps, initData.properties);
|
|
288
|
+
copyProperties("Ice.Plugin.IceSSL", mainProps, initData.properties);
|
|
289
|
+
copyProperties("IceSSL.", mainProps, initData.properties);
|
|
290
|
+
|
|
291
|
+
StringSeq extraProps = mainProps->getPropertyAsList("Ice.Admin.Logger.Properties");
|
|
292
|
+
|
|
293
|
+
if(!extraProps.empty())
|
|
294
|
+
{
|
|
295
|
+
for(vector<string>::iterator p = extraProps.begin(); p != extraProps.end(); ++p)
|
|
296
|
+
{
|
|
297
|
+
if(p->find("--") != 0)
|
|
298
|
+
{
|
|
299
|
+
*p = "--" + *p;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
initData.properties->parseCommandLineOptions("", extraProps);
|
|
303
|
+
}
|
|
304
|
+
return initialize(initData);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
//
|
|
308
|
+
// LoggerAdminI
|
|
309
|
+
//
|
|
310
|
+
|
|
311
|
+
LoggerAdminI::LoggerAdminI(const PropertiesPtr& props) :
|
|
312
|
+
_logCount(0),
|
|
313
|
+
_maxLogCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepLogs", 100)),
|
|
314
|
+
_traceCount(0),
|
|
315
|
+
_maxTraceCount(props->getPropertyAsIntWithDefault("Ice.Admin.Logger.KeepTraces", 100)),
|
|
316
|
+
_traceLevel(props->getPropertyAsInt("Ice.Trace.Admin.Logger")),
|
|
317
|
+
_destroyed(false)
|
|
318
|
+
{
|
|
319
|
+
_oldestLog = _queue.end();
|
|
320
|
+
_oldestTrace = _queue.end();
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
void
|
|
324
|
+
LoggerAdminI::attachRemoteLogger(const RemoteLoggerPrx& prx,
|
|
325
|
+
const LogMessageTypeSeq& messageTypes,
|
|
326
|
+
const StringSeq& categories,
|
|
327
|
+
Int messageMax,
|
|
328
|
+
const Current& current)
|
|
329
|
+
{
|
|
330
|
+
if(!prx)
|
|
331
|
+
{
|
|
332
|
+
return; // can't send this null RemoteLogger anything!
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
//
|
|
336
|
+
// In C++, LoggerAdminI does not keep a "logger" data member to avoid a hard-to-break circular
|
|
337
|
+
// reference, so we retrieve the logger from Current
|
|
338
|
+
//
|
|
339
|
+
|
|
340
|
+
LoggerAdminLoggerIPtr logger = LoggerAdminLoggerIPtr::dynamicCast(current.adapter->getCommunicator()->getLogger());
|
|
341
|
+
if(!logger)
|
|
342
|
+
{
|
|
343
|
+
// Our logger is not installed - must be a bug
|
|
344
|
+
assert(0);
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
RemoteLoggerPrx remoteLogger = prx->ice_twoway();
|
|
349
|
+
|
|
350
|
+
Filters filters(messageTypes, categories);
|
|
351
|
+
LogMessageSeq initLogMessages;
|
|
352
|
+
{
|
|
353
|
+
IceUtil::Mutex::Lock lock(_mutex);
|
|
354
|
+
|
|
355
|
+
if(!_sendLogCommunicator)
|
|
356
|
+
{
|
|
357
|
+
if(_destroyed)
|
|
358
|
+
{
|
|
359
|
+
throw Ice::ObjectNotExistException(__FILE__, __LINE__);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
_sendLogCommunicator =
|
|
363
|
+
createSendLogCommunicator(current.adapter->getCommunicator(), logger->getLocalLogger());
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
if(!_remoteLoggerMap.insert(make_pair(changeCommunicator(remoteLogger, _sendLogCommunicator), filters)).second)
|
|
367
|
+
{
|
|
368
|
+
if(_traceLevel > 0)
|
|
369
|
+
{
|
|
370
|
+
Trace trace(logger, traceCategory);
|
|
371
|
+
trace << "rejecting `" << remoteLogger << "' with RemoteLoggerAlreadyAttachedException";
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
throw RemoteLoggerAlreadyAttachedException();
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
if(messageMax != 0)
|
|
378
|
+
{
|
|
379
|
+
initLogMessages = _queue; // copy
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
if(_traceLevel > 0)
|
|
384
|
+
{
|
|
385
|
+
Trace trace(logger, traceCategory);
|
|
386
|
+
trace << "attached `" << remoteLogger << "'";
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
if(!initLogMessages.empty())
|
|
390
|
+
{
|
|
391
|
+
filterLogMessages(initLogMessages, filters.messageTypes, filters.traceCategories, messageMax);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
CallbackPtr initCompletedCb = newCallback(this, &LoggerAdminI::initCompleted);
|
|
395
|
+
|
|
396
|
+
try
|
|
397
|
+
{
|
|
398
|
+
remoteLogger->begin_init(logger->getPrefix(), initLogMessages, initCompletedCb, logger);
|
|
399
|
+
}
|
|
400
|
+
catch(const LocalException& ex)
|
|
401
|
+
{
|
|
402
|
+
deadRemoteLogger(remoteLogger, logger, ex, "init");
|
|
403
|
+
throw;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
bool
|
|
408
|
+
LoggerAdminI::detachRemoteLogger(const RemoteLoggerPrx& remoteLogger, const Current& current)
|
|
409
|
+
{
|
|
410
|
+
if(remoteLogger == 0)
|
|
411
|
+
{
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
//
|
|
416
|
+
// No need to convert the proxy as we only use its identity
|
|
417
|
+
//
|
|
418
|
+
bool found = removeRemoteLogger(remoteLogger);
|
|
419
|
+
|
|
420
|
+
if(_traceLevel > 0)
|
|
421
|
+
{
|
|
422
|
+
Trace trace(current.adapter->getCommunicator()->getLogger(), traceCategory);
|
|
423
|
+
if(found)
|
|
424
|
+
{
|
|
425
|
+
trace << "detached `" << remoteLogger << "'";
|
|
426
|
+
}
|
|
427
|
+
else
|
|
428
|
+
{
|
|
429
|
+
trace << "cannot detach `" << remoteLogger << "': not found";
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
return found;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
LogMessageSeq
|
|
437
|
+
LoggerAdminI::getLog(const LogMessageTypeSeq& messageTypes, const StringSeq& categories,
|
|
438
|
+
Int messageMax, string& prefix, const Current& current)
|
|
439
|
+
{
|
|
440
|
+
LogMessageSeq logMessages;
|
|
441
|
+
{
|
|
442
|
+
IceUtil::Mutex::Lock lock(_mutex);
|
|
443
|
+
|
|
444
|
+
if(messageMax != 0)
|
|
445
|
+
{
|
|
446
|
+
logMessages = _queue;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
LoggerPtr logger = current.adapter->getCommunicator()->getLogger();
|
|
451
|
+
prefix = logger->getPrefix();
|
|
452
|
+
|
|
453
|
+
if(!logMessages.empty())
|
|
454
|
+
{
|
|
455
|
+
Filters filters(messageTypes, categories);
|
|
456
|
+
filterLogMessages(logMessages, filters.messageTypes, filters.traceCategories, messageMax);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
return logMessages;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
void
|
|
463
|
+
LoggerAdminI::destroy()
|
|
464
|
+
{
|
|
465
|
+
CommunicatorPtr sendLogCommunicator;
|
|
466
|
+
{
|
|
467
|
+
IceUtil::Mutex::Lock lock(_mutex);
|
|
468
|
+
if(!_destroyed)
|
|
469
|
+
{
|
|
470
|
+
_destroyed = true;
|
|
471
|
+
sendLogCommunicator = _sendLogCommunicator;
|
|
472
|
+
_sendLogCommunicator = 0;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
//
|
|
477
|
+
// Destroy outside lock to avoid deadlock when there are outstanding two-way log calls sent to
|
|
478
|
+
// remote logggers
|
|
479
|
+
//
|
|
480
|
+
if(sendLogCommunicator)
|
|
481
|
+
{
|
|
482
|
+
sendLogCommunicator->destroy();
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
vector<RemoteLoggerPrx>
|
|
487
|
+
LoggerAdminI::log(const LogMessage& logMessage)
|
|
488
|
+
{
|
|
489
|
+
vector<RemoteLoggerPrx> remoteLoggers;
|
|
490
|
+
|
|
491
|
+
IceUtil::Mutex::Lock lock(_mutex);
|
|
492
|
+
|
|
493
|
+
//
|
|
494
|
+
// Put message in _queue
|
|
495
|
+
//
|
|
496
|
+
if((logMessage.type != TraceMessage && _maxLogCount > 0) ||
|
|
497
|
+
(logMessage.type == TraceMessage && _maxTraceCount > 0))
|
|
498
|
+
{
|
|
499
|
+
list<LogMessage>::iterator p = _queue.insert(_queue.end(), logMessage);
|
|
500
|
+
|
|
501
|
+
if(logMessage.type != TraceMessage)
|
|
502
|
+
{
|
|
503
|
+
assert(_maxLogCount > 0);
|
|
504
|
+
if(_logCount == _maxLogCount)
|
|
505
|
+
{
|
|
506
|
+
//
|
|
507
|
+
// Need to remove the oldest log from the queue
|
|
508
|
+
//
|
|
509
|
+
assert(_oldestLog != _queue.end());
|
|
510
|
+
_oldestLog = _queue.erase(_oldestLog);
|
|
511
|
+
while(_oldestLog != _queue.end() && _oldestLog->type == TraceMessage)
|
|
512
|
+
{
|
|
513
|
+
_oldestLog++;
|
|
514
|
+
}
|
|
515
|
+
assert(_oldestLog != _queue.end());
|
|
516
|
+
}
|
|
517
|
+
else
|
|
518
|
+
{
|
|
519
|
+
assert(_logCount < _maxLogCount);
|
|
520
|
+
_logCount++;
|
|
521
|
+
if(_oldestLog == _queue.end())
|
|
522
|
+
{
|
|
523
|
+
_oldestLog = p;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
else
|
|
528
|
+
{
|
|
529
|
+
assert(_maxTraceCount > 0);
|
|
530
|
+
if(_traceCount == _maxTraceCount)
|
|
531
|
+
{
|
|
532
|
+
//
|
|
533
|
+
// Need to remove the oldest trace from the queue
|
|
534
|
+
//
|
|
535
|
+
assert(_oldestTrace != _queue.end());
|
|
536
|
+
_oldestTrace = _queue.erase(_oldestTrace);
|
|
537
|
+
while(_oldestTrace != _queue.end() && _oldestTrace->type != TraceMessage)
|
|
538
|
+
{
|
|
539
|
+
_oldestTrace++;
|
|
540
|
+
}
|
|
541
|
+
assert(_oldestTrace != _queue.end());
|
|
542
|
+
}
|
|
543
|
+
else
|
|
544
|
+
{
|
|
545
|
+
assert(_traceCount < _maxTraceCount);
|
|
546
|
+
_traceCount++;
|
|
547
|
+
if(_oldestTrace == _queue.end())
|
|
548
|
+
{
|
|
549
|
+
_oldestTrace = p;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
//
|
|
555
|
+
// Queue updated, now find which remote loggers want this message
|
|
556
|
+
//
|
|
557
|
+
for(RemoteLoggerMap::const_iterator p = _remoteLoggerMap.begin(); p != _remoteLoggerMap.end(); ++p)
|
|
558
|
+
{
|
|
559
|
+
const Filters& filters = p->second;
|
|
560
|
+
|
|
561
|
+
if(filters.messageTypes.empty() || filters.messageTypes.count(logMessage.type) != 0)
|
|
562
|
+
{
|
|
563
|
+
if(logMessage.type != TraceMessage || filters.traceCategories.empty() ||
|
|
564
|
+
filters.traceCategories.count(logMessage.traceCategory) != 0)
|
|
565
|
+
{
|
|
566
|
+
remoteLoggers.push_back(p->first);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
return remoteLoggers;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
void
|
|
575
|
+
LoggerAdminI::deadRemoteLogger(const RemoteLoggerPrx& remoteLogger,
|
|
576
|
+
const LoggerPtr& logger,
|
|
577
|
+
const LocalException& ex,
|
|
578
|
+
const string& operation)
|
|
579
|
+
{
|
|
580
|
+
//
|
|
581
|
+
// No need to convert remoteLogger as we only use its identity
|
|
582
|
+
//
|
|
583
|
+
if(removeRemoteLogger(remoteLogger))
|
|
584
|
+
{
|
|
585
|
+
if(_traceLevel > 0)
|
|
586
|
+
{
|
|
587
|
+
Trace trace(logger, traceCategory);
|
|
588
|
+
trace << "detached `" << remoteLogger << "' because " << operation << " raised:\n" << ex;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
bool
|
|
594
|
+
LoggerAdminI::removeRemoteLogger(const RemoteLoggerPrx& remoteLogger)
|
|
595
|
+
{
|
|
596
|
+
IceUtil::Mutex::Lock lock(_mutex);
|
|
597
|
+
return _remoteLoggerMap.erase(remoteLogger) > 0;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
void
|
|
601
|
+
LoggerAdminI::initCompleted(const AsyncResultPtr& r)
|
|
602
|
+
{
|
|
603
|
+
RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
|
|
604
|
+
|
|
605
|
+
try
|
|
606
|
+
{
|
|
607
|
+
remoteLogger->end_init(r);
|
|
608
|
+
|
|
609
|
+
if(_traceLevel > 1)
|
|
610
|
+
{
|
|
611
|
+
LoggerPtr logger = LoggerPtr::dynamicCast(r->getCookie());
|
|
612
|
+
Trace trace(logger, traceCategory);
|
|
613
|
+
trace << r->getOperation() << " on `" << remoteLogger << "' completed successfully";
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
catch(const LocalException& ex)
|
|
617
|
+
{
|
|
618
|
+
deadRemoteLogger(remoteLogger, LoggerPtr::dynamicCast(r->getCookie()), ex, r->getOperation());
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
//
|
|
623
|
+
// LoggerAdminLoggerI
|
|
624
|
+
//
|
|
625
|
+
|
|
626
|
+
LoggerAdminLoggerI::LoggerAdminLoggerI(const PropertiesPtr& props,
|
|
627
|
+
const LoggerPtr& localLogger) :
|
|
628
|
+
_loggerAdmin(new LoggerAdminI(props)),
|
|
629
|
+
_destroyed(false)
|
|
630
|
+
{
|
|
631
|
+
//
|
|
632
|
+
// There is currently no way to have a null local logger
|
|
633
|
+
//
|
|
634
|
+
assert(localLogger != 0);
|
|
635
|
+
|
|
636
|
+
LoggerAdminLoggerI* wrapper = dynamic_cast<LoggerAdminLoggerI*>(localLogger.get());
|
|
637
|
+
if(wrapper)
|
|
638
|
+
{
|
|
639
|
+
// use the underlying local logger
|
|
640
|
+
_localLogger = wrapper->getLocalLogger();
|
|
641
|
+
}
|
|
642
|
+
else
|
|
643
|
+
{
|
|
644
|
+
_localLogger = localLogger;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
void
|
|
649
|
+
LoggerAdminLoggerI::print(const string& message)
|
|
650
|
+
{
|
|
651
|
+
LogMessage logMessage = { PrintMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
|
|
652
|
+
|
|
653
|
+
_localLogger->print(message);
|
|
654
|
+
log(logMessage);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
void
|
|
658
|
+
LoggerAdminLoggerI::trace(const string& category, const string& message)
|
|
659
|
+
{
|
|
660
|
+
LogMessage logMessage = { TraceMessage, IceUtil::Time::now().toMicroSeconds(), category, message };
|
|
661
|
+
|
|
662
|
+
_localLogger->trace(category, message);
|
|
663
|
+
log(logMessage);
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
void
|
|
667
|
+
LoggerAdminLoggerI::warning(const string& message)
|
|
668
|
+
{
|
|
669
|
+
LogMessage logMessage = { WarningMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
|
|
670
|
+
|
|
671
|
+
_localLogger->warning(message);
|
|
672
|
+
log(logMessage);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
void
|
|
676
|
+
LoggerAdminLoggerI::error(const string& message)
|
|
677
|
+
{
|
|
678
|
+
LogMessage logMessage = { ErrorMessage, IceUtil::Time::now().toMicroSeconds(), "", message };
|
|
679
|
+
|
|
680
|
+
_localLogger->error(message);
|
|
681
|
+
log(logMessage);
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
string
|
|
685
|
+
LoggerAdminLoggerI::getPrefix()
|
|
686
|
+
{
|
|
687
|
+
return _localLogger->getPrefix();
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
LoggerPtr
|
|
691
|
+
LoggerAdminLoggerI::cloneWithPrefix(const string& prefix)
|
|
692
|
+
{
|
|
693
|
+
return _localLogger->cloneWithPrefix(prefix);
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
ObjectPtr
|
|
697
|
+
LoggerAdminLoggerI::getFacet() const
|
|
698
|
+
{
|
|
699
|
+
return _loggerAdmin;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
void
|
|
703
|
+
LoggerAdminLoggerI::log(const LogMessage& logMessage)
|
|
704
|
+
{
|
|
705
|
+
const vector<RemoteLoggerPrx> remoteLoggers = _loggerAdmin->log(logMessage);
|
|
706
|
+
|
|
707
|
+
if(!remoteLoggers.empty())
|
|
708
|
+
{
|
|
709
|
+
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
|
|
710
|
+
|
|
711
|
+
if(!_sendLogThread)
|
|
712
|
+
{
|
|
713
|
+
_sendLogThread = new SendLogThread(this);
|
|
714
|
+
_sendLogThread->start();
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
_jobQueue.push_back(new Job(remoteLoggers, logMessage));
|
|
718
|
+
_monitor.notifyAll();
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
void
|
|
723
|
+
LoggerAdminLoggerI::destroy()
|
|
724
|
+
{
|
|
725
|
+
IceUtil::ThreadControl sendLogThreadControl;
|
|
726
|
+
bool joinThread = false;
|
|
727
|
+
{
|
|
728
|
+
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
|
|
729
|
+
|
|
730
|
+
if(_sendLogThread)
|
|
731
|
+
{
|
|
732
|
+
joinThread = true;
|
|
733
|
+
sendLogThreadControl = _sendLogThread->getThreadControl();
|
|
734
|
+
_sendLogThread = 0;
|
|
735
|
+
_destroyed = true;
|
|
736
|
+
_monitor.notifyAll();
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
if(joinThread)
|
|
741
|
+
{
|
|
742
|
+
sendLogThreadControl.join();
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// destroy sendLogCommunicator
|
|
746
|
+
_loggerAdmin->destroy();
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
void
|
|
750
|
+
LoggerAdminLoggerI::run()
|
|
751
|
+
{
|
|
752
|
+
if(_loggerAdmin->getTraceLevel() > 1)
|
|
753
|
+
{
|
|
754
|
+
Trace trace(_localLogger, traceCategory);
|
|
755
|
+
trace << "send log thread started";
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
CallbackPtr logCompletedCb = newCallback(this, &LoggerAdminLoggerI::logCompleted);
|
|
759
|
+
|
|
760
|
+
for(;;)
|
|
761
|
+
{
|
|
762
|
+
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
|
|
763
|
+
while(!_destroyed && _jobQueue.empty())
|
|
764
|
+
{
|
|
765
|
+
_monitor.wait();
|
|
766
|
+
}
|
|
767
|
+
if(_destroyed)
|
|
768
|
+
{
|
|
769
|
+
break; // for(;;)
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
assert(!_jobQueue.empty());
|
|
773
|
+
JobPtr job = _jobQueue.front();
|
|
774
|
+
_jobQueue.pop_front();
|
|
775
|
+
lock.release();
|
|
776
|
+
|
|
777
|
+
for(vector<RemoteLoggerPrx>::const_iterator p = job->remoteLoggers.begin(); p != job->remoteLoggers.end(); ++p)
|
|
778
|
+
{
|
|
779
|
+
if(_loggerAdmin->getTraceLevel() > 1)
|
|
780
|
+
{
|
|
781
|
+
Trace trace(_localLogger, traceCategory);
|
|
782
|
+
trace << "sending log message to `" << *p << "'";
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
try
|
|
786
|
+
{
|
|
787
|
+
//
|
|
788
|
+
// *p is a proxy associated with the _sendLogCommunicator
|
|
789
|
+
//
|
|
790
|
+
(*p)->begin_log(job->logMessage, logCompletedCb);
|
|
791
|
+
}
|
|
792
|
+
catch(const LocalException& ex)
|
|
793
|
+
{
|
|
794
|
+
_loggerAdmin->deadRemoteLogger(*p, _localLogger, ex, "log");
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
if(_loggerAdmin->getTraceLevel() > 1)
|
|
800
|
+
{
|
|
801
|
+
Trace trace(_localLogger, traceCategory);
|
|
802
|
+
trace << "send log thread completed";
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
void
|
|
807
|
+
LoggerAdminLoggerI::logCompleted(const AsyncResultPtr& r)
|
|
808
|
+
{
|
|
809
|
+
RemoteLoggerPrx remoteLogger = RemoteLoggerPrx::uncheckedCast(r->getProxy());
|
|
810
|
+
|
|
811
|
+
try
|
|
812
|
+
{
|
|
813
|
+
remoteLogger->end_log(r);
|
|
814
|
+
|
|
815
|
+
if(_loggerAdmin->getTraceLevel() > 1)
|
|
816
|
+
{
|
|
817
|
+
Trace trace(_localLogger, traceCategory);
|
|
818
|
+
trace << r->getOperation() << " on `" << remoteLogger << "' completed successfully";
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
catch(const CommunicatorDestroyedException&)
|
|
822
|
+
{
|
|
823
|
+
// expected if there are outstanding calls during communicator destruction
|
|
824
|
+
}
|
|
825
|
+
catch(const LocalException& ex)
|
|
826
|
+
{
|
|
827
|
+
_loggerAdmin->deadRemoteLogger(remoteLogger, _localLogger, ex, r->getOperation());
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
//
|
|
832
|
+
// SendLogThread
|
|
833
|
+
//
|
|
834
|
+
|
|
835
|
+
SendLogThread::SendLogThread(const LoggerAdminLoggerIPtr& logger) :
|
|
836
|
+
IceUtil::Thread("Ice.SendLogThread"),
|
|
837
|
+
_logger(logger)
|
|
838
|
+
{
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
void
|
|
842
|
+
SendLogThread::run()
|
|
843
|
+
{
|
|
844
|
+
_logger->run();
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
//
|
|
849
|
+
// createLoggerAdminLogger
|
|
850
|
+
//
|
|
851
|
+
|
|
852
|
+
namespace IceInternal
|
|
853
|
+
{
|
|
854
|
+
|
|
855
|
+
LoggerAdminLoggerPtr
|
|
856
|
+
createLoggerAdminLogger(const PropertiesPtr& props,
|
|
857
|
+
const LoggerPtr& localLogger)
|
|
858
|
+
{
|
|
859
|
+
return new LoggerAdminLoggerI(props, localLogger);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
}
|