diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-07-08 13:47:30 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-07-08 13:47:30 +0000 |
commit | 99894938dbde9a0bb10fc1998d9863cae52b8977 (patch) | |
tree | 5b68e52e9a62792f11d8a4e2c844d394cd39f496 /cpp/src | |
parent | Fixed Ice interoperability issue (diff) | |
download | ice-99894938dbde9a0bb10fc1998d9863cae52b8977.tar.bz2 ice-99894938dbde9a0bb10fc1998d9863cae52b8977.tar.xz ice-99894938dbde9a0bb10fc1998d9863cae52b8977.zip |
More adapter replication changes.
Diffstat (limited to 'cpp/src')
28 files changed, 2024 insertions, 958 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp index a4597ade5c5..5d8c5af49b9 100644 --- a/cpp/src/Ice/ObjectAdapterI.cpp +++ b/cpp/src/Ice/ObjectAdapterI.cpp @@ -119,7 +119,7 @@ Ice::ObjectAdapterI::activate() { Identity ident; ident.name = "dummy"; - locatorRegistry->setAdapterDirectProxy(_id, createDirectProxy(ident)); + locatorRegistry->setAdapterDirectProxy(serverId, _id, createDirectProxy(ident)); } catch(const ObjectAdapterDeactivatedException&) { diff --git a/cpp/src/IceGrid/.depend b/cpp/src/IceGrid/.depend index 1ba192da179..df52ad103ca 100644 --- a/cpp/src/IceGrid/.depend +++ b/cpp/src/IceGrid/.depend @@ -15,28 +15,32 @@ Internal.o: Internal.cpp ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h Client.o: Client.cpp ../../include/IceUtil/Options.h ../../include/IceUtil/Config.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/SliceChecksums.h ../../include/Ice/SliceChecksumDict.h ../IceGrid/Parser.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Query.h Internal.o: Internal.cpp ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/SliceChecksums.h TraceLevels.o: TraceLevels.cpp ../../include/Ice/Properties.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/BuiltinSequences.h ../IceGrid/TraceLevels.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h -NodeI.o: NodeI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ProtocolPluginFacade.h ../../include/Ice/ProtocolPluginFacadeF.h ../../include/Ice/EndpointFactoryF.h ../../include/IcePatch2/Util.h ../../include/IcePatch2/FileInfo.h ../IceGrid/NodeI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/Activator.h ../IceGrid/ServerI.h ../../include/Freeze/EvictorF.h ../../include/IceUtil/AbstractMutex.h ../IceGrid/ServerAdapterI.h ../IceGrid/WaitQueue.h ../IceGrid/TraceLevels.h -ServerI.o: ServerI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ServerI.h ../../include/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/IceUtil/AbstractMutex.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/ServerAdapterI.h ../../include/IcePatch2/Util.h ../../include/IcePatch2/FileInfo.h -ServerAdapterI.o: ServerAdapterI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ServerAdapterI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/IceUtil/AbstractMutex.h ../IceGrid/TraceLevels.h ../IceGrid/WaitQueue.h ../IceGrid/NodeI.h +NodeI.o: NodeI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/ProtocolPluginFacade.h ../../include/Ice/ProtocolPluginFacadeF.h ../../include/Ice/EndpointFactoryF.h ../../include/IcePatch2/Util.h ../../include/IcePatch2/FileInfo.h ../IceGrid/NodeI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/Activator.h ../IceGrid/ServerI.h ../../include/Freeze/EvictorF.h ../IceGrid/ServerAdapterI.h ../IceGrid/WaitQueue.h ../IceGrid/TraceLevels.h +ServerI.o: ServerI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ServerI.h ../../include/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/ServerAdapterI.h ../IceGrid/WaitQueue.h ../../include/IcePatch2/Util.h ../../include/IcePatch2/FileInfo.h +ServerAdapterI.o: ServerAdapterI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ServerAdapterI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/ServerI.h ../../include/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h Activator.o: Activator.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/Activator.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/TraceLevels.h WaitQueue.o: WaitQueue.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/WaitQueue.h DescriptorParser.o: DescriptorParser.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/IceXML/Parser.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h -RegistryI.o: RegistryI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/RegistryI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/IceStorm/IceStorm.h ../IceGrid/LocatorI.h ../../include/Ice/Locator.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../../include/IceGrid/Query.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../../include/Glacier2/SessionF.h ../IceGrid/SessionManagerI.h ../IceGrid/Topics.h ../IceStorm/TraceLevels.h ../IceStorm/TopicManagerI.h ../IceStorm/PersistentTopicMap.h ../IceStorm/LinkRecord.h ../IceStorm/IceStormInternal.h +RegistryI.o: RegistryI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/RegistryI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/IceStorm/IceStorm.h ../IceGrid/LocatorI.h ../../include/Ice/Locator.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../../include/IceGrid/Query.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../../include/Glacier2/SessionF.h ../IceGrid/SessionManagerI.h ../IceGrid/Topics.h ../IceStorm/TraceLevels.h ../IceStorm/TopicManagerI.h ../IceStorm/PersistentTopicMap.h ../IceStorm/LinkRecord.h ../IceStorm/IceStormInternal.h StringObjectProxyDict.o: StringObjectProxyDict.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../IceGrid/StringObjectProxyDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h StringApplicationDescriptorDict.o: StringApplicationDescriptorDict.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h -IdentityObjectDescDict.o: IdentityObjectDescDict.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../IceGrid/IdentityObjectDescDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h -Database.o: Database.cpp ../../include/IceUtil/StringUtil.h ../../include/IceUtil/Config.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h ../IceGrid/StringApplicationDescriptorDict.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/TraceLevels.h ../IceGrid/Util.h ../IceGrid/DescriptorHelper.h ../../include/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h -LocatorI.o: LocatorI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/Ice/Locator.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h -LocatorRegistryI.o: LocatorRegistryI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/Ice/Locator.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h -AdminI.o: AdminI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/AdminI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/RegistryI.h ../../include/IceStorm/IceStorm.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/DescriptorHelper.h ../../include/IceXML/Parser.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h ../../include/Ice/SliceChecksums.h +IdentityObjectInfoDict.o: IdentityObjectInfoDict.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/Buffer.h ../IceGrid/IdentityObjectInfoDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h +Database.o: Database.cpp ../../include/IceUtil/StringUtil.h ../../include/IceUtil/Config.h ../../include/Freeze/Freeze.h ../../include/Freeze/Initialize.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/EvictorF.h ../../include/Freeze/ConnectionF.h ../../include/Freeze/Index.h ../../include/Freeze/DB.h ../../include/Freeze/Transaction.h ../../include/Freeze/Evictor.h ../../include/Freeze/Exception.h ../../include/Freeze/Map.h ../../include/Freeze/Connection.h ../../include/Freeze/TransactionHolder.h ../IceGrid/Database.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h ../IceGrid/StringApplicationDescriptorDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/TraceLevels.h ../IceGrid/DescriptorHelper.h ../../include/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h +AdapterCache.o: AdapterCache.cpp ../IceGrid/AdapterCache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Shared.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h ../IceGrid/ServerCache.h ../IceGrid/NodeCache.h +ObjectCache.o: ObjectCache.cpp ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LoggerF.h ../../include/Ice/StatsF.h ../../include/Ice/PropertiesF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/IdentityUtil.h ../IceGrid/ObjectCache.h ../../include/Ice/CommunicatorF.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h ../IceGrid/ServerCache.h ../IceGrid/NodeCache.h +ServerCache.o: ServerCache.cpp ../IceGrid/ServerCache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Shared.h ../../include/IceGrid/Descriptor.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/Direct.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../IceGrid/Internal.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Observer.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../../include/Ice/CommunicatorF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/TraceLevels.h +NodeCache.o: NodeCache.cpp ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../IceGrid/NodeCache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Shared.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/NodeSessionI.h ../IceGrid/SessionI.h ../IceGrid/ServerCache.h +LocatorI.o: LocatorI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/Ice/Locator.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h +LocatorRegistryI.o: LocatorRegistryI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/Ice/Locator.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h +AdminI.o: AdminI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/AdminI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/RegistryI.h ../../include/IceStorm/IceStorm.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/DescriptorHelper.h ../../include/IceXML/Parser.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h ../../include/Ice/SliceChecksums.h Util.o: Util.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/IcePatch2/Util.h ../../include/IcePatch2/FileInfo.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h DescriptorHelper.o: DescriptorHelper.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/DescriptorHelper.h ../../include/IceGrid/Admin.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceXML/Parser.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h -NodeSessionI.o: NodeSessionI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/SessionI.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h +NodeSessionI.o: NodeSessionI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/SessionI.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h ReapThread.o: ReapThread.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Glacier2/Session.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../IceGrid/ReapThread.h ../../include/Glacier2/SessionF.h ../IceGrid/SessionI.h -ObserverSessionI.o: ObserverSessionI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ObserverSessionI.h ../../include/IceGrid/Observer.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Exception.h ../IceGrid/SessionI.h ../IceGrid/Topics.h ../../include/IceStorm/IceStorm.h ../../include/Ice/SliceChecksumDict.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../../include/IceGrid/Admin.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h -SessionManagerI.o: SessionManagerI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/SessionManagerI.h ../../include/IceStorm/IceStorm.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Exception.h ../IceGrid/Topics.h ../IceGrid/RegistryI.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/IceGrid/Admin.h ../IceGrid/ObserverSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../../include/Glacier2/SessionF.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h +ObserverSessionI.o: ObserverSessionI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/ObserverSessionI.h ../../include/IceGrid/Observer.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Exception.h ../IceGrid/SessionI.h ../IceGrid/Topics.h ../../include/IceStorm/IceStorm.h ../../include/Ice/SliceChecksumDict.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../../include/IceGrid/Admin.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h +SessionManagerI.o: SessionManagerI.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/SessionManagerI.h ../../include/IceStorm/IceStorm.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/Glacier2/Session.h ../../include/IceGrid/Observer.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Exception.h ../IceGrid/Topics.h ../IceGrid/RegistryI.h ../IceGrid/Internal.h ../../include/Ice/ProcessF.h ../../include/IceGrid/Admin.h ../IceGrid/ObserverSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../../include/Glacier2/SessionF.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h Topics.o: Topics.cpp ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../IceGrid/Topics.h ../../include/IceStorm/IceStorm.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Observer.h ../../include/Glacier2/Session.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Exception.h ../IceGrid/DescriptorHelper.h ../../include/IceGrid/Admin.h ../../include/IceXML/Parser.h -QueryI.o: QueryI.cpp ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/QueryI.h ../../include/IceGrid/Query.h ../../include/Ice/CommunicatorF.h ../IceGrid/Database.h ../../include/IceUtil/Cache.h ../../include/IceUtil/CountDownLatch.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectDescDict.h ../IceGrid/StringObjectProxyDict.h +QueryI.o: QueryI.cpp ../IceGrid/Internal.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/Object.h ../../include/Ice/GCShared.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Buffer.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ServantManagerF.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Direct.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/QueryI.h ../../include/IceGrid/Query.h ../../include/Ice/CommunicatorF.h ../IceGrid/Database.h ../../include/Freeze/ConnectionF.h ../IceGrid/StringApplicationDescriptorDict.h ../../include/Freeze/Map.h ../../include/Ice/Ice.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/Ice/Initialize.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/Process.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Freeze/DB.h ../../include/Freeze/Exception.h ../../include/Freeze/Connection.h ../../include/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringObjectProxyDict.h ../IceGrid/ServerCache.h ../IceGrid/Cache.h ../IceGrid/Util.h ../../include/IceUtil/StringUtil.h ../IceGrid/NodeCache.h ../IceGrid/ObjectCache.h ../IceGrid/AdapterCache.h IceGridNode.o: IceGridNode.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/Locator.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Ice/Service.h ../IceGrid/Activator.h ../IceGrid/Internal.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../IceGrid/WaitQueue.h ../IceGrid/RegistryI.h ../../include/IceStorm/IceStorm.h ../IceGrid/NodeI.h ../IceGrid/TraceLevels.h ../IceGrid/DescriptorParser.h IceGridRegistry.o: IceGridRegistry.cpp ../../include/IceUtil/Options.h ../../include/IceUtil/Config.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Exception.h ../../include/Ice/Ice.h ../../include/Ice/GCRecMutex.h ../../include/Ice/Config.h ../../include/Ice/GCShared.h ../../include/Ice/GC.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/UndefSysMacros.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionIF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/OutgoingAsyncF.h ../../include/Ice/Current.h ../../include/Ice/ConnectionF.h ../../include/Ice/Identity.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Stats.h ../../include/Ice/Communicator.h ../../include/Ice/StatsF.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/FacetMap.h ../../include/Ice/ServantLocator.h ../../include/Ice/Object.h ../../include/Ice/IncomingAsyncF.h ../../include/Ice/IdentityUtil.h ../../include/Ice/OutgoingAsync.h ../../include/Ice/IncomingAsync.h ../../include/Ice/Incoming.h ../../include/Ice/ServantManagerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/Process.h ../../include/Ice/Outgoing.h ../../include/Ice/Direct.h ../../include/Ice/Application.h ../../include/Ice/Connection.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/Stream.h ../../include/Ice/Service.h ../IceGrid/RegistryI.h ../IceGrid/Internal.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/FactoryTable.h ../../include/Ice/FactoryTableDef.h ../../include/IceUtil/StaticMutex.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/ProcessF.h ../../include/Glacier2/Session.h ../../include/IceGrid/Admin.h ../../include/Ice/SliceChecksumDict.h ../../include/IceGrid/Exception.h ../../include/IceGrid/Descriptor.h ../../include/IceGrid/Observer.h ../../include/IceStorm/IceStorm.h PerfTypes.cpp: ../../slice/IceGrid/PerfTypes.ice ../../slice/Ice/BuiltinSequences.ice diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp new file mode 100644 index 00000000000..6622ab6c182 --- /dev/null +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -0,0 +1,106 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceGrid/AdapterCache.h> +#include <IceGrid/NodeSessionI.h> +#include <IceGrid/ServerCache.h> + +using namespace std; +using namespace IceGrid; + +AdapterEntryPtr +AdapterCache::get(const string& id, bool create) const +{ + Lock sync(*this); + AdapterCache& self = const_cast<AdapterCache&>(*this); + AdapterEntryPtr entry = self.getImpl(id, create); + if(!entry) + { + AdapterNotExistException ex; + ex.id = id; + throw ex; + } + return entry; +} + +AdapterEntry::AdapterEntry(Cache<string, AdapterEntry>& cache, const std::string& id) : + _cache(cache), + _id(id), + _replicated(false) +{ +} + +void +AdapterEntry::enableReplication(LoadBalancingPolicy policy) +{ + Lock sync(*this); + _replicated = true; + _loadBalancing = policy; +} + +void +AdapterEntry::disableReplication() +{ + _replicated = false; +} + +void +AdapterEntry::addServer(const ServerEntryPtr& entry) +{ + Lock sync(*this); + assert(_replicated || _servers.empty()); + _servers.insert(make_pair(entry->getName(), entry)); +} + +void +AdapterEntry::removeServer(const ServerEntryPtr& entry) +{ + bool remove = false; + { + Lock sync(*this); + _servers.erase(entry->getName()); + remove = _servers.empty(); + } + if(remove) + { + _cache.remove(_id); + } +} + +AdapterPrx +AdapterEntry::getProxy(const string& serverId) const +{ + Lock sync(*this); + if(!_replicated) + { + return _servers.begin()->second->getAdapter(_id); + } + else + { + // + // TODO: implement load balancing strategies. This is also not really correct to use the first adapter + // if the server id is empty this could allow a server to always override the first server endpoints. + // + map<string, ServerEntryPtr>::const_iterator p = serverId.empty() ? _servers.begin() : _servers.find(serverId); + if(p == _servers.end()) + { + AdapterNotExistException ex; + ex.id = _id; + throw ex; + } + return p->second->getAdapter(_id); + } +} + +bool +AdapterEntry::canRemove() +{ + Lock sync(*this); + return _servers.empty(); +} diff --git a/cpp/src/IceGrid/AdapterCache.h b/cpp/src/IceGrid/AdapterCache.h new file mode 100644 index 00000000000..2922d40f26c --- /dev/null +++ b/cpp/src/IceGrid/AdapterCache.h @@ -0,0 +1,63 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_ADAPTERCACHE_H +#define ICE_GRID_ADAPTERCACHE_H + +#include <IceUtil/Mutex.h> +#include <IceUtil/Shared.h> +#include <IceGrid/Cache.h> + +namespace IceGrid +{ + +class AdapterCache; + +class ServerEntry; +typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; + +class AdapterEntry; +typedef IceUtil::Handle<AdapterEntry> AdapterEntryPtr; + +class AdapterEntry : public IceUtil::Shared, public IceUtil::Mutex +{ +public: + + AdapterEntry(Cache<std::string, AdapterEntry>&, const std::string&); + + AdapterPrx getProxy(const std::string& = std::string()) const; + + void enableReplication(LoadBalancingPolicy); + void disableReplication(); + + void addServer(const ServerEntryPtr&); + void removeServer(const ServerEntryPtr&); + + bool canRemove(); + +private: + + Cache<std::string, AdapterEntry>& _cache; + const std::string _id; + bool _replicated; + LoadBalancingPolicy _loadBalancing; + std::map<std::string, ServerEntryPtr> _servers; +}; +typedef IceUtil::Handle<AdapterEntry> AdapterEntryPtr; + +class AdapterCache : public CacheByString<AdapterEntry> +{ +public: + + AdapterEntryPtr get(const std::string&, bool = false) const; +}; + +}; + +#endif diff --git a/cpp/src/IceGrid/AdminI.cpp b/cpp/src/IceGrid/AdminI.cpp index 8b8e35e8f3e..61c3e69b544 100644 --- a/cpp/src/IceGrid/AdminI.cpp +++ b/cpp/src/IceGrid/AdminI.cpp @@ -275,9 +275,6 @@ AdminI::getAllAdapterIds(const Current&) const void AdminI::addObject(const Ice::ObjectPrx& proxy, const ::Ice::Current& current) { - ObjectDescriptor desc; - desc.proxy = proxy; - try { addObjectWithType(proxy, proxy->ice_id(), current); @@ -293,34 +290,34 @@ AdminI::addObject(const Ice::ObjectPrx& proxy, const ::Ice::Current& current) void AdminI::updateObject(const Ice::ObjectPrx& proxy, const ::Ice::Current& current) { - _database->updateObjectDescriptor(proxy); + _database->updateObject(proxy); } void AdminI::addObjectWithType(const Ice::ObjectPrx& proxy, const string& type, const ::Ice::Current&) { - ObjectDescriptor desc; - desc.proxy = proxy; - desc.type = type; - _database->addObjectDescriptor(desc); + ObjectInfo info; + info.proxy = proxy; + info.type = type; + _database->addObject(info); } void AdminI::removeObject(const Ice::Identity& id, const Ice::Current&) { - _database->removeObjectDescriptor(id); + _database->removeObject(id); } -ObjectDescriptor -AdminI::getObjectDescriptor(const Ice::Identity& id, const Ice::Current&) const +ObjectInfo +AdminI::getObjectInfo(const Ice::Identity& id, const Ice::Current&) const { - return _database->getObjectDescriptor(id); + return _database->getObjectInfo(id); } -ObjectDescriptorSeq -AdminI::getAllObjectDescriptors(const string& expression, const Ice::Current&) const +ObjectInfoSeq +AdminI::getAllObjectInfos(const string& expression, const Ice::Current&) const { - return _database->getAllObjectDescriptors(expression); + return _database->getAllObjectInfos(expression); } bool diff --git a/cpp/src/IceGrid/AdminI.h b/cpp/src/IceGrid/AdminI.h index dd195430e97..b481a95da2b 100644 --- a/cpp/src/IceGrid/AdminI.h +++ b/cpp/src/IceGrid/AdminI.h @@ -51,8 +51,8 @@ public: virtual void updateObject(const ::Ice::ObjectPrx&, const ::Ice::Current&); virtual void addObjectWithType(const ::Ice::ObjectPrx&, const ::std::string&, const ::Ice::Current&); virtual void removeObject(const ::Ice::Identity&, const ::Ice::Current&); - virtual ObjectDescriptor getObjectDescriptor(const Ice::Identity&, const ::Ice::Current&) const; - virtual ObjectDescriptorSeq getAllObjectDescriptors(const std::string&, const ::Ice::Current&) const; + virtual ObjectInfo getObjectInfo(const Ice::Identity&, const ::Ice::Current&) const; + virtual ObjectInfoSeq getAllObjectInfos(const std::string&, const ::Ice::Current&) const; virtual bool pingNode(const std::string&, const Ice::Current&) const; virtual void shutdownNode(const std::string&, const Ice::Current&); diff --git a/cpp/src/IceGrid/Cache.h b/cpp/src/IceGrid/Cache.h new file mode 100644 index 00000000000..da799248a0f --- /dev/null +++ b/cpp/src/IceGrid/Cache.h @@ -0,0 +1,150 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_CACHE_H +#define ICE_GRID_CACHE_H + +#include <IceUtil/Mutex.h> +#include <IceUtil/Shared.h> +#include <IceGrid/Util.h> + +namespace IceGrid +{ + +class Database; + +template<typename Key, typename Value> +class Cache : public IceUtil::Mutex +{ + typedef IceUtil::Handle<Value> ValuePtr; + +public: + + Cache() : _entriesHint(_entries.end()) + { + } + + virtual + ~Cache() + { + } + + virtual bool + has(const Key& key) + { + Lock sync(*this); + return getImpl(key); + } + + virtual ValuePtr + remove(const Key& key) + { + Lock sync(*this); + return removeImpl(key); + } + +protected: + + ValuePtr + getImpl(const Key& key, bool create = false) + { + typename std::map<Key, ValuePtr>::iterator p = _entries.end(); + if(_entriesHint != _entries.end()) + { + if(_entriesHint->first == key) + { + p = _entriesHint; + } + } + + if(p == _entries.end()) + { + p = _entries.find(key); + } + + if(p != _entries.end()) + { + _entriesHint = p; + return p->second; + } + else + { + if(create) + { + ValuePtr entry = createEntry(key); + _entriesHint = _entries.insert(_entriesHint, make_pair(key, entry)); + return entry; + } + else + { + return 0; + } + } + } + + ValuePtr + removeImpl(const Key& key) + { + typename std::map<Key, ValuePtr>::iterator p = _entries.end(); + if(_entriesHint != _entries.end()) + { + if(_entriesHint->first == key) + { + p = _entriesHint; + } + } + + if(p == _entries.end()) + { + p = _entries.find(key); + } + + assert(p != _entries.end()); + if(p->second->canRemove()) + { + ValuePtr entry = p->second; + _entries.erase(p); + _entriesHint = _entries.end(); + return entry; + } + else + { + _entriesHint = p; + return p->second; + } + } + + virtual ValuePtr + createEntry(const Key& key) + { + return new Value(*this, key); + } + + std::map<Key, ValuePtr> _entries; + typename std::map<Key, ValuePtr>::iterator _entriesHint; +}; + +template<typename T> +class CacheByString : public Cache<std::string, T> +{ + typedef IceUtil::Handle<T> TPtr; + +public: + + virtual std::vector<std::string> + getAll(const std::string& expr) + { + IceUtil::Mutex::Lock sync(*this); + return getMatchingKeys<std::map<std::string,TPtr> >(_entries, expr); + } +}; + +}; + +#endif diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp index ffe0ba34210..67d4c9aab9c 100644 --- a/cpp/src/IceGrid/Database.cpp +++ b/cpp/src/IceGrid/Database.cpp @@ -29,25 +29,9 @@ const string Database::_objectDbName = "objects"; namespace IceGrid { -struct AddComponent : std::unary_function<ComponentDescriptorPtr&, void> -{ - AddComponent(Database& database, const Database::ServerEntryPtr& entry) : _database(database), _entry(entry) - { - } - - void - operator()(const ComponentDescriptorPtr& desc) - { - _database.addComponent(_entry, desc); - } - - Database& _database; - const Database::ServerEntryPtr _entry; -}; - struct AddAdapterId : std::unary_function<ComponentDescriptorPtr&, void> { - AddAdapterId(set<string>& ids) : _ids(ids) + AddAdapterId(set<string>& ids, set<string>& replicatedIds) : _ids(ids), _replicatedIds(replicatedIds) { } @@ -59,20 +43,40 @@ struct AddAdapterId : std::unary_function<ComponentDescriptorPtr&, void> if(p->id.empty()) { DeploymentException ex; - ex.reason = "invalid descriptor: empty adapter id for adapter `" + p->name + "' in `" + desc->name - + "'"; + ex.reason = "empty adapter id for adapter `" + p->name + "' in `" + desc->name + "'"; throw ex; } - if(!_ids.insert(p->id).second) + if(!_ids.insert(p->id).second && _replicatedIds.find(p->id) == _replicatedIds.end()) { DeploymentException ex; - ex.reason = "invalid descriptor: duplicated adapter id `" + p->id + "'"; + ex.reason = "duplicated adapter id `" + p->id + "'"; throw ex; } } } set<string>& _ids; + const set<string>& _replicatedIds; +}; + +struct AddReplicatedAdapterId : std::unary_function<ReplicatedAdapterDescriptor&, void> +{ + AddReplicatedAdapterId(set<string>& ids) : _ids(ids) + { + } + + void + operator()(const ReplicatedAdapterDescriptor& desc) + { + if(!_ids.insert(desc.id).second) + { + DeploymentException ex; + ex.reason = "duplicated replicated adapter id `" + desc.id + "'"; + throw ex; + } + } + + set<string>& _ids; }; struct AddObjectId : std::unary_function<ComponentDescriptorPtr&, void> @@ -88,17 +92,10 @@ struct AddObjectId : std::unary_function<ComponentDescriptorPtr&, void> { for(ObjectDescriptorSeq::const_iterator q = p->objects.begin(); q != p->objects.end(); ++q) { - if(!q->proxy) - { - DeploymentException ex; - ex.reason = "invalid descriptor: object proxy is null in `" + desc->name + "'"; - throw ex; - } - if(!_ids.insert(q->proxy->ice_getIdentity()).second) + if(!_ids.insert(q->id).second) { DeploymentException ex; - ex.reason = "invalid descriptor: duplicated object id `" + - Ice::identityToString(q->proxy->ice_getIdentity()) + "'"; + ex.reason = "duplicated object id `" + Ice::identityToString(q->id) + "'"; throw ex; } } @@ -192,6 +189,8 @@ Database::Database(const Ice::ObjectAdapterPtr& adapter, _envName(envName), _nodeSessionTimeout(nodeSessionTimeout), _traceLevels(traceLevels), + _objectCache(_communicator), + _serverCache(*this, _nodeCache, _adapterCache, _objectCache), _connection(Freeze::createConnection(adapter->getCommunicator(), envName)), _descriptors(_connection, _descriptorDbName), _objects(_connection, _objectDbName), @@ -204,10 +203,16 @@ Database::Database(const Ice::ObjectAdapterPtr& adapter, _internalAdapter->addServantLocator(new AdapterServantLocator(this), "IceGridAdapter"); // - // Cache the servers. + // Cache the servers & adapters. // for(StringApplicationDescriptorDict::const_iterator p = _descriptors.begin(); p != _descriptors.end(); ++p) { + for(ReplicatedAdapterDescriptorSeq::const_iterator r = p->second->replicatedAdapters.begin(); + r != p->second->replicatedAdapters.end(); ++r) + { + _adapterCache.get(r->id, true)->enableReplication(r->loadBalancing); + } + ServerInstanceDescriptorSeq::const_iterator q; for(q = p->second->servers.begin(); q != p->second->servers.end(); ++q) { @@ -329,9 +334,25 @@ Database::addApplicationDescriptor(ObserverSessionI* session, const ApplicationD ex.reason = "server `" + e.name + "' is already registered"; throw ex; } + + set<string> replicatedAdapterIds; + AddReplicatedAdapterId addReplicatedAdpt(replicatedAdapterIds); + for_each(descriptor->replicatedAdapters.begin(), descriptor->replicatedAdapters.end(), addReplicatedAdpt); + try + { + ObjFunc<Database, const string&> func = objFunc(*this, &Database::checkAdapterForAddition); + for_each(replicatedAdapterIds.begin(), replicatedAdapterIds.end(), func); + } + catch(const AdapterExistsException& e) + { + DeploymentException ex; + ex.reason = "replicated adapter `" + e.id + "' is already registered"; + throw ex; + } set<string> adapterIds; - for_each(descriptor->servers.begin(), descriptor->servers.end(), forEachComponent(AddAdapterId(adapterIds))); + AddAdapterId addAdpt(adapterIds, replicatedAdapterIds); + for_each(descriptor->servers.begin(), descriptor->servers.end(), forEachComponent(addAdpt)); try { for_each(adapterIds.begin(), adapterIds.end(), objFunc(*this, &Database::checkAdapterForAddition)); @@ -357,6 +378,15 @@ Database::addApplicationDescriptor(ObserverSessionI* session, const ApplicationD } // + // Register the replicated adapters. + // + for(ReplicatedAdapterDescriptorSeq::const_iterator p = descriptor->replicatedAdapters.begin(); + p != descriptor->replicatedAdapters.end(); ++p) + { + _adapterCache.get(p->id, true)->enableReplication(p->loadBalancing); + } + + // // Register the application servers. // addServers(descriptor->name, descriptor->servers, servers, entries); @@ -383,7 +413,7 @@ Database::addApplicationDescriptor(ObserverSessionI* session, const ApplicationD // // Synchronize the servers on the nodes. // - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&Database::ServerEntry::sync)); + for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); } void @@ -440,7 +470,7 @@ Database::updateApplicationDescriptor(ObserverSessionI* session, const Applicati out << "updated application `" << update.name << "'"; } - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&Database::ServerEntry::sync)); + for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); } void @@ -495,7 +525,7 @@ Database::syncApplicationDescriptor(ObserverSessionI* session, const Application out << "synced application `" << newDesc->name << "'"; } - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&Database::ServerEntry::sync)); + for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); } void @@ -528,13 +558,41 @@ Database::syncApplicationDescriptorNoSync(const ApplicationDescriptorPtr& origDe } // + // Ensure that the new application replicated adapters aren't + // already registered. + // + set<string> oldReplicatedAdapterIds; + set<string> newReplicatedAdapterIds; + AddReplicatedAdapterId addOldReplicatedAdpt(oldReplicatedAdapterIds); + for_each(origDesc->replicatedAdapters.begin(), origDesc->replicatedAdapters.end(), addOldReplicatedAdpt); + AddReplicatedAdapterId addNewReplicatedAdpt(newReplicatedAdapterIds); + for_each(newDesc->replicatedAdapters.begin(), newDesc->replicatedAdapters.end(), addNewReplicatedAdpt); + + set<string> addedReplicatedAdpts; + set_difference(newReplicatedAdapterIds.begin(), newReplicatedAdapterIds.end(), oldReplicatedAdapterIds.begin(), + oldReplicatedAdapterIds.end(), set_inserter(addedReplicatedAdpts)); + try + { + ObjFunc<Database, const string&> func = objFunc(*this, &Database::checkAdapterForAddition); + for_each(addedReplicatedAdpts.begin(), addedReplicatedAdpts.end(), func); + } + catch(const AdapterExistsException& e) + { + DeploymentException ex; + ex.reason = "replicated adapter `" + e.id + "' is already registered"; + throw ex; + } + + // // Ensure that the new application adapters aren't already // registered. // set<string> oldAdpts; set<string> newAdpts; - for_each(origDesc->servers.begin(), origDesc->servers.end(), forEachComponent(AddAdapterId(oldAdpts))); - for_each(newDesc->servers.begin(), newDesc->servers.end(), forEachComponent(AddAdapterId(newAdpts))); + AddAdapterId addOldAdpt(oldAdpts, oldReplicatedAdapterIds); + for_each(origDesc->servers.begin(), origDesc->servers.end(), forEachComponent(addOldAdpt)); + AddAdapterId addNewAdpt(newAdpts, newReplicatedAdapterIds); + for_each(newDesc->servers.begin(), newDesc->servers.end(), forEachComponent(addNewAdpt)); set<string> addedAdpts; set_difference(newAdpts.begin(), newAdpts.end(), oldAdpts.begin(), oldAdpts.end(), set_inserter(addedAdpts)); @@ -572,6 +630,21 @@ Database::syncApplicationDescriptorNoSync(const ApplicationDescriptorPtr& origDe } // + // Update the replicated adapters. + // + for(ReplicatedAdapterDescriptorSeq::const_iterator p = origDesc->replicatedAdapters.begin(); + p != origDesc->replicatedAdapters.end(); ++p) + { + _adapterCache.get(p->id)->disableReplication(); + } + for(ReplicatedAdapterDescriptorSeq::const_iterator p = newDesc->replicatedAdapters.begin(); + p != newDesc->replicatedAdapters.end(); ++p) + { + _adapterCache.get(p->id, true)->enableReplication(p->loadBalancing); + } + + + // // Register the new servers, unregister the old ones and // update the updated ones. // @@ -601,6 +674,12 @@ Database::removeApplicationDescriptor(ObserverSessionI* session, const std::stri descriptor = p->second; _descriptors.erase(p); + for(ReplicatedAdapterDescriptorSeq::const_iterator q = descriptor->replicatedAdapters.begin(); + q != descriptor->replicatedAdapters.end(); ++q) + { + _adapterCache.get(q->id)->disableReplication(); + } + set<string> servers; for_each(descriptor->servers.begin(), descriptor->servers.end(), AddServerName(servers)); removeServers(descriptor->name, descriptor->servers, servers, entries); @@ -619,7 +698,7 @@ Database::removeApplicationDescriptor(ObserverSessionI* session, const std::stri out << "removed application `" << name << "'"; } - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&Database::ServerEntry::sync)); + for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); } ApplicationDescriptorPtr @@ -648,81 +727,21 @@ Database::getAllApplications(const string& expression) } void -Database::addNode(const string& name, const NodeSessionIPtr& node) +Database::addNode(const string& name, const NodeSessionIPtr& session) { - ServerEntrySeq entries; - { - Lock sync(*this); - - if(_nodes.find(name) != _nodes.end()) - { - throw NodeActiveException(); - } - - if(_traceLevels->node > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->nodeCat); - out << "added node `" << name << "'"; - } - - _nodes.insert(make_pair(name, node)); - - // - // Get all the node servers and see if they need to be synced. - // - map<string, set<string> >::const_iterator p = _serversByNode.find(name); - if(p == _serversByNode.end()) - { - return; - } - for(set<string>::const_iterator q = p->second.begin() ; q != p->second.end(); ++q) - { - ServerEntryPtr entry = _servers[*q]; - assert(entry); - if(entry->needsSync()) - { - entries.push_back(entry); - } - } - } - - for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&Database::ServerEntry::sync)); + _nodeCache.get(name, true)->setSession(session); } NodePrx Database::getNode(const string& name) const { - Lock sync(*this); - - map<string, NodeSessionIPtr>::const_iterator p = _nodes.find(name); - if(p == _nodes.end()) - { - if(_serversByNode.find(name) == _serversByNode.end()) - { - throw NodeNotExistException(); - } - else - { - throw NodeUnreachableException(); - } - } - return p->second->getNode(); + return _nodeCache.get(name)->getProxy(); } void Database::removeNode(const string& name) { - { - Lock sync(*this); - if(_nodes.erase(name) > 0) - { - if(_traceLevels->node > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->nodeCat); - out << "removed node `" << name << "'"; - } - } - } + _nodeCache.get(name)->setSession(0); try { @@ -737,13 +756,7 @@ Database::removeNode(const string& name) Ice::StringSeq Database::getAllNodes(const string& expression) { - Lock sync(*this); - set<string> nodes; - Ice::StringSeq r = getMatchingKeys<map<string, set<string> > >(_serversByNode, expression); - nodes.insert(r.begin(), r.end()); - r = getMatchingKeys<map<string, NodeSessionIPtr> >(_nodes, expression); - nodes.insert(r.begin(), r.end()); - return Ice::StringSeq(nodes.begin(), nodes.end()); + return _nodeCache.getAll(expression); } ServerInstanceDescriptor @@ -767,16 +780,7 @@ Database::getServerDescriptor(const std::string& name) string Database::getServerApplication(const string& name) { - Lock sync(*this); - map<string, string>::const_iterator p = _applicationsByServerName.find(name); - if(p == _applicationsByServerName.end()) - { - ServerNotExistException ex; - ex.name = name; - throw ex; - } - - return p->second; + return _serverCache.get(name)->getApplication(); } ServerPrx @@ -789,41 +793,19 @@ Database::getServer(const string& name) ServerPrx Database::getServerWithTimeouts(const string& name, int& activationTimeout, int& deactivationTimeout) { - ServerEntryPtr entry; - { - Lock sync(*this); - map<string, ServerEntryPtr>::const_iterator p = _servers.find(name); - if(p != _servers.end()) - { - entry = p->second; - } - } - if(!entry) - { - ServerNotExistException ex; - ex.name = name; - throw ex; - } - return entry->getProxy(activationTimeout, deactivationTimeout); + return _serverCache.get(name)->getProxy(activationTimeout, deactivationTimeout); } Ice::StringSeq Database::getAllServers(const string& expression) { - Lock sync(*this); - return getMatchingKeys<map<string, ServerEntryPtr> >(_servers, expression); + return _serverCache.getAll(expression); } Ice::StringSeq Database::getAllNodeServers(const string& node) { - Lock sync(*this); - map<string, set<string> >::const_iterator p = _serversByNode.find(node); - if(p == _serversByNode.end()) - { - return Ice::StringSeq(); - } - return Ice::StringSeq(p->second.begin(), p->second.end()); + return _nodeCache.get(node)->getServers(); } void @@ -875,7 +857,7 @@ Database::getAdapterDirectProxy(const string& id) } AdapterPrx -Database::getAdapter(const string& id) +Database::getAdapter(const string& id, const string& serverId) { // // TODO: Perhaps we should also cache the adapter proxies here @@ -887,18 +869,12 @@ Database::getAdapter(const string& id) // server, if that's the case we get the adapter proxy from the // server. // - ServerEntryPtr entry; + try { - Lock sync(*this); - map<string, ServerEntryPtr>::const_iterator p = _serversByAdapterId.find(id); - if(p != _serversByAdapterId.end()) - { - entry = p->second; - } + return _adapterCache.get(id)->getProxy(serverId); } - if(entry) + catch(const AdapterNotExistException&) { - return entry->getAdapter(id); } // @@ -925,8 +901,7 @@ Database::getAllAdapters(const string& expression) { Lock sync(*this); vector<string> result; - vector<string> ids; - ids = getMatchingKeys<map<string, ServerEntryPtr> >(_serversByAdapterId, expression); + vector<string> ids = _adapterCache.getAll(expression); result.swap(ids); ids = getMatchingKeys<StringObjectProxyDict>(_adapters, expression); result.insert(result.end(), ids.begin(), ids.end()); @@ -934,18 +909,18 @@ Database::getAllAdapters(const string& expression) } void -Database::addObjectDescriptor(const ObjectDescriptor& object) +Database::addObject(const ObjectInfo& info) { Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); - const Ice::Identity id = object.proxy->ice_getIdentity(); + IdentityObjectInfoDict objects(connection, _objectDbName); + const Ice::Identity id = info.proxy->ice_getIdentity(); if(objects.find(id) != objects.end()) { ObjectExistsException ex; ex.id = id; throw ex; } - objects.put(make_pair(id, object)); + objects.put(make_pair(id, info)); if(_traceLevels->object > 0) { @@ -955,10 +930,10 @@ Database::addObjectDescriptor(const ObjectDescriptor& object) } void -Database::removeObjectDescriptor(const Ice::Identity& id) +Database::removeObject(const Ice::Identity& id) { Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); + IdentityObjectInfoDict objects(connection, _objectDbName); if(objects.find(id) == objects.end()) { ObjectNotExistException ex; @@ -975,21 +950,21 @@ Database::removeObjectDescriptor(const Ice::Identity& id) } void -Database::updateObjectDescriptor(const Ice::ObjectPrx& proxy) +Database::updateObject(const Ice::ObjectPrx& proxy) { Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); + IdentityObjectInfoDict objects(connection, _objectDbName); const Ice::Identity id = proxy->ice_getIdentity(); - IdentityObjectDescDict::iterator p = objects.find(id); + IdentityObjectInfoDict::iterator p = objects.find(id); if(p == objects.end()) { ObjectNotExistException ex; ex.id = id; throw ex; } - ObjectDescriptor desc = p->second; - desc.proxy = proxy; - p.set(desc); + ObjectInfo info = p->second; + info.proxy = proxy; + p.set(info); if(_traceLevels->object > 0) { @@ -998,19 +973,30 @@ Database::updateObjectDescriptor(const Ice::ObjectPrx& proxy) } } -ObjectDescriptor -Database::getObjectDescriptor(const Ice::Identity& id) +Ice::ObjectPrx +Database::getObjectProxy(const Ice::Identity& id, string& adapterId) { + try + { + ObjectEntryPtr object = _objectCache.get(id); + adapterId = object->getAdapterId(); + return object->getProxy(); + } + catch(ObjectNotExistException&) + { + } + Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); - IdentityObjectDescDict::const_iterator p = objects.find(id); + IdentityObjectInfoDict objects(connection, _objectDbName); + IdentityObjectInfoDict::const_iterator p = objects.find(id); if(p == objects.end()) { ObjectNotExistException ex; ex.id = id; throw ex; } - return p->second; + adapterId = ""; + return p->second.proxy; } Ice::ObjectPrx @@ -1023,10 +1009,11 @@ Database::getObjectByType(const string& type) Ice::ObjectProxySeq Database::getObjectsWithType(const string& type) { + Ice::ObjectProxySeq proxies = _objectCache.getObjectsWithType(type); + Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); - Ice::ObjectProxySeq proxies; - for(IdentityObjectDescDict::const_iterator p = objects.findByType(type); p != objects.end(); ++p) + IdentityObjectInfoDict objects(connection, _objectDbName); + for(IdentityObjectInfoDict::const_iterator p = objects.findByType(type); p != objects.end(); ++p) { proxies.push_back(p->second.proxy); } @@ -1037,27 +1024,63 @@ Database::getObjectsWithType(const string& type) return proxies; } -ObjectDescriptorSeq -Database::getAllObjectDescriptors(const string& expression) +ObjectInfo +Database::getObjectInfo(const Ice::Identity& id) +{ + try + { + ObjectEntryPtr object = _objectCache.get(id); + return object->getObjectInfo(); + } + catch(ObjectNotExistException&) + { + } + + Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); + IdentityObjectInfoDict objects(connection, _objectDbName); + IdentityObjectInfoDict::const_iterator p = objects.find(id); + if(p == objects.end()) + { + ObjectNotExistException ex; + ex.id = id; + throw ex; + } + return p->second; +} + +ObjectInfoSeq +Database::getAllObjectInfos(const string& expression) { + ObjectInfoSeq infos = _objectCache.getAll(expression); + Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectDescDict objects(connection, _objectDbName); - ObjectDescriptorSeq descriptors; - for(IdentityObjectDescDict::const_iterator p = objects.begin(); p != objects.end(); ++p) + IdentityObjectInfoDict objects(connection, _objectDbName); + for(IdentityObjectInfoDict::const_iterator p = objects.begin(); p != objects.end(); ++p) { - if(expression.empty() || - IceUtil::match(Ice::identityToString(p->second.proxy->ice_getIdentity()), expression, true)) + if(expression.empty() || IceUtil::match(Ice::identityToString(p->first), expression, true)) { - descriptors.push_back(p->second); + infos.push_back(p->second); } } - return descriptors; + return infos; +} + +const TraceLevelsPtr& +Database::getTraceLevels() const +{ + return _traceLevels; +} + +int +Database::getNodeSessionTimeout() const +{ + return _nodeSessionTimeout; } void Database::checkServerForAddition(const string& name) { - if(_servers.find(name) != _servers.end()) + if(_serverCache.has(name)) { ServerExistsException ex; ex.name = name; @@ -1068,7 +1091,7 @@ Database::checkServerForAddition(const string& name) void Database::checkAdapterForAddition(const string& id) { - if(_serversByAdapterId.find(id) != _serversByAdapterId.end() || _adapters.find(id) != _adapters.end()) + if(_adapterCache.has(id) || _adapters.find(id) != _adapters.end()) { AdapterExistsException ex; ex.id = id; @@ -1079,7 +1102,7 @@ Database::checkAdapterForAddition(const string& id) void Database::checkObjectForAddition(const Ice::Identity& objectId) { - if(_objects.find(objectId) != _objects.end()) + if(_objectCache.has(objectId) || _objects.find(objectId) != _objects.end()) { ObjectExistsException ex; ex.id = objectId; @@ -1147,440 +1170,20 @@ Database::removeServers(const string& application, const ServerInstanceDescripto } } -Database::ServerEntryPtr +ServerEntryPtr Database::addServer(const string& application, const ServerInstanceDescriptor& instance) { - ServerEntryPtr entry; - map<string, ServerEntryPtr>::const_iterator q = _servers.find(instance.descriptor->name); - if(q != _servers.end()) - { - entry = q->second; - entry->update(instance); - } - else - { - entry = new ServerEntry(*this, instance); - _servers.insert(make_pair(instance.descriptor->name, entry)); - } - - map<string, set<string> >::iterator p = _serversByNode.find(instance.node); - if(p == _serversByNode.end()) - { - p = _serversByNode.insert(make_pair(instance.node, set<string>())).first; - } - p->second.insert(p->second.begin(), instance.descriptor->name); - - _applicationsByServerName.insert(make_pair(instance.descriptor->name, application)); - - forEachComponent(AddComponent(*this, entry))(instance); - return entry; + return _serverCache.add(instance.descriptor->name, instance, application); } -Database::ServerEntryPtr +ServerEntryPtr Database::updateServer(const ServerInstanceDescriptor& instance) { - // - // Get the server entry and the current descriptor then check - // if the server descriptor really changed. - // - ServerEntryPtr entry; - map<string, ServerEntryPtr>::const_iterator q = _servers.find(instance.descriptor->name); - assert(q != _servers.end()); - - entry = q->second; - ServerInstanceDescriptor old = entry->getDescriptor(); - - // - // If the node changed, move the server from the old node to the - // new one. - // - if(old.node != instance.node) - { - map<string, set<string> >::iterator p = _serversByNode.find(old.node); - assert(p != _serversByNode.end()); - p->second.erase(instance.descriptor->name); - if(p->second.empty()) - { - _serversByNode.erase(p); - } - p = _serversByNode.find(instance.node); - if(p == _serversByNode.end()) - { - p = _serversByNode.insert(make_pair(instance.node, set<string>())).first; - } - p->second.insert(p->second.begin(), instance.descriptor->name); - } - - // - // Remove the object adapters and objects from the old descriptor. - // - forEachComponent(objFunc(*this, &Database::removeComponent))(old); - - // - // Update the server entry. - // - entry->update(instance); - - // - // Add the new object adapters and objects. - // - forEachComponent(AddComponent(*this, entry))(instance); - return entry; + return _serverCache.update(instance); } -Database::ServerEntryPtr +ServerEntryPtr Database::removeServer(const string& application, const ServerInstanceDescriptor& instance) { - ServerEntryPtr entry; - map<string, ServerEntryPtr>::iterator q = _servers.find(instance.descriptor->name); - assert(q != _servers.end()); - - map<string, set<string> >::iterator p = _serversByNode.find(instance.node); - assert(p != _serversByNode.end()); - p->second.erase(instance.descriptor->name); - if(p->second.empty()) - { - _serversByNode.erase(p); - } - - entry = q->second; - entry->destroy(); - - _applicationsByServerName.erase(instance.descriptor->name); - - // - // Remove the object adapters and objects. - // - forEachComponent(objFunc(*this, &Database::removeComponent))(instance); - return entry; -} - -void -Database::clearServer(const std::string& name) -{ - Lock sync(*this); - map<string, ServerEntryPtr>::iterator p = _servers.find(name); - if(p != _servers.end()) - { - if(p->second->canRemove()) - { - _servers.erase(p); - } - } -} - -void -Database::addComponent(const ServerEntryPtr& entry, const ComponentDescriptorPtr& component) -{ - for(AdapterDescriptorSeq::const_iterator q = component->adapters.begin() ; q != component->adapters.end(); ++q) - { - _serversByAdapterId.insert(make_pair(q->id, entry)); - for(ObjectDescriptorSeq::const_iterator r = q->objects.begin(); r != q->objects.end(); ++r) - { - _objects.put(make_pair(r->proxy->ice_getIdentity(), *r)); - } - } -} - -void -Database::removeComponent(const ComponentDescriptorPtr& component) -{ - for(AdapterDescriptorSeq::const_iterator q = component->adapters.begin() ; q != component->adapters.end(); ++q) - { - _serversByAdapterId.erase(q->id); - for(ObjectDescriptorSeq::const_iterator r = q->objects.begin(); r != q->objects.end(); ++r) - { - _objects.erase(r->proxy->ice_getIdentity()); - } - } -} - -Database::ServerEntry::ServerEntry(Database& database, const ServerInstanceDescriptor& descriptor) : - _database(database), - _synchronizing(false) -{ - _load.reset(new ServerInstanceDescriptor()); - *_load = descriptor; -} - -void -Database::ServerEntry::sync() -{ - map<string, AdapterPrx> adapters; - int at, dt; - try - { - sync(adapters, at, dt); - } - catch(const NodeUnreachableException&) - { - } -} - -bool -Database::ServerEntry::needsSync() const -{ - Lock sync(*this); - return _failed; -} - -void -Database::ServerEntry::update(const ServerInstanceDescriptor& instance) -{ - Lock sync(*this); - - auto_ptr<ServerInstanceDescriptor> descriptor(new ServerInstanceDescriptor()); - *descriptor = instance; - - if(_loaded.get() && descriptor->node != _loaded->node) - { - assert(!_destroy.get()); - _destroy = _loaded; - } - else if(_load.get() && descriptor->node != _load->node) - { - assert(!_destroy.get()); - _destroy = _load; - } - - _load = descriptor; - _loaded.reset(0); - _proxy = 0; - _adapters.clear(); -} - -void -Database::ServerEntry::destroy() -{ - Lock sync(*this); - if(_loaded.get()) - { - assert(!_destroy.get()); - _destroy = _loaded; - } - else if(_load.get()) - { - assert(!_destroy.get()); - _destroy = _load; - } - - _load.reset(0); - _loaded.reset(0); - _proxy = 0; - _adapters.clear(); -} - -ServerInstanceDescriptor -Database::ServerEntry::getDescriptor() -{ - Lock sync(*this); - if(_proxy) - { - return *_loaded.get(); - } - else - { - return *_load.get(); - } -} - -ServerPrx -Database::ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout) -{ - ServerPrx proxy; - { - Lock sync(*this); - if(_proxy) // Synced - { - proxy = _proxy; - activationTimeout = _activationTimeout; - deactivationTimeout = _deactivationTimeout; - } - } - - if(proxy) - { - try - { - proxy->ice_ping(); - return proxy; - } - catch(const Ice::LocalException& ex) - { - } - } - - StringAdapterPrxDict adapters; - return sync(adapters, activationTimeout, deactivationTimeout); -} - -AdapterPrx -Database::ServerEntry::getAdapter(const string& id) -{ - AdapterPrx proxy; - { - Lock sync(*this); - if(_proxy) // Synced - { - proxy = _adapters[id]; - } - } - - if(proxy) - { - try - { - proxy->ice_ping(); - return proxy; - } - catch(const Ice::LocalException& ex) - { - } - } - - StringAdapterPrxDict adapters; - int activationTimeout, deactivationTimeout; - sync(adapters, activationTimeout, deactivationTimeout); - return adapters[id]; -} - -ServerPrx -Database::ServerEntry::sync(map<string, AdapterPrx>& adapters, int& activationTimeout, int& deactivationTimeout) -{ - ServerDescriptorPtr load; - string loadNode; - ServerDescriptorPtr destroy; - string destroyNode; - { - Lock sync(*this); - while(_synchronizing) - { - wait(); - } - - if(!_load.get() && !_destroy.get()) - { - _load = _loaded; // Re-load the current server. - } - - _synchronizing = true; - _failed = false; - if(_load.get()) - { - load = _load->descriptor; - loadNode = _load->node; - } - if(_destroy.get()) - { - destroy = _destroy->descriptor; - destroyNode = _destroy->node; - } - } - - ServerPrx proxy; - try - { - if(destroy) - { - try - { - _database.getNode(destroyNode)->destroyServer(destroy->name); - } - catch(const NodeNotExistException& ex) - { - if(!load) - { - throw NodeUnreachableException(); - } - } - catch(const Ice::LocalException& ex) - { - if(!load) - { - throw NodeUnreachableException(); - } - } - } - - if(load) - { - try - { - proxy = _database.getNode(loadNode)->loadServer(load, adapters, activationTimeout, deactivationTimeout); - proxy = ServerPrx::uncheckedCast(proxy->ice_collocationOptimization(false)); - } - catch(const NodeNotExistException& ex) - { - throw NodeUnreachableException(); - } - catch(const DeploymentException& ex) - { - Ice::Warning out(_database._traceLevels->logger); - out << "failed to load server on node `" << loadNode << "':\n" << ex; - throw NodeUnreachableException(); - } - catch(const Ice::LocalException& ex) - { - Ice::Warning out(_database._traceLevels->logger); - out << "unexpected exception while loading on node `" << loadNode << "':\n" << ex; - throw NodeUnreachableException(); - } - } - } - catch(const NodeUnreachableException& ex) - { - { - Lock sync(*this); - _synchronizing = false; - _destroy.reset(0); - _failed = true; - notifyAll(); - } - if(!load && destroy) - { - _database.clearServer(destroy->name); - } - throw; - } - - { - Lock sync(*this); - _synchronizing = false; - _loaded = _load; - _load.reset(0); - _destroy.reset(0); - - // - // Set timeout on server and adapter proxies. Most of the - // calls on the proxies shouldn't block for longer than the - // node session timeout. Calls that might block for a longer - // time should set the correct timeout before invoking on the - // proxy (e.g.: server start/stop, adapter activate). - // - int timeout = _database._nodeSessionTimeout * 1000; // sec to ms - _proxy = proxy ? ServerPrx::uncheckedCast(proxy->ice_timeout(timeout)) : ServerPrx(); - _adapters.clear(); - for(StringAdapterPrxDict::const_iterator p = adapters.begin(); p != adapters.end(); ++p) - { - AdapterPrx adapter = AdapterPrx::uncheckedCast(p->second->ice_timeout(timeout)); - _adapters.insert(make_pair(p->first, adapter)); - } - activationTimeout += _database._nodeSessionTimeout; - deactivationTimeout += _database._nodeSessionTimeout; - _activationTimeout = activationTimeout; - _deactivationTimeout = deactivationTimeout; - notifyAll(); - } - if(!load && destroy) - { - _database.clearServer(destroy->name); - } - return proxy; -} - -bool -Database::ServerEntry::canRemove() -{ - Lock sync(*this); - return !_loaded.get() && !_load.get() && !_destroy.get(); + return _serverCache.remove(instance.descriptor->name); } diff --git a/cpp/src/IceGrid/Database.h b/cpp/src/IceGrid/Database.h index dd75f62e34e..d973b03da01 100644 --- a/cpp/src/IceGrid/Database.h +++ b/cpp/src/IceGrid/Database.h @@ -12,14 +12,17 @@ #include <IceUtil/Mutex.h> #include <IceUtil/Shared.h> -#include <IceUtil/Cache.h> #include <Freeze/ConnectionF.h> #include <Ice/CommunicatorF.h> #include <IceGrid/Admin.h> #include <IceGrid/Internal.h> #include <IceGrid/StringApplicationDescriptorDict.h> -#include <IceGrid/IdentityObjectDescDict.h> +#include <IceGrid/IdentityObjectInfoDict.h> #include <IceGrid/StringObjectProxyDict.h> +#include <IceGrid/ServerCache.h> +#include <IceGrid/NodeCache.h> +#include <IceGrid/ObjectCache.h> +#include <IceGrid/AdapterCache.h> namespace IceGrid { @@ -32,44 +35,11 @@ typedef IceUtil::Handle<NodeSessionI> NodeSessionIPtr; class ObserverSessionI; +class ServerEntry; +typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; + class Database : public IceUtil::Shared, public IceUtil::Mutex { - class ServerEntry : public IceUtil::Shared, public IceUtil::Monitor<IceUtil::Mutex> - { - public: - - ServerEntry(Database&, const ServerInstanceDescriptor&); - - void sync(); - bool needsSync() const; - void update(const ServerInstanceDescriptor&); - void destroy(); - ServerInstanceDescriptor getDescriptor(); - ServerPrx getProxy(int&, int&); - AdapterPrx getAdapter(const std::string&); - bool canRemove(); - - private: - - ServerPrx sync(StringAdapterPrxDict& adapters, int&, int&); - - Database& _database; - std::auto_ptr<ServerInstanceDescriptor> _loaded; - std::auto_ptr<ServerInstanceDescriptor> _load; - std::auto_ptr<ServerInstanceDescriptor> _destroy; - ServerPrx _proxy; - std::map<std::string, AdapterPrx> _adapters; - bool _synchronizing; - bool _failed; - int _activationTimeout; - int _deactivationTimeout; - }; - friend class ServerEntry; - friend struct AddComponent; - - typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; - typedef std::vector<ServerEntryPtr> ServerEntrySeq; - public: Database(const Ice::ObjectAdapterPtr&, const std::string&, int, const TraceLevelsPtr&); @@ -102,16 +72,20 @@ public: void setAdapterDirectProxy(const std::string&, const Ice::ObjectPrx&); Ice::ObjectPrx getAdapterDirectProxy(const std::string&); - AdapterPrx getAdapter(const std::string&); + AdapterPrx getAdapter(const std::string&, const std::string& = std::string()); Ice::StringSeq getAllAdapters(const std::string& = std::string()); - void addObjectDescriptor(const ObjectDescriptor&); - void removeObjectDescriptor(const Ice::Identity&); - void updateObjectDescriptor(const Ice::ObjectPrx&); - ObjectDescriptor getObjectDescriptor(const Ice::Identity&); + void addObject(const ObjectInfo&); + void removeObject(const Ice::Identity&); + void updateObject(const Ice::ObjectPrx&); + Ice::ObjectPrx getObjectProxy(const Ice::Identity&, std::string&); Ice::ObjectPrx getObjectByType(const std::string&); Ice::ObjectProxySeq getObjectsWithType(const std::string&); - ObjectDescriptorSeq getAllObjectDescriptors(const std::string& = std::string()); + ObjectInfo getObjectInfo(const Ice::Identity&); + ObjectInfoSeq getAllObjectInfos(const std::string& = std::string()); + + const TraceLevelsPtr& getTraceLevels() const; + int getNodeSessionTimeout() const; private: @@ -124,12 +98,10 @@ private: const std::set<std::string>&, ServerEntrySeq&); void removeServers(const std::string&, const ServerInstanceDescriptorSeq&, const std::set<std::string>&, ServerEntrySeq&); + ServerEntryPtr addServer(const std::string&, const ServerInstanceDescriptor&); ServerEntryPtr updateServer(const ServerInstanceDescriptor&); ServerEntryPtr removeServer(const std::string&, const ServerInstanceDescriptor&); - void clearServer(const std::string&); - void addComponent(const ServerEntryPtr&, const ComponentDescriptorPtr&); - void removeComponent(const ComponentDescriptorPtr&); void checkServerForAddition(const std::string&); void checkAdapterForAddition(const std::string&); @@ -137,6 +109,8 @@ private: void checkSessionLock(ObserverSessionI*); + friend struct AddComponent; + static const std::string _descriptorDbName; static const std::string _objectDbName; static const std::string _adapterDbName; @@ -146,18 +120,20 @@ private: const std::string _envName; const int _nodeSessionTimeout; const TraceLevelsPtr _traceLevels; + + NodeCache _nodeCache; + ObjectCache _objectCache; + AdapterCache _adapterCache; + ServerCache _serverCache; + RegistryObserverPrx _registryObserver; NodeObserverPrx _nodeObserver; - std::map<std::string, ServerEntryPtr> _servers; - std::map<std::string, ServerEntryPtr> _serversByAdapterId; - std::map<std::string, std::set<std::string> > _serversByNode; - std::map<std::string, NodeSessionIPtr> _nodes; std::map<std::string, std::string> _applicationsByServerName; Freeze::ConnectionPtr _connection; StringApplicationDescriptorDict _descriptors; - IdentityObjectDescDict _objects; + IdentityObjectInfoDict _objects; StringObjectProxyDict _adapters; ObserverSessionI* _lock; diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp index 56ea2c235bb..a949c3baef2 100644 --- a/cpp/src/IceGrid/DescriptorHelper.cpp +++ b/cpp/src/IceGrid/DescriptorHelper.cpp @@ -35,6 +35,253 @@ struct Substitute : unary_function<string&, void> set<string>& _missing; }; +struct GetReplicatedAdapterId : unary_function<ReplicatedAdapterDescriptor&, const string&> +{ + const string& + operator()(const ReplicatedAdapterDescriptor& desc) + { + return desc.id; + } +}; + +struct GetNodeName : unary_function<NodeDescriptor&, const string&> +{ + const string& + operator()(const NodeDescriptor& desc) + { + return desc.name; + } +}; + +struct GetServerName : unary_function<ServerInstanceDescriptor&, const string&> +{ + const string& + operator()(const ServerInstanceDescriptor& desc) + { + assert(desc.descriptor); + return desc.descriptor->name; + } +}; + +struct ServerDescriptorEqual : std::binary_function<ServerDescriptorPtr&, ServerDescriptorPtr&, bool> +{ + ServerDescriptorEqual(ApplicationDescriptorHelper& helper) : _helper(helper) + { + } + + bool + operator()(const ServerDescriptorPtr& lhs, const ServerDescriptorPtr& rhs) + { + return ServerDescriptorHelper(_helper, lhs) == ServerDescriptorHelper(_helper, rhs); + } + + ApplicationDescriptorHelper& _helper; +}; + +struct ServiceDescriptorEqual : std::binary_function<ServiceDescriptorPtr&, ServiceDescriptorPtr&, bool> +{ + ServiceDescriptorEqual(ApplicationDescriptorHelper& helper) : _helper(helper) + { + } + + bool + operator()(const ServiceDescriptorPtr& lhs, const ServiceDescriptorPtr& rhs) + { + return ServiceDescriptorHelper(_helper, lhs) == ServiceDescriptorHelper(_helper, rhs); + } + + ApplicationDescriptorHelper& _helper; +}; + +struct TemplateDescriptorEqual : std::binary_function<TemplateDescriptor&, TemplateDescriptor&, bool> +{ + TemplateDescriptorEqual(ApplicationDescriptorHelper& helper) : _helper(helper) + { + } + + bool + operator()(const TemplateDescriptor& lhs, const TemplateDescriptor& rhs) + { + if(lhs.parameters != rhs.parameters) + { + return false; + } + + ServerDescriptorPtr slhs = ServerDescriptorPtr::dynamicCast(lhs.descriptor); + ServerDescriptorPtr srhs = ServerDescriptorPtr::dynamicCast(lhs.descriptor); + if(slhs && srhs) + { + return ServerDescriptorHelper(_helper, slhs) == ServerDescriptorHelper(_helper, srhs); + } + + ServiceDescriptorPtr svclhs = ServiceDescriptorPtr::dynamicCast(lhs.descriptor); + ServiceDescriptorPtr svcrhs = ServiceDescriptorPtr::dynamicCast(lhs.descriptor); + if(svclhs && svcrhs) + { + return ServiceDescriptorHelper(_helper, svclhs) == ServiceDescriptorHelper(_helper, svcrhs); + } + + return false; + } + + ApplicationDescriptorHelper& _helper; +}; + +struct ServerInstanceDescriptorEqual : std::binary_function<ServerInstanceDescriptor&, + ServerInstanceDescriptor&, + bool> +{ + ServerInstanceDescriptorEqual(ApplicationDescriptorHelper& helper) : _helper(helper) + { + } + + bool + operator()(const ServerInstanceDescriptor& lhs, const ServerInstanceDescriptor& rhs) + { + if(lhs._cpp_template != rhs._cpp_template) + { + return false; + } + if(lhs.parameterValues != rhs.parameterValues) + { + return false; + } + if(lhs.targets != rhs.targets) + { + return false; + } + return ServerDescriptorHelper(_helper, lhs.descriptor) == ServerDescriptorHelper(_helper, rhs.descriptor); + } + + ApplicationDescriptorHelper& _helper; +}; + +template <typename GetKeyFunc, typename Seq> Seq +getSeqUpdatedElts(const Seq& lseq, const Seq& rseq, GetKeyFunc func) +{ + return getSeqUpdatedElts(lseq, rseq, func, equal_to<typename Seq::value_type>()); +} + +template <typename GetKeyFunc, typename EqFunc, typename Seq> Seq +getSeqUpdatedElts(const Seq& lseq, const Seq& rseq, GetKeyFunc func, EqFunc eq) +{ + Seq result; + for(typename Seq::const_iterator p = rseq.begin(); p != rseq.end(); ++p) + { + typename Seq::const_iterator q = lseq.begin(); + for(; q != lseq.end(); ++q) + { + if(func(*p) == func(*q)) + { + break; + } + } + if(q == lseq.end() || !eq(*p, *q)) + { + result.push_back(*p); + } + } + return result; +} + +template <typename GetKeyFunc, typename Seq> Ice::StringSeq +getSeqRemovedElts(const Seq& lseq, const Seq& rseq, GetKeyFunc func) +{ + Ice::StringSeq removed; + for(typename Seq::const_iterator p = lseq.begin(); p != lseq.end(); ++p) + { + typename Seq::const_iterator q; + for(q = rseq.begin(); q != rseq.end(); ++q) + { + if(func(*p) == func(*q)) + { + break; + } + } + if(q == rseq.end()) + { + removed.push_back(func(*p)); + } + } + return removed; +} + +template <typename GetKeyFunc, typename Seq> Seq +updateSeqElts(const Seq& seq, const Seq& update, const Ice::StringSeq& remove, GetKeyFunc func) +{ + Seq result = update; + set<string> removed(remove.begin(), remove.end()); + for(typename Seq::const_iterator p = seq.begin(); p != seq.end(); ++p) + { + if(removed.find(func(*p)) == removed.end()) + { + typename Seq::const_iterator q = update.begin(); + for(; q != update.end(); ++q) + { + if(func(*p) == func(*q)) + { + break; + } + } + if(q == update.end()) + { + result.push_back(*p); + } + } + } + return result; +} + +template<typename Dict> Dict +getDictUpdatedElts(const Dict& ldict, const Dict& rdict) +{ + return getDictUpdatedElts(ldict, rdict, equal_to<typename Dict::mapped_type>()); +} + +template<typename Dict, typename EqFunc> Dict +getDictUpdatedElts(const Dict& ldict, const Dict& rdict, EqFunc eq) +{ + Dict result; + for(typename Dict::const_iterator p = rdict.begin(); p != rdict.end(); ++p) + { + typename Dict::const_iterator q = ldict.find(p->first); + if(q == ldict.end() || !eq(p->second, q->second)) + { + result.insert(*p); + } + } + return result; +} + +template <typename Dict> Ice::StringSeq +getDictRemovedElts(const Dict& ldict, const Dict& rdict) +{ + Ice::StringSeq removed; + for(typename Dict::const_iterator p = ldict.begin(); p != ldict.end(); ++p) + { + if(rdict.find(p->first) == rdict.end()) + { + removed.push_back(p->first); + } + } + return removed; +} + +template <typename Dict> Dict +updateDictElts(const Dict& dict, const Dict& update, const Ice::StringSeq& remove) +{ + Dict result = dict; + for(Ice::StringSeq::const_iterator p = remove.begin(); p != remove.end(); ++p) + { + result.erase(*p); + } + for(typename Dict::const_iterator q = update.begin(); q != update.end(); ++q) + { + result[q->first] = q->second; + } + return result; +} + } DescriptorVariables::DescriptorVariables() @@ -696,8 +943,21 @@ ApplicationDescriptorHelper::update(const ApplicationUpdateDescriptor& update) newApp->name = oldApp->name; newApp->comment = newUpdate.comment ? newUpdate.comment->value : oldApp->comment; newApp->targets = oldApp->targets; - newApp->variables = oldApp->variables; + Ice::StringSeq::const_iterator p; + + // + // Copy the updated replicated adapters in the new descriptor and + // add back the old adapters which weren't removed. + // + newApp->replicatedAdapters = updateSeqElts(oldApp->replicatedAdapters, newUpdate.replicatedAdapters, + newUpdate.removeReplicatedAdapters, GetReplicatedAdapterId()); + + // + // Copy the old variables in the new descriptor, remove the + // required variables and add the updated ones. + // + newApp->variables = oldApp->variables; for(p = newUpdate.removeVariables.begin(); p != newUpdate.removeVariables.end(); ++p) { newApp->variables.erase(*p); @@ -709,48 +969,19 @@ ApplicationDescriptorHelper::update(const ApplicationUpdateDescriptor& update) _variables->addVariable(q->first, q->second); } - newApp->serverTemplates = oldApp->serverTemplates; - for(p = newUpdate.removeServerTemplates.begin(); p != newUpdate.removeServerTemplates.end(); ++p) - { - newApp->serverTemplates.erase(*p); - } - TemplateDescriptorDict::const_iterator t; - for(t = newUpdate.serverTemplates.begin(); t != newUpdate.serverTemplates.end(); ++t) - { - newApp->serverTemplates[t->first] = t->second; - } - - newApp->serviceTemplates = oldApp->serviceTemplates; - for(p = newUpdate.removeServiceTemplates.begin(); p != newUpdate.removeServiceTemplates.end(); ++p) - { - newApp->serviceTemplates.erase(*p); - } - for(t = newUpdate.serviceTemplates.begin(); t != newUpdate.serviceTemplates.end(); ++t) - { - newApp->serviceTemplates[t->first] = t->second; - } - - newApp->nodes = newUpdate.nodes; - set<string> removed(newUpdate.removeNodes.begin(), newUpdate.removeNodes.end()); - for(NodeDescriptorSeq::const_iterator q = oldApp->nodes.begin(); q != oldApp->nodes.end(); ++q) - { - if(removed.find(q->name) == removed.end()) - { - NodeDescriptorSeq::const_iterator r; - for(r = newUpdate.nodes.begin(); r != newUpdate.nodes.end(); ++r) - { - if(q->name == r->name) - { - break; - } - } - if(r == newUpdate.nodes.end()) - { - newApp->nodes.push_back(*q); - } - } - } + newApp->serverTemplates = + updateDictElts(oldApp->serverTemplates, newUpdate.serverTemplates, newUpdate.removeServerTemplates); + newApp->serviceTemplates = + updateDictElts(oldApp->serviceTemplates, newUpdate.serviceTemplates, newUpdate.removeServiceTemplates); + newApp->nodes = updateSeqElts(oldApp->nodes, newUpdate.nodes, newUpdate.removeNodes, GetNodeName()); + // + // Copy the updated servers in the new descriptor and add back + // the old servers which weren't removed. + // + // NOTE: we also re-instantiate the old servers since their + // template might have changed. + // newApp->servers.clear(); for(ServerInstanceDescriptorSeq::iterator q = newUpdate.servers.begin(); q != newUpdate.servers.end(); ++q) { @@ -758,7 +989,7 @@ ApplicationDescriptorHelper::update(const ApplicationUpdateDescriptor& update) newApp->servers.push_back(*q); } - removed = set<string>(newUpdate.removeServers.begin(), newUpdate.removeServers.end()); + set<string> removed(newUpdate.removeServers.begin(), newUpdate.removeServers.end()); set<string> updated; for_each(newApp->servers.begin(), newApp->servers.end(), AddServerName(updated)); for(ServerInstanceDescriptorSeq::const_iterator q = oldApp->servers.begin(); q != oldApp->servers.end(); ++q) @@ -785,160 +1016,27 @@ ApplicationDescriptorHelper::diff(const ApplicationDescriptorPtr& orig) update.comment = _descriptor->comment != orig->comment ? new BoxedComment(_descriptor->comment) : BoxedCommentPtr(); update.targets = _descriptor->targets != orig->targets ? new BoxedTargets(_descriptor->targets) : BoxedTargetsPtr(); - update.variables = _descriptor->variables; - map<string, string>::iterator p = update.variables.begin(); - while(p != update.variables.end()) - { - map<string, string>::const_iterator q = orig->variables.find(p->first); - if(q != orig->variables.end() && q->second == p->second) - { - map<string, string>::iterator tmp = p++; - update.variables.erase(tmp); - } - else - { - ++p; - } - } - for(map<string, string>::const_iterator q = orig->variables.begin(); q != orig->variables.end(); ++q) - { - if(_descriptor->variables.find(q->first) == _descriptor->variables.end()) - { - update.removeVariables.push_back(q->first); - } - } - - update.serverTemplates = _descriptor->serverTemplates; - TemplateDescriptorDict::iterator t = update.serverTemplates.begin(); - while(t != update.serverTemplates.end()) - { - TemplateDescriptorDict::const_iterator q = orig->serverTemplates.find(t->first); - if(q != orig->serverTemplates.end() && - q->second.parameters == t->second.parameters && - ServerDescriptorHelper(*this, ServerDescriptorPtr::dynamicCast(q->second.descriptor)) == - ServerDescriptorHelper(*this, ServerDescriptorPtr::dynamicCast(t->second.descriptor))) - { - TemplateDescriptorDict::iterator tmp = t++; - update.serverTemplates.erase(tmp); - } - else - { - ++t; - } - } - for(t = orig->serverTemplates.begin(); t != orig->serverTemplates.end(); ++t) - { - if(_descriptor->serverTemplates.find(t->first) == _descriptor->serverTemplates.end()) - { - update.removeServerTemplates.push_back(t->first); - } - } + update.variables = getDictUpdatedElts(orig->variables, _descriptor->variables); + update.removeVariables = getDictRemovedElts(orig->variables, _descriptor->variables); - update.serviceTemplates = _descriptor->serviceTemplates; - t = update.serviceTemplates.begin(); - while(t != update.serviceTemplates.end()) - { - TemplateDescriptorDict::const_iterator q = orig->serviceTemplates.find(t->first); - if(q != orig->serviceTemplates.end() && - q->second.parameters == t->second.parameters && - ServiceDescriptorHelper(*this, ServiceDescriptorPtr::dynamicCast(q->second.descriptor)) == - ServiceDescriptorHelper(*this, ServiceDescriptorPtr::dynamicCast(t->second.descriptor))) - { - TemplateDescriptorDict::iterator tmp = t++; - update.serviceTemplates.erase(tmp); - } - else - { - ++t; - } - } - for(t = orig->serviceTemplates.begin(); t != orig->serviceTemplates.end(); ++t) - { - if(_descriptor->serviceTemplates.find(t->first) == _descriptor->serviceTemplates.end()) - { - update.removeServiceTemplates.push_back(t->first); - } - } + GetReplicatedAdapterId rk; + update.replicatedAdapters = getSeqUpdatedElts(orig->replicatedAdapters, _descriptor->replicatedAdapters, rk); + update.removeReplicatedAdapters = getSeqRemovedElts(orig->replicatedAdapters, _descriptor->replicatedAdapters, rk); - update.nodes = _descriptor->nodes; - NodeDescriptorSeq::iterator n = update.nodes.begin(); - while(n != update.nodes.end()) - { - NodeDescriptorSeq::const_iterator q; - for(q = orig->nodes.begin(); q != orig->nodes.end(); ++q) - { - if(n->name == q->name) - { - break; - } - } - if(q != orig->nodes.end() && *n == *q) - { - n = update.nodes.erase(n); - } - else - { - ++n; - } - } - for(n = orig->nodes.begin(); n != orig->nodes.end(); ++n) - { - bool found = false; - for(NodeDescriptorSeq::const_iterator q = orig->nodes.begin(); q != orig->nodes.end(); ++q) - { - if(n->name == q->name) - { - found = true; - break; - } - } - if(!found) - { - update.removeNodes.push_back(n->name); - } - } + TemplateDescriptorEqual tmpleq(*this); + update.serverTemplates = getDictUpdatedElts(orig->serverTemplates, _descriptor->serverTemplates, tmpleq); + update.removeServerTemplates = getDictRemovedElts(orig->serverTemplates, _descriptor->serverTemplates); + update.serviceTemplates = getDictUpdatedElts(orig->serviceTemplates, _descriptor->serviceTemplates, tmpleq); + update.removeServiceTemplates = getDictRemovedElts(orig->serviceTemplates, _descriptor->serviceTemplates); - update.servers = _descriptor->servers; - ServerInstanceDescriptorSeq::iterator i = update.servers.begin(); - while(i != update.servers.end()) - { - ServerInstanceDescriptorSeq::const_iterator q; - for(q = orig->servers.begin(); q != orig->servers.end(); ++q) - { - if(i->descriptor->name == q->descriptor->name) - { - break; - } - } + GetNodeName nk; + update.nodes = getSeqUpdatedElts(orig->nodes, _descriptor->nodes, nk); + update.removeNodes = getSeqRemovedElts(orig->nodes, _descriptor->nodes, nk); - if(q != orig->servers.end() && - i->_cpp_template == q->_cpp_template && - i->parameterValues == q->parameterValues && - i->targets == q->targets && - ServerDescriptorHelper(*this, q->descriptor) == ServerDescriptorHelper(*this, i->descriptor)) - { - i = update.servers.erase(i); - } - else - { - ++i; - } - } - for(i = orig->servers.begin(); i != orig->servers.end(); ++i) - { - ServerInstanceDescriptorSeq::const_iterator q; - for(q = _descriptor->servers.begin(); q != _descriptor->servers.end(); ++q) - { - if(i->descriptor->name == q->descriptor->name) - { - break; - } - } - if(q == _descriptor->servers.end()) - { - update.removeServers.push_back(i->descriptor->name); - } - } + GetServerName sn; + ServerInstanceDescriptorEqual svreq(*this); + update.servers = getSeqUpdatedElts(orig->servers, _descriptor->servers, sn, svreq); + update.removeServers = getSeqRemovedElts(orig->servers, _descriptor->servers, sn); return update; } @@ -1127,7 +1225,7 @@ ComponentDescriptorHelper::addAdapter(const IceXML::Attributes& attrs) } desc.endpoints = attributes("endpoints"); desc.registerProcess = attributes("register", "false") == "true"; - desc.noWaitForActivation = attributes("noWaitForActivation", "false") == "true"; + desc.noWaitForActivation = attributes("no-wait-for-activation", "false") == "true"; _descriptor->adapters.push_back(desc); } @@ -1138,8 +1236,7 @@ ComponentDescriptorHelper::addObject(const IceXML::Attributes& attrs) ObjectDescriptor object; object.type = attributes("type", ""); - object.proxy = _communicator->stringToProxy(attributes("identity") + "@" + _descriptor->adapters.back().id); - object.adapterId = _descriptor->adapters.back().id; + object.id = Ice::stringToIdentity(attributes("identity")); _descriptor->adapters.back().objects.push_back(object); } @@ -1207,10 +1304,8 @@ ComponentDescriptorHelper::instantiateImpl(const ComponentDescriptorPtr& desc, s for(ObjectDescriptorSeq::iterator q = p->objects.begin(); q != p->objects.end(); ++q) { substitute(q->type); - substitute(q->adapterId); - string proxy = _communicator->proxyToString(q->proxy); - substitute(proxy); - q->proxy = _communicator->stringToProxy(proxy); + substitute(q->id.name); + substitute(q->id.category); } } for(PropertyDescriptorSeq::iterator p = desc->properties.begin(); p != desc->properties.end(); ++p) @@ -1286,6 +1381,7 @@ ServerDescriptorHelper::ServerDescriptorHelper(const DescriptorHelper& helper, c adapter.endpoints = attributes("endpoints"); adapter.id = _descriptor->name + "." + adapter.name; adapter.registerProcess = true; + adapter.noWaitForActivation = false; _descriptor->adapters.push_back(adapter); } @@ -1361,12 +1457,16 @@ ServerDescriptorHelper::operator==(const ServerDescriptorHelper& helper) const { return false; } - + if(IceBoxDescriptorPtr::dynamicCast(_descriptor)) { IceBoxDescriptorPtr ilhs = IceBoxDescriptorPtr::dynamicCast(_descriptor); IceBoxDescriptorPtr irhs = IceBoxDescriptorPtr::dynamicCast(helper._descriptor); - + if(!irhs) + { + return false; + } + if(ilhs->endpoints != irhs->endpoints) { return false; @@ -1419,18 +1519,14 @@ ServerDescriptorHelper::operator==(const ServerDescriptorHelper& helper) const { if(!p->descriptor) { - ServiceInstanceDescriptor instance = *p; - instance.descriptor = 0; - lsvcs.insert(instance); + lsvcs.insert(*p); } } for(ServiceInstanceDescriptorSeq::const_iterator p = irhs->services.begin(); p != irhs->services.end(); ++p) { if(!p->descriptor) { - ServiceInstanceDescriptor instance = *p; - instance.descriptor = 0; - rsvcs.insert(instance); + rsvcs.insert(*p); } } if(lsvcs != rsvcs) diff --git a/cpp/src/IceGrid/LocatorI.cpp b/cpp/src/IceGrid/LocatorI.cpp index 7b6a4e3c840..4526ab438ad 100644 --- a/cpp/src/IceGrid/LocatorI.cpp +++ b/cpp/src/IceGrid/LocatorI.cpp @@ -166,10 +166,11 @@ LocatorI::findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& cb, const Ice::Identity& id, const Ice::Current& current) const { - ObjectDescriptor obj; + Ice::ObjectPrx proxy; + string adapterId; try { - obj = _database->getObjectDescriptor(id); + proxy = _database->getObjectProxy(id, adapterId); } catch(const ObjectNotExistException&) { @@ -181,14 +182,14 @@ LocatorI::findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& cb, // proxy (which might caused the server activation). This will avoid the client to lookup for // the adapter id endpoints. // - if(!obj.adapterId.empty()) + if(!adapterId.empty()) { - Ice::AMD_Locator_findAdapterByIdPtr amiCB = new AMD_Locator_findAdapterByIdI(cb, obj.proxy); - findAdapterById_async(amiCB, obj.adapterId, current); + Ice::AMD_Locator_findAdapterByIdPtr amiCB = new AMD_Locator_findAdapterByIdI(cb, proxy); + findAdapterById_async(amiCB, adapterId, current); } else { - cb->ice_response(obj.proxy); + cb->ice_response(proxy); } } diff --git a/cpp/src/IceGrid/LocatorRegistryI.cpp b/cpp/src/IceGrid/LocatorRegistryI.cpp index 89dad50fb33..84c3873405b 100644 --- a/cpp/src/IceGrid/LocatorRegistryI.cpp +++ b/cpp/src/IceGrid/LocatorRegistryI.cpp @@ -103,7 +103,8 @@ LocatorRegistryI::LocatorRegistryI(const DatabasePtr& database, bool dynamicRegi void LocatorRegistryI::setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb, - const string& id, + const string& serverId, + const string& adapterId, const Ice::ObjectPrx& proxy, const Ice::Current&) { @@ -115,14 +116,14 @@ LocatorRegistryI::setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_set // Get the adapter from the registry and set its direct proxy. // AMI_Adapter_setDirectProxyPtr amiCB = new AMI_Adapter_setDirectProxyI(cb); - _database->getAdapter(id)->setDirectProxy_async(amiCB, proxy); + _database->getAdapter(adapterId, serverId)->setDirectProxy_async(amiCB, proxy); return; } catch(const AdapterNotExistException&) { if(_dynamicRegistration) { - _database->setAdapterDirectProxy(id, proxy); + _database->setAdapterDirectProxy(adapterId, proxy); cb->ice_response(); return; } diff --git a/cpp/src/IceGrid/LocatorRegistryI.h b/cpp/src/IceGrid/LocatorRegistryI.h index 8ac72afe1be..747c2546408 100644 --- a/cpp/src/IceGrid/LocatorRegistryI.h +++ b/cpp/src/IceGrid/LocatorRegistryI.h @@ -27,7 +27,8 @@ public: LocatorRegistryI(const DatabasePtr&, bool); virtual void setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr&, - const ::std::string&, const ::Ice::ObjectPrx&, const ::Ice::Current&); + const std::string&, const std::string&, const Ice::ObjectPrx&, + const Ice::Current&); virtual void setServerProcessProxy_async(const Ice::AMD_LocatorRegistry_setServerProcessProxyPtr&, const ::std::string&, const ::Ice::ProcessPrx&, const ::Ice::Current&); diff --git a/cpp/src/IceGrid/Makefile b/cpp/src/IceGrid/Makefile index 4dac91046ae..ff474c04c3a 100644 --- a/cpp/src/IceGrid/Makefile +++ b/cpp/src/IceGrid/Makefile @@ -59,8 +59,12 @@ NODE_OBJS = NodeI.o \ REGISTRY_OBJS = RegistryI.o \ StringObjectProxyDict.o \ StringApplicationDescriptorDict.o \ - IdentityObjectDescDict.o \ + IdentityObjectInfoDict.o \ Database.o \ + AdapterCache.o \ + ObjectCache.o \ + ServerCache.o \ + NodeCache.o \ LocatorI.o \ LocatorRegistryI.o \ AdminI.o \ @@ -194,14 +198,14 @@ $(LOCAL_HDIR)/StringApplicationDescriptorDict.h StringApplicationDescriptorDict. clean:: rm -f StringApplicationDescriptorDict.h StringApplicationDescriptorDict.cpp -$(LOCAL_HDIR)/IdentityObjectDescDict.h IdentityObjectDescDict.cpp: $(SLICE2FREEZE) - rm -f IdentityObjectDescDict.h IdentityObjectDescDict.cpp - $(SLICE2FREEZECMD) --dict IceGrid::IdentityObjectDescDict,Ice::Identity,IceGrid::ObjectDescriptor \ - --dict-index IceGrid::IdentityObjectDescDict,type \ - IdentityObjectDescDict ../../slice/Ice/Identity.ice $(LOCAL_SDIR)/Internal.ice +$(LOCAL_HDIR)/IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp: $(SLICE2FREEZE) + rm -f IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp + $(SLICE2FREEZECMD) --dict IceGrid::IdentityObjectInfoDict,Ice::Identity,IceGrid::ObjectInfo \ + --dict-index IceGrid::IdentityObjectInfoDict,type \ + IdentityObjectInfoDict ../../slice/Ice/Identity.ice $(LOCAL_SDIR)/Internal.ice clean:: - rm -f IdentityObjectDescDict.h IdentityObjectDescDict.cpp + rm -f IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp $(LOCAL_HDIR)/StringObjectProxySeqDict.h StringObjectProxySeqDict.cpp: $(SLICE2FREEZE) rm -f StringObjectProxySeqDict.h StringObjectProxySeqDict.cpp diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp new file mode 100644 index 00000000000..7ba160e0129 --- /dev/null +++ b/cpp/src/IceGrid/NodeCache.cpp @@ -0,0 +1,125 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/Functional.h> + +#include <IceGrid/NodeCache.h> +#include <IceGrid/NodeSessionI.h> +#include <IceGrid/ServerCache.h> + +using namespace std; +using namespace IceGrid; + +NodeEntryPtr +NodeCache::get(const string& name, bool create) const +{ + Lock sync(*this); + NodeCache& self = const_cast<NodeCache&>(*this); + NodeEntryPtr entry = self.getImpl(name, create); + if(!entry) + { + NodeNotExistException ex; + ex.name = name; + throw ex; + } + return entry; +} + +NodeEntry::NodeEntry(Cache<string, NodeEntry>& cache, const std::string& name) : + _cache(cache), + _name(name) +{ +} + +void +NodeEntry::addServer(const ServerEntryPtr& entry) +{ + Lock sync(*this); + _servers.insert(make_pair(entry->getName(), entry)); +} + +void +NodeEntry::removeServer(const ServerEntryPtr& entry) +{ + bool remove = false; + { + Lock sync(*this); + _servers.erase(entry->getName()); + remove = _servers.empty() && !_session; + } + if(remove) + { + _cache.remove(_name); + } +} + +void +NodeEntry::setSession(const NodeSessionIPtr& session) +{ + bool remove = false; + { + Lock sync(*this); + if(session && _session) + { + throw NodeActiveException(); + } + _session = session; + remove = _servers.empty() && !_session; + } + if(remove) + { + _cache.remove(_name); + } + + if(session) + { + ServerEntrySeq entries; + { + Lock sync(*this); + for(map<string, ServerEntryPtr>::const_iterator q = _servers.begin() ; q != _servers.end(); ++q) + { + if(q->second->needsSync()) + { + entries.push_back(q->second); + } + } + } + for_each(entries.begin(), entries.end(), IceUtil::voidMemFun(&ServerEntry::sync)); + } +} + +NodePrx +NodeEntry::getProxy() const +{ + Lock sync(*this); + if(!_session) + { + throw NodeUnreachableException(); + } + return _session->getNode(); +} + +Ice::StringSeq +NodeEntry::getServers() const +{ + Lock sync(*this); + Ice::StringSeq names; + for(map<string, ServerEntryPtr>::const_iterator p = _servers.begin(); p != _servers.end(); ++p) + { + names.push_back(p->second->getName()); + } + return names; +} + +bool +NodeEntry::canRemove() +{ + Lock sync(*this); + return !_session && _servers.empty(); +} diff --git a/cpp/src/IceGrid/NodeCache.h b/cpp/src/IceGrid/NodeCache.h new file mode 100644 index 00000000000..73543df8d1c --- /dev/null +++ b/cpp/src/IceGrid/NodeCache.h @@ -0,0 +1,61 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_NODECACHE_H +#define ICE_GRID_NODECACHE_H + +#include <IceUtil/Mutex.h> +#include <IceUtil/Shared.h> +#include <IceGrid/Cache.h> + +namespace IceGrid +{ + +class NodeCache; + +class NodeSessionI; +typedef IceUtil::Handle<NodeSessionI> NodeSessionIPtr; + +class ServerEntry; +typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; + +class NodeEntry : public IceUtil::Shared, public IceUtil::Mutex +{ +public: + + NodeEntry(Cache<std::string, NodeEntry>&, const std::string&); + + void addServer(const ServerEntryPtr&); + void removeServer(const ServerEntryPtr&); + void setSession(const NodeSessionIPtr&); + + NodePrx getProxy() const; + Ice::StringSeq getServers() const; + + bool canRemove(); + +private: + + Cache<std::string, NodeEntry>& _cache; + const std::string _name; + NodeSessionIPtr _session; + std::map<std::string, ServerEntryPtr> _servers; +}; +typedef IceUtil::Handle<NodeEntry> NodeEntryPtr; + +class NodeCache : public CacheByString<NodeEntry> +{ +public: + + NodeEntryPtr get(const std::string&, bool = false) const; +}; + +}; + +#endif diff --git a/cpp/src/IceGrid/ObjectCache.cpp b/cpp/src/IceGrid/ObjectCache.cpp new file mode 100644 index 00000000000..700b0bba438 --- /dev/null +++ b/cpp/src/IceGrid/ObjectCache.cpp @@ -0,0 +1,147 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Ice/Communicator.h> +#include <Ice/IdentityUtil.h> + +#include <IceGrid/ObjectCache.h> +#include <IceGrid/NodeSessionI.h> +#include <IceGrid/ServerCache.h> + +using namespace std; +using namespace IceGrid; + +ObjectCache::ObjectCache(const Ice::CommunicatorPtr& communicator) : + _communicator(communicator) +{ +} + +void +ObjectCache::add(const string& adapterId, const ObjectDescriptor& desc) +{ + Lock sync(*this); + assert(!getImpl(desc.id)); + + ObjectEntryPtr entry = getImpl(desc.id, true); + entry->set(_communicator, adapterId, desc); + + map<string, set<Ice::Identity> >::iterator p = _types.find(entry->getType()); + if(p == _types.end()) + { + p = _types.insert(p, make_pair(entry->getType(), set<Ice::Identity>())); + } + p->second.insert(desc.id); +} + +ObjectEntryPtr +ObjectCache::get(const Ice::Identity& id) const +{ + Lock sync(*this); + ObjectCache& self = const_cast<ObjectCache&>(*this); + ObjectEntryPtr entry = self.getImpl(id); + if(!entry) + { + ObjectNotExistException ex; + ex.id = id; + throw ex; + } + return entry; +} + +ObjectEntryPtr +ObjectCache::remove(const Ice::Identity& id) +{ + Lock sync(*this); + ObjectEntryPtr entry = removeImpl(id); + assert(entry); + + map<string, set<Ice::Identity> >::iterator p = _types.find(entry->getType()); + assert(p != _types.end()); + p->second.erase(id); + if(p->second.empty()) + { + _types.erase(p); + } + + return entry; +} + +Ice::ObjectProxySeq +ObjectCache::getObjectsWithType(const string& type) +{ + Lock sync(*this); + Ice::ObjectProxySeq proxies; + map<string, set<Ice::Identity> >::const_iterator p = _types.find(type); + if(p == _types.end()) + { + return proxies; + } + for(set<Ice::Identity>::const_iterator q = p->second.begin(); q != p->second.end(); ++q) + { + proxies.push_back(getImpl(*q)->getProxy()); + } + return proxies; +} + +ObjectInfoSeq +ObjectCache::getAll(const string& expression) +{ + Lock sync(*this); + ObjectInfoSeq infos; + for(map<Ice::Identity, ObjectEntryPtr>::const_iterator p = _entries.begin(); p != _entries.end(); ++p) + { + if(expression.empty() || IceUtil::match(Ice::identityToString(p->first), expression, true)) + { + infos.push_back(p->second->getObjectInfo()); + } + } + return infos; +} + +ObjectEntry::ObjectEntry(Cache<Ice::Identity, ObjectEntry>&, const Ice::Identity&) +{ +} + +void +ObjectEntry::set(const Ice::CommunicatorPtr& communicator, const string& adapterId, const ObjectDescriptor& desc) +{ + _adapterId = adapterId; + _info.proxy = communicator->stringToProxy(Ice::identityToString(desc.id) + "@" + adapterId); + _info.type = desc.type; +} + +Ice::ObjectPrx +ObjectEntry::getProxy() const +{ + return _info.proxy; +} + +string +ObjectEntry::getAdapterId() const +{ + return _adapterId; +} + +string +ObjectEntry::getType() const +{ + return _info.type; +} + +const ObjectInfo& +ObjectEntry::getObjectInfo() const +{ + return _info; +} + +bool +ObjectEntry::canRemove() +{ + return true; +} diff --git a/cpp/src/IceGrid/ObjectCache.h b/cpp/src/IceGrid/ObjectCache.h new file mode 100644 index 00000000000..ab0467a71bb --- /dev/null +++ b/cpp/src/IceGrid/ObjectCache.h @@ -0,0 +1,71 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_OBJECTCACHE_H +#define ICE_GRID_OBJECTCACHE_H + +#include <IceUtil/Mutex.h> +#include <IceUtil/Shared.h> +#include <Ice/CommunicatorF.h> +#include <IceGrid/Cache.h> + +namespace IceGrid +{ + +class ObjectCache; + +class ServerEntry; +typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; + +class ObjectEntry; +typedef IceUtil::Handle<ObjectEntry> ObjectEntryPtr; + +class ObjectEntry : public IceUtil::Shared +{ +public: + + ObjectEntry(Cache<Ice::Identity, ObjectEntry>&, const Ice::Identity&); + + void set(const Ice::CommunicatorPtr&, const std::string&, const ObjectDescriptor&); + Ice::ObjectPrx getProxy() const; + std::string getAdapterId() const; + const ObjectInfo& getObjectInfo() const; + std::string getType() const; + + bool canRemove(); + +private: + + ObjectInfo _info; + std::string _adapterId; +}; +typedef IceUtil::Handle<ObjectEntry> ObjectEntryPtr; + +class ObjectCache : public Cache<Ice::Identity, ObjectEntry> +{ +public: + + ObjectCache(const Ice::CommunicatorPtr&); + + void add(const std::string&, const ObjectDescriptor&); + ObjectEntryPtr get(const Ice::Identity&) const; + ObjectEntryPtr remove(const Ice::Identity&); + + Ice::ObjectProxySeq getObjectsWithType(const std::string&); + ObjectInfoSeq getAll(const std::string&); + +private: + + const Ice::CommunicatorPtr _communicator; + std::map<std::string, std::set<Ice::Identity> > _types; +}; + +}; + +#endif diff --git a/cpp/src/IceGrid/Parser.cpp b/cpp/src/IceGrid/Parser.cpp index d0e5e986743..3ed052785c8 100644 --- a/cpp/src/IceGrid/Parser.cpp +++ b/cpp/src/IceGrid/Parser.cpp @@ -99,7 +99,7 @@ describeObjectAdapter(Output& out, const Ice::CommunicatorPtr& communicator, con if(!p->type.empty()) { out << sb; - out << nl << "proxy = '" << communicator->proxyToString(p->proxy) << "' "; + out << nl << "identity = '" << Ice::identityToString(p->id) << "' "; out << nl << "type = '" << p->type << "'"; out << eb; } @@ -554,7 +554,43 @@ Parser::describeApplication(const list<string>& args) { out << nl << "comment = " << application->comment; } - + if(!application->variables.empty()) + { + out << nl << "variables"; + out << sb; + for(StringStringDict::const_iterator p = application->variables.begin(); p != application->variables.end(); + ++p) + { + out << nl << p->first << " = '" << p->second << "'"; + } + out << eb; + } + if(!application->replicatedAdapters.empty()) + { + out << nl << "replicated adapters"; + out << sb; + for(ReplicatedAdapterDescriptorSeq::const_iterator p = application->replicatedAdapters.begin(); + p != application->replicatedAdapters.end(); ++p) + { + out << nl << "id = `" << p->id << "' load balancing = '"; + switch(p->loadBalancing) + { + case Random: + out << "random"; + break; + case RoundRobin: + out << "round-robin"; + break; + case Adaptive: + out << "adaptive"; + break; + default: + assert(false); + } + out << "'"; + } + out << eb; + } if(!application->serverTemplates.empty()) { out << nl << "server templates"; @@ -1471,31 +1507,32 @@ Parser::describeObject(const list<string>& args) { try { - ObjectDescriptorSeq objects; + ObjectInfoSeq objects; if(args.size() == 1) { string arg = *(args.begin()); if(arg.find('*') == string::npos) { - ObjectDescriptor desc = _admin->getObjectDescriptor(Ice::stringToIdentity(arg)); - cout << "proxy = '" << _communicator->proxyToString(desc.proxy) << "'" << endl; - cout << "type = '" << desc.type << "'" << endl; + ObjectInfo info = _admin->getObjectInfo(Ice::stringToIdentity(arg)); + cout << "proxy = '" << _communicator->proxyToString(info.proxy) << "'" << endl; + cout << "type = '" << info.type << "'" << endl; return; } else { - objects = _admin->getAllObjectDescriptors(arg); + objects = _admin->getAllObjectInfos(arg); } } else { - objects = _admin->getAllObjectDescriptors(""); + objects = _admin->getAllObjectInfos(""); } - for(ObjectDescriptorSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) + for(ObjectInfoSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) { cout << "proxy = `" << _communicator->proxyToString(p->proxy) << "' type = `" << p->type << "'" << endl; - } + } + } catch(const Ice::Exception& ex) { @@ -1510,17 +1547,17 @@ Parser::listObject(const list<string>& args) { try { - ObjectDescriptorSeq objects; + ObjectInfoSeq objects; if(args.size() == 1) { - objects = _admin->getAllObjectDescriptors(*(args.begin())); + objects = _admin->getAllObjectInfos(*(args.begin())); } else { - objects = _admin->getAllObjectDescriptors(""); + objects = _admin->getAllObjectInfos(""); } - for(ObjectDescriptorSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) + for(ObjectInfoSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) { cout << Ice::identityToString(p->proxy->ice_getIdentity()) << endl; } diff --git a/cpp/src/IceGrid/QueryI.cpp b/cpp/src/IceGrid/QueryI.cpp index 3fc35b5695d..ca325b97e2e 100644 --- a/cpp/src/IceGrid/QueryI.cpp +++ b/cpp/src/IceGrid/QueryI.cpp @@ -28,7 +28,8 @@ QueryI::~QueryI() Ice::ObjectPrx QueryI::findObjectById(const Ice::Identity& id, const Ice::Current&) const { - return _database->getObjectDescriptor(id).proxy; + string adapterId; + return _database->getObjectProxy(id, adapterId); } Ice::ObjectPrx diff --git a/cpp/src/IceGrid/RegistryI.cpp b/cpp/src/IceGrid/RegistryI.cpp index 11815956f79..48958799369 100644 --- a/cpp/src/IceGrid/RegistryI.cpp +++ b/cpp/src/IceGrid/RegistryI.cpp @@ -264,15 +264,15 @@ RegistryI::start(bool nowarn) ObjectPrx queryPrx = clientAdapter->createDirectProxy(queryId); try { - _database->removeObjectDescriptor(queryPrx->ice_getIdentity()); + _database->removeObject(queryPrx->ice_getIdentity()); } catch(const ObjectNotExistException&) { } - ObjectDescriptor desc; - desc.proxy = queryPrx; - desc.type = "::IceGrid::Query"; - _database->addObjectDescriptor(desc); + ObjectInfo info; + info.proxy = queryPrx; + info.type = "::IceGrid::Query"; + _database->addObject(info); // // Create the admin interface and register it with the object registry. @@ -284,14 +284,14 @@ RegistryI::start(bool nowarn) ObjectPrx adminPrx = adminAdapter->createDirectProxy(adminId); try { - _database->removeObjectDescriptor(adminPrx->ice_getIdentity()); + _database->removeObject(adminPrx->ice_getIdentity()); } catch(const ObjectNotExistException&) { } - desc.proxy = adminPrx; - desc.type = "::IceGrid::Admin"; - _database->addObjectDescriptor(desc); + info.proxy = adminPrx; + info.type = "::IceGrid::Admin"; + _database->addObject(info); // // Set the IceGrid.Registry.Internal adapter direct proxy directly in the database. @@ -368,14 +368,14 @@ RegistryI::start(bool nowarn) ObjectPrx sessionManagerPrx = adminAdapter->createDirectProxy(sessionManagerId); try { - _database->removeObjectDescriptor(sessionManagerPrx->ice_getIdentity()); + _database->removeObject(sessionManagerPrx->ice_getIdentity()); } catch(const ObjectNotExistException&) { } - desc.proxy = sessionManagerPrx; - desc.type = "::IceGrid::SessionManager"; - _database->addObjectDescriptor(desc); + info.proxy = sessionManagerPrx; + info.type = "::IceGrid::SessionManager"; + _database->addObject(info); // // We are ready to go! diff --git a/cpp/src/IceGrid/ServerAdapterI.cpp b/cpp/src/IceGrid/ServerAdapterI.cpp index 2390dae9a4b..451e43e676d 100644 --- a/cpp/src/IceGrid/ServerAdapterI.cpp +++ b/cpp/src/IceGrid/ServerAdapterI.cpp @@ -18,11 +18,13 @@ using namespace IceGrid; ServerAdapterI::ServerAdapterI(const NodeIPtr& node, const ServerIPtr& server, + const string& serverName, const AdapterPrx& proxy, const string& id, Ice::Int waitTime) : _node(node), _this(proxy), + _serverId(serverName), _id(id), _server(server), _waitTime(IceUtil::Time::seconds(waitTime)) @@ -50,7 +52,7 @@ ServerAdapterI::activate_async(const AMD_Adapter_activatePtr& cb, const Ice::Cur if(_node->getTraceLevels()->adapter > 2) { Ice::Trace out(_node->getTraceLevels()->logger, _node->getTraceLevels()->adapterCat); - out << "waiting for activation of server adapter `" << _id << "'"; + out << "waiting for activation of server `" + _serverId + "' adapter `" << _id << "'"; } _activateCB.push_back(cb); @@ -164,7 +166,7 @@ ServerAdapterI::setDirectProxy(const Ice::ObjectPrx& prx, const Ice::Current& cu if(_node->getTraceLevels()->adapter > 1) { Ice::Trace out(_node->getTraceLevels()->logger, _node->getTraceLevels()->adapterCat); - out << "server adapter `" << _id << "' " << (_proxy ? "activated" : "deactivated"); + out << "server `" + _serverId + "' adapter `" << _id << "' " << (_proxy ? "activated" : "deactivated"); } } @@ -187,11 +189,11 @@ ServerAdapterI::activationFailed(bool timeout) Ice::Trace out(_node->getTraceLevels()->logger, _node->getTraceLevels()->adapterCat); if(timeout) { - out << "server adapter `" << _id << "' activation timed out"; + out << "server `" + _serverId + "' adapter `" << _id << "' activation timed out"; } else { - out << "server adapter `" << _id << "' activation failed, couldn't start the server"; + out << "server `" + _serverId + "' adapter `" << _id << "' activation failed: server didn't start"; } } diff --git a/cpp/src/IceGrid/ServerAdapterI.h b/cpp/src/IceGrid/ServerAdapterI.h index 4a7f5644eee..6dfdf5933f1 100644 --- a/cpp/src/IceGrid/ServerAdapterI.h +++ b/cpp/src/IceGrid/ServerAdapterI.h @@ -26,7 +26,8 @@ class ServerAdapterI : public Adapter, public IceUtil::Mutex { public: - ServerAdapterI(const NodeIPtr&, const ServerIPtr&, const AdapterPrx&, const std::string&, Ice::Int); + ServerAdapterI(const NodeIPtr&, const ServerIPtr&, const std::string&, const AdapterPrx&, const std::string&, + Ice::Int); virtual ~ServerAdapterI(); virtual void activate_async(const AMD_Adapter_activatePtr& cb, const Ice::Current&); @@ -40,6 +41,7 @@ private: const NodeIPtr _node; const AdapterPrx _this; + const std::string _serverId; const std::string _id; const ServerIPtr _server; const IceUtil::Time _waitTime; diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp new file mode 100644 index 00000000000..0fc2ca76c5a --- /dev/null +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -0,0 +1,512 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceGrid/ServerCache.h> +#include <IceGrid/Database.h> +#include <IceGrid/TraceLevels.h> +#include <IceGrid/Util.h> + +using namespace std; +using namespace IceGrid; + +namespace IceGrid +{ + + struct AddComponent : std::unary_function<ComponentDescriptorPtr&, void> + { + AddComponent(ServerCache& serverCache, const ServerEntryPtr& entry) : + _serverCache(serverCache), _entry(entry) + { + } + + void + operator()(const ComponentDescriptorPtr& desc) + { + _serverCache.addComponent(desc, _entry); + } + + ServerCache& _serverCache; + const ServerEntryPtr _entry; + }; + + struct RemoveComponent : std::unary_function<ComponentDescriptorPtr&, void> + { + RemoveComponent(ServerCache& serverCache, const ServerEntryPtr& entry) : + _serverCache(serverCache), _entry(entry) + { + } + + void + operator()(const ComponentDescriptorPtr& desc) + { + _serverCache.removeComponent(desc, _entry); + } + + ServerCache& _serverCache; + const ServerEntryPtr _entry; + }; +} + +ServerCache::ServerCache(Database& db, NodeCache& nodeCache, AdapterCache& adapterCache, ObjectCache& objectCache) : + _database(db), _nodeCache(nodeCache), _adapterCache(adapterCache), _objectCache(objectCache) +{ +} + +ServerEntryPtr +ServerCache::add(const string& name, const ServerInstanceDescriptor& instance, const string& application) +{ + Lock sync(*this); + + ServerEntryPtr entry = getImpl(name, true); + entry->update(instance, application); + _nodeCache.get(instance.node, true)->addServer(entry); + + forEachComponent(AddComponent(*this, entry))(instance); + return entry; +} + +ServerEntryPtr +ServerCache::get(const string& name) +{ + Lock sync(*this); + ServerEntryPtr entry = getImpl(name); + if(!entry) + { + ServerNotExistException ex; + ex.name = name; + throw ex; + } + return entry; +} + +ServerEntryPtr +ServerCache::update(const ServerInstanceDescriptor& instance) +{ + Lock sync(*this); + + ServerEntryPtr entry = getImpl(instance.descriptor->name); + assert(entry); + + ServerInstanceDescriptor old = entry->getDescriptor(); + forEachComponent(RemoveComponent(*this, entry))(old); + + // + // If the node changed, move the server from the old node to the + // new one. + // + if(old.node != instance.node) + { + _nodeCache.get(old.node)->removeServer(entry); + _nodeCache.get(instance.node)->addServer(entry); + } + + forEachComponent(AddComponent(*this, entry))(instance); + entry->update(instance); + + return entry; +} + +ServerEntryPtr +ServerCache::remove(const string& name) +{ + Lock sync(*this); + + ServerEntryPtr entry = getImpl(name); + ServerInstanceDescriptor instance = entry->getDescriptor(); + entry->destroy(); + _nodeCache.get(instance.node)->removeServer(entry); + + forEachComponent(RemoveComponent(*this, entry))(instance); + + return entry; +} + +void +ServerCache::clear(const string& name) +{ + Lock sync(*this); + CacheByString<ServerEntry>::removeImpl(name); +} + +Database& +ServerCache::getDatabase() const +{ + return _database; +} + +void +ServerCache::addComponent(const ComponentDescriptorPtr& component, const ServerEntryPtr& entry) +{ + for(AdapterDescriptorSeq::const_iterator q = component->adapters.begin() ; q != component->adapters.end(); ++q) + { + _adapterCache.get(q->id, true)->addServer(entry); + for(ObjectDescriptorSeq::const_iterator r = q->objects.begin(); r != q->objects.end(); ++r) + { + _objectCache.add(q->id, *r); + } + } +} + +void +ServerCache::removeComponent(const ComponentDescriptorPtr& component, const ServerEntryPtr& entry) +{ + for(AdapterDescriptorSeq::const_iterator q = component->adapters.begin() ; q != component->adapters.end(); ++q) + { + _adapterCache.get(q->id)->removeServer(entry); + for(ObjectDescriptorSeq::const_iterator r = q->objects.begin(); r != q->objects.end(); ++r) + { + _objectCache.remove(r->id); + } + } +} + +ServerEntry::ServerEntry(Cache<string, ServerEntry>& cache, const string& name) : + _cache(*dynamic_cast<ServerCache*>(&cache)), + _name(name), + _synchronizing(false) +{ +} + +void +ServerEntry::sync() +{ + map<string, AdapterPrx> adapters; + int at, dt; + try + { + sync(adapters, at, dt); + } + catch(const NodeUnreachableException&) + { + } +} + +bool +ServerEntry::needsSync() const +{ + Lock sync(*this); + return _failed; +} + +void +ServerEntry::update(const ServerInstanceDescriptor& instance, const std::string& application) +{ + Lock sync(*this); + + auto_ptr<ServerInstanceDescriptor> descriptor(new ServerInstanceDescriptor()); + *descriptor = instance; + + if(!application.empty()) + { + _application = application; + } + + if(_loaded.get() && descriptor->node != _loaded->node) + { + assert(!_destroy.get()); + _destroy = _loaded; + } + else if(_load.get() && descriptor->node != _load->node) + { + assert(!_destroy.get()); + _destroy = _load; + } + + _load = descriptor; + _loaded.reset(0); + _proxy = 0; + _adapters.clear(); +} + +void +ServerEntry::destroy() +{ + Lock sync(*this); + + assert(_loaded.get() || _load.get()); + if(_loaded.get()) + { + assert(!_destroy.get()); + _destroy = _loaded; + } + else if(_load.get()) + { + assert(!_destroy.get()); + _destroy = _load; + } + + _load.reset(0); + _loaded.reset(0); + _proxy = 0; + _adapters.clear(); +} + +ServerInstanceDescriptor +ServerEntry::getDescriptor() const +{ + Lock sync(*this); + if(!_loaded.get() && !_load.get()) + { + throw ServerNotExistException(); + } + if(_proxy) + { + return *_loaded.get(); + } + else + { + return *_load.get(); + } +} + +string +ServerEntry::getApplication() const +{ + Lock sync(*this); + if(!_loaded.get() && !_load.get()) + { + throw ServerNotExistException(); + } + return _application; +} + +string +ServerEntry::getName() const +{ + return _name; +} + +ServerPrx +ServerEntry::getProxy(int& activationTimeout, int& deactivationTimeout) +{ + ServerPrx proxy; + { + Lock sync(*this); + if(_proxy) // Synced + { + proxy = _proxy; + activationTimeout = _activationTimeout; + deactivationTimeout = _deactivationTimeout; + } + } + + if(proxy) + { + try + { + proxy->ice_ping(); + return proxy; + } + catch(const Ice::LocalException& ex) + { + } + } + + StringAdapterPrxDict adapters; + proxy = sync(adapters, activationTimeout, deactivationTimeout); + if(!proxy) + { + throw ServerNotExistException(); + } + return proxy; +} + +AdapterPrx +ServerEntry::getAdapter(const string& id) +{ + AdapterPrx proxy; + { + Lock sync(*this); + if(_proxy) // Synced + { + proxy = _adapters[id]; + } + } + + if(proxy) + { + try + { + proxy->ice_ping(); + return proxy; + } + catch(const Ice::LocalException& ex) + { + } + } + + StringAdapterPrxDict adapters; + int activationTimeout, deactivationTimeout; + sync(adapters, activationTimeout, deactivationTimeout); + AdapterPrx adapter = adapters[id]; + if(!adapter) + { + throw AdapterNotExistException(); + } + return adapter; +} + +ServerPrx +ServerEntry::sync(map<string, AdapterPrx>& adapters, int& activationTimeout, int& deactivationTimeout) +{ + ServerDescriptorPtr load; + string loadNode; + ServerDescriptorPtr destroy; + string destroyNode; + { + Lock sync(*this); + while(_synchronizing) + { + wait(); + } + + if(!_load.get() && !_destroy.get()) + { + _load = _loaded; // Re-load the current server. + } + + _synchronizing = true; + _failed = false; + if(_load.get()) + { + load = _load->descriptor; + loadNode = _load->node; + } + if(_destroy.get()) + { + destroy = _destroy->descriptor; + destroyNode = _destroy->node; + } + } + + ServerPrx proxy; + Database& db = _cache.getDatabase(); + try + { + if(destroy) + { + try + { + db.getNode(destroyNode)->destroyServer(destroy->name); + } + catch(const NodeNotExistException& ex) + { + if(!load) + { + throw NodeUnreachableException(); + } + } + catch(const Ice::LocalException& ex) + { + if(!load) + { + throw NodeUnreachableException(); + } + } + } + + if(load) + { + try + { + proxy = db.getNode(loadNode)->loadServer(load, adapters, activationTimeout, deactivationTimeout); + proxy = ServerPrx::uncheckedCast(proxy->ice_collocationOptimization(false)); + } + catch(const NodeNotExistException& ex) + { + throw NodeUnreachableException(); + } + catch(const DeploymentException& ex) + { + Ice::Warning out(db.getTraceLevels()->logger); + out << "failed to load server on node `" << loadNode << "':\n" << ex; + throw NodeUnreachableException(); + } + catch(const Ice::LocalException& ex) + { + Ice::Warning out(db.getTraceLevels()->logger); + out << "unexpected exception while loading on node `" << loadNode << "':\n" << ex; + throw NodeUnreachableException(); + } + } + } + catch(const NodeUnreachableException& ex) + { + { + Lock sync(*this); + _synchronizing = false; + _destroy.reset(0); + _failed = true; + notifyAll(); + } + if(!load && destroy) + { + _cache.clear(destroy->name); + } + throw; + } + + { + Lock sync(*this); + _synchronizing = false; + _loaded = _load; + _load.reset(0); + _destroy.reset(0); + + // + // Set timeout on server and adapter proxies. Most of the + // calls on the proxies shouldn't block for longer than the + // node session timeout. Calls that might block for a longer + // time should set the correct timeout before invoking on the + // proxy (e.g.: server start/stop, adapter activate). + // + if(proxy) + { + int timeout = db.getNodeSessionTimeout() * 1000; // sec to ms + _proxy = ServerPrx::uncheckedCast(proxy->ice_timeout(timeout)); + _adapters.clear(); + for(StringAdapterPrxDict::const_iterator p = adapters.begin(); p != adapters.end(); ++p) + { + AdapterPrx adapter = AdapterPrx::uncheckedCast(p->second->ice_timeout(timeout)); + _adapters.insert(make_pair(p->first, adapter)); + } + activationTimeout += timeout; + deactivationTimeout += timeout; + _activationTimeout = activationTimeout; + _deactivationTimeout = deactivationTimeout; + } + else + { + _proxy = 0; + _adapters.clear(); + _activationTimeout = 0; + _deactivationTimeout = 0; + } + notifyAll(); + } + if(!load && destroy) + { + _cache.clear(destroy->name); + } + return proxy; +} + +bool +ServerEntry::isDestroyed() +{ + Lock sync(*this); + return !_loaded.get() && !_load.get(); +} + +bool +ServerEntry::canRemove() +{ + Lock sync(*this); + return !_loaded.get() && !_load.get() && !_destroy.get(); +} diff --git a/cpp/src/IceGrid/ServerCache.h b/cpp/src/IceGrid/ServerCache.h new file mode 100644 index 00000000000..56bc4cb16c8 --- /dev/null +++ b/cpp/src/IceGrid/ServerCache.h @@ -0,0 +1,103 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_SERVERCACHE_H +#define ICE_GRID_SERVERCACHE_H + +#include <IceUtil/Mutex.h> +#include <IceUtil/Shared.h> +#include <IceGrid/Descriptor.h> +#include <IceGrid/Internal.h> +#include <IceGrid/Cache.h> +#include <IceGrid/NodeCache.h> + +namespace IceGrid +{ + +class Database; + +class ServerCache; +class AdapterCache; +class ObjectCache; + +class ServerEntry : public IceUtil::Shared, public IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + ServerEntry(Cache<std::string, ServerEntry>&, const std::string&); + + void sync(); + bool needsSync() const; + void update(const ServerInstanceDescriptor&, const std::string& = std::string()); + void destroy(); + + ServerInstanceDescriptor getDescriptor() const; + std::string getApplication() const; + std::string getName() const; + + ServerPrx getProxy(int&, int&); + AdapterPrx getAdapter(const std::string&); + + bool canRemove(); + bool isDestroyed(); + +private: + + ServerPrx sync(StringAdapterPrxDict&, int&, int&); + + ServerCache& _cache; + const std::string _name; + std::auto_ptr<ServerInstanceDescriptor> _loaded; + std::auto_ptr<ServerInstanceDescriptor> _load; + std::auto_ptr<ServerInstanceDescriptor> _destroy; + std::string _application; + + ServerPrx _proxy; + std::map<std::string, AdapterPrx> _adapters; + int _activationTimeout; + int _deactivationTimeout; + + bool _synchronizing; + bool _failed; +}; +typedef IceUtil::Handle<ServerEntry> ServerEntryPtr; +typedef std::vector<ServerEntryPtr> ServerEntrySeq; + +class ServerCache : public CacheByString<ServerEntry> +{ +public: + + ServerCache(Database&, NodeCache&, AdapterCache&, ObjectCache&); + + ServerEntryPtr add(const std::string&, const ServerInstanceDescriptor&, const std::string&); + ServerEntryPtr get(const std::string&); + ServerEntryPtr update(const ServerInstanceDescriptor&); + ServerEntryPtr remove(const std::string&); + + void clear(const std::string&); + + Database& getDatabase() const; + +private: + + void addComponent(const ComponentDescriptorPtr&, const ServerEntryPtr&); + void removeComponent(const ComponentDescriptorPtr&, const ServerEntryPtr&); + + friend struct AddComponent; + friend struct RemoveComponent; + + Database& _database; + NodeCache& _nodeCache; + AdapterCache& _adapterCache; + ObjectCache& _objectCache; +}; + +}; + +#endif diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp index dbbce6c3467..700fe32da2d 100644 --- a/cpp/src/IceGrid/ServerI.cpp +++ b/cpp/src/IceGrid/ServerI.cpp @@ -977,12 +977,12 @@ ServerI::addAdapter(const AdapterDescriptor& descriptor, const Ice::Current& cur { Ice::Identity id; id.category = "IceGridServerAdapter"; - id.name = _desc->name + "-" + descriptor.id; + id.name = _desc->name + "-" + descriptor.id + "-" + _desc->name; AdapterPrx proxy = AdapterPrx::uncheckedCast(current.adapter->createProxy(id)); ServerAdapterIPtr servant = ServerAdapterIPtr::dynamicCast(current.adapter->find(id)); if(!servant) { - servant = new ServerAdapterI(_node, this, proxy, descriptor.id, _waitTime); + servant = new ServerAdapterI(_node, this, _desc->name, proxy, descriptor.id, _waitTime); current.adapter->add(servant, id); } _adapters.insert(make_pair(descriptor.id, servant)); @@ -1180,3 +1180,4 @@ ServerI::toServerState(InternalServerState st) const return IceGrid::Destroyed; } } + diff --git a/cpp/src/IcePack/LocatorRegistryI.cpp b/cpp/src/IcePack/LocatorRegistryI.cpp index f7bc1dba603..6720c6f08cb 100644 --- a/cpp/src/IcePack/LocatorRegistryI.cpp +++ b/cpp/src/IcePack/LocatorRegistryI.cpp @@ -108,6 +108,7 @@ IcePack::LocatorRegistryI::LocatorRegistryI(const AdapterRegistryPtr& adapterReg void IcePack::LocatorRegistryI::setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb, + const string&, const string& id, const Ice::ObjectPrx& proxy, const Ice::Current&) diff --git a/cpp/src/IcePack/LocatorRegistryI.h b/cpp/src/IcePack/LocatorRegistryI.h index 403de7d65cf..f623e0bb6b8 100644 --- a/cpp/src/IcePack/LocatorRegistryI.h +++ b/cpp/src/IcePack/LocatorRegistryI.h @@ -27,7 +27,8 @@ public: LocatorRegistryI(const AdapterRegistryPtr&, const ServerRegistryPtr&, const AdapterFactoryPtr&, bool); virtual void setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr&, - const ::std::string&, const ::Ice::ObjectPrx&, const ::Ice::Current&); + const std::string&, const ::std::string&, const ::Ice::ObjectPrx&, + const ::Ice::Current&); virtual void setServerProcessProxy_async(const Ice::AMD_LocatorRegistry_setServerProcessProxyPtr&, const ::std::string&, const ::Ice::ProcessPrx&, const ::Ice::Current&); |