summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-07-08 13:47:30 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-07-08 13:47:30 +0000
commit99894938dbde9a0bb10fc1998d9863cae52b8977 (patch)
tree5b68e52e9a62792f11d8a4e2c844d394cd39f496 /cpp
parentFixed Ice interoperability issue (diff)
downloadice-99894938dbde9a0bb10fc1998d9863cae52b8977.tar.bz2
ice-99894938dbde9a0bb10fc1998d9863cae52b8977.tar.xz
ice-99894938dbde9a0bb10fc1998d9863cae52b8977.zip
More adapter replication changes.
Diffstat (limited to 'cpp')
-rw-r--r--cpp/slice/Ice/Locator.ice8
-rw-r--r--cpp/slice/IceGrid/Admin.ice23
-rw-r--r--cpp/slice/IceGrid/Descriptor.ice73
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp2
-rw-r--r--cpp/src/IceGrid/.depend30
-rw-r--r--cpp/src/IceGrid/AdapterCache.cpp106
-rw-r--r--cpp/src/IceGrid/AdapterCache.h63
-rw-r--r--cpp/src/IceGrid/AdminI.cpp27
-rw-r--r--cpp/src/IceGrid/AdminI.h4
-rw-r--r--cpp/src/IceGrid/Cache.h150
-rw-r--r--cpp/src/IceGrid/Database.cpp831
-rw-r--r--cpp/src/IceGrid/Database.h80
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp512
-rw-r--r--cpp/src/IceGrid/LocatorI.cpp13
-rw-r--r--cpp/src/IceGrid/LocatorRegistryI.cpp7
-rw-r--r--cpp/src/IceGrid/LocatorRegistryI.h3
-rw-r--r--cpp/src/IceGrid/Makefile18
-rw-r--r--cpp/src/IceGrid/NodeCache.cpp125
-rw-r--r--cpp/src/IceGrid/NodeCache.h61
-rw-r--r--cpp/src/IceGrid/ObjectCache.cpp147
-rw-r--r--cpp/src/IceGrid/ObjectCache.h71
-rw-r--r--cpp/src/IceGrid/Parser.cpp65
-rw-r--r--cpp/src/IceGrid/QueryI.cpp3
-rw-r--r--cpp/src/IceGrid/RegistryI.cpp26
-rw-r--r--cpp/src/IceGrid/ServerAdapterI.cpp10
-rw-r--r--cpp/src/IceGrid/ServerAdapterI.h4
-rw-r--r--cpp/src/IceGrid/ServerCache.cpp512
-rw-r--r--cpp/src/IceGrid/ServerCache.h103
-rw-r--r--cpp/src/IceGrid/ServerI.cpp5
-rw-r--r--cpp/src/IcePack/LocatorRegistryI.cpp1
-rw-r--r--cpp/src/IcePack/LocatorRegistryI.h3
-rw-r--r--cpp/test/Ice/location/ServerLocator.cpp4
-rw-r--r--cpp/test/Ice/location/ServerLocator.h3
-rw-r--r--cpp/test/IceGrid/deployer/AllTests.cpp10
-rw-r--r--cpp/test/IceGrid/deployer/application.xml4
-rw-r--r--cpp/test/IceGrid/deployer/service.xml3
-rw-r--r--cpp/test/IceGrid/update/AllTests.cpp10
37 files changed, 2107 insertions, 1013 deletions
diff --git a/cpp/slice/Ice/Locator.ice b/cpp/slice/Ice/Locator.ice
index 29257b39dd2..06a0db5c8e7 100644
--- a/cpp/slice/Ice/Locator.ice
+++ b/cpp/slice/Ice/Locator.ice
@@ -129,7 +129,9 @@ interface LocatorRegistry
*
* Set the adapter endpoints with the locator registry.
*
- * @param id The adapter id.
+ * @param serverId The server id.
+ *
+ * @param adapterId The adapter id.
*
* @param proxy The adapter proxy (a dummy direct proxy created
* by the adapter). The direct proxy contains the adapter
@@ -144,8 +146,8 @@ interface LocatorRegistry
* id is already active.
*
**/
- ["amd"] idempotent void setAdapterDirectProxy(string id, Object* proxy)
- throws AdapterNotFoundException, AdapterAlreadyActiveException;
+ ["amd"] idempotent void setAdapterDirectProxy(string serverId, string adapterId, Object* proxy)
+ throws ServerNotFoundException, AdapterNotFoundException, AdapterAlreadyActiveException;
#ifndef ICEE
/**
diff --git a/cpp/slice/IceGrid/Admin.ice b/cpp/slice/IceGrid/Admin.ice
index 22a7c46f494..b886236fc76 100644
--- a/cpp/slice/IceGrid/Admin.ice
+++ b/cpp/slice/IceGrid/Admin.ice
@@ -44,6 +44,16 @@ enum ServerActivation
Manual
};
+struct ObjectInfo
+{
+ /** The proxy of the object. */
+ Object* proxy;
+
+ /** The type of the object. */
+ string type;
+};
+sequence<ObjectInfo> ObjectInfoSeq;
+
/**
*
* The &IceGrid; administrative interface. <warning><para>Allowing
@@ -421,34 +431,33 @@ interface Admin
/**
*
- * Get the object descriptor if the object with the given
- * identity.
+ * Get the object info for the object with the given identity.
*
* @param id The identity of the object.
*
- * @return The object descriptor.
+ * @return The object info.
*
* @throws ObjectNotExistExcpetion Raised if the object cannot be
* found.
*
**/
- nonmutating ObjectDescriptor getObjectDescriptor(Ice::Identity id)
+ nonmutating ObjectInfo getObjectInfo(Ice::Identity id)
throws ObjectNotExistException;
/**
*
- * Get the descriptors of all registered objects whose stringified
+ * Get the object info of all the registered objects whose stringified
* identities match the given expression.
*
* @param expr The expression to match against the stringified
* identities of registered objects. The expression may contain
* a trailing wildcard (<literal>*</literal>) character.
*
- * @return All the object descriptors with a stringified identity
+ * @return All the object info with a stringified identity
* matching the given expression.
*
**/
- nonmutating ObjectDescriptorSeq getAllObjectDescriptors(string expr);
+ nonmutating ObjectInfoSeq getAllObjectInfos(string expr);
/**
*
diff --git a/cpp/slice/IceGrid/Descriptor.ice b/cpp/slice/IceGrid/Descriptor.ice
index a3e4ad6c5ed..a46de07c2b1 100644
--- a/cpp/slice/IceGrid/Descriptor.ice
+++ b/cpp/slice/IceGrid/Descriptor.ice
@@ -39,10 +39,10 @@ struct ObjectDescriptor
{
/**
*
- * The object proxy.
+ * The identity of the object.
*
**/
- Object* proxy;
+ Ice::Identity id;
/**
*
@@ -50,13 +50,6 @@ struct ObjectDescriptor
*
**/
string type;
-
- /**
- *
- * The object adapter id.
- *
- **/
- string adapterId;
};
/**
@@ -313,6 +306,13 @@ struct ServerInstanceDescriptor
/**
*
+ * The template parameter values.
+ *
+ **/
+ StringStringDict parameterValues;
+
+ /**
+ *
* The node hosting the server.
*
**/
@@ -320,10 +320,10 @@ struct ServerInstanceDescriptor
/**
*
- * The template parameter values.
+ * The targets used to deploy this instance.
*
**/
- StringStringDict parameterValues;
+ Ice::StringSeq targets;
/**
*
@@ -332,14 +332,7 @@ struct ServerInstanceDescriptor
* template and the instance variables.)
*
**/
- ServerDescriptor descriptor;
-
- /**
- *
- * The targets used to deploy this instance.
- *
- **/
- Ice::StringSeq targets;
+ ServerDescriptor descriptor;
};
["java:type:java.util.LinkedList"] sequence<ServerInstanceDescriptor> ServerInstanceDescriptorSeq;
@@ -361,19 +354,19 @@ struct ServiceInstanceDescriptor
/**
*
- * The instantiated component descriptor (NOTE: this is provided
- * as a convenience. This descriptor can also be computed from the
- * template and the instance variables.)
+ * The targets used to deploy this instance.
*
**/
- ServiceDescriptor descriptor;
-
+ Ice::StringSeq targets;
+
/**
*
- * The targets used to deploy this instance.
+ * The instantiated component descriptor (NOTE: this is provided
+ * as a convenience. This descriptor can also be computed from the
+ * template and the instance variables.)
*
**/
- Ice::StringSeq targets;
+ ServiceDescriptor descriptor;
};
["java:type:java.util.LinkedList"] sequence<ServiceInstanceDescriptor> ServiceInstanceDescriptorSeq;
@@ -488,6 +481,13 @@ class ApplicationDescriptor
/**
*
+ * The replicated adapters.
+ *
+ **/
+ ReplicatedAdapterDescriptorSeq replicatedAdapters;
+
+ /**
+ *
* The server templates.
*
**/
@@ -516,13 +516,6 @@ class ApplicationDescriptor
/**
*
- * The replicated adapters.
- *
- **/
- ReplicatedAdapterDescriptorSeq replicatedAdapters;
-
- /**
- *
* The targets used to deploy the application.
*
**/
@@ -586,6 +579,20 @@ struct ApplicationUpdateDescriptor
/**
*
+ * The replicated adapters to update.
+ *
+ **/
+ ReplicatedAdapterDescriptorSeq replicatedAdapters;
+
+ /**
+ *
+ * The replicated adapters to remove.
+ *
+ **/
+ Ice::StringSeq removeReplicatedAdapters;
+
+ /**
+ *
* The server templates to update.
*
**/
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&);
diff --git a/cpp/test/Ice/location/ServerLocator.cpp b/cpp/test/Ice/location/ServerLocator.cpp
index 3da2300fb15..42c431d0a93 100644
--- a/cpp/test/Ice/location/ServerLocator.cpp
+++ b/cpp/test/Ice/location/ServerLocator.cpp
@@ -19,8 +19,8 @@ ServerLocatorRegistry::ServerLocatorRegistry()
void
ServerLocatorRegistry::setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb,
- const ::std::string& adapter, const ::Ice::ObjectPrx& object,
- const ::Ice::Current&)
+ const std::string&, const ::std::string& adapter,
+ const ::Ice::ObjectPrx& object, const ::Ice::Current&)
{
_adapters[adapter] = object;
cb->ice_response();
diff --git a/cpp/test/Ice/location/ServerLocator.h b/cpp/test/Ice/location/ServerLocator.h
index d155e4c0067..988ebc117d2 100644
--- a/cpp/test/Ice/location/ServerLocator.h
+++ b/cpp/test/Ice/location/ServerLocator.h
@@ -20,7 +20,8 @@ public:
ServerLocatorRegistry();
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/test/IceGrid/deployer/AllTests.cpp b/cpp/test/IceGrid/deployer/AllTests.cpp
index 6a53a763a8c..389330d1455 100644
--- a/cpp/test/IceGrid/deployer/AllTests.cpp
+++ b/cpp/test/IceGrid/deployer/AllTests.cpp
@@ -364,7 +364,15 @@ allTests(const Ice::CommunicatorPtr& communicator, bool withTemplates)
update.servers.push_back(icebox2);
}
- admin->updateApplication(update);
+ try
+ {
+ admin->updateApplication(update);
+ }
+ catch(const DeploymentException& ex)
+ {
+ cerr << ex << ":\n" << ex.reason << endl;
+ test(false);
+ }
test(admin->startServer("Server1")); // Ensure Server1 is back.
try
diff --git a/cpp/test/IceGrid/deployer/application.xml b/cpp/test/IceGrid/deployer/application.xml
index 8353d994da0..1c49d7d6344 100644
--- a/cpp/test/IceGrid/deployer/application.xml
+++ b/cpp/test/IceGrid/deployer/application.xml
@@ -2,6 +2,8 @@
<application name="test">
+ <replicated-adapter id="ReplicatedAdapter"/>
+
<node name="localnode">
<include name="IceBox1" descriptor="icebox.xml"/>
@@ -13,4 +15,4 @@
</application>
-</icegrid> \ No newline at end of file
+</icegrid>
diff --git a/cpp/test/IceGrid/deployer/service.xml b/cpp/test/IceGrid/deployer/service.xml
index addbc956482..9ccb36f8e79 100644
--- a/cpp/test/IceGrid/deployer/service.xml
+++ b/cpp/test/IceGrid/deployer/service.xml
@@ -6,6 +6,7 @@
<adapter name="${name}" endpoints="default">
<object identity="${server}-${name}" type="::Test"/>
</adapter>
+ <adapter name="${name}.Replicated" endpoints="default" id="ReplicatedAdapter"/>
</adapters>
<properties>
@@ -23,4 +24,4 @@
</service>
-</icegrid> \ No newline at end of file
+</icegrid>
diff --git a/cpp/test/IceGrid/update/AllTests.cpp b/cpp/test/IceGrid/update/AllTests.cpp
index e1c7b8030a3..0c561ca2373 100644
--- a/cpp/test/IceGrid/update/AllTests.cpp
+++ b/cpp/test/IceGrid/update/AllTests.cpp
@@ -48,9 +48,8 @@ allTests(const Ice::CommunicatorPtr& communicator)
adapter.id = "ServerAdapter";
adapter.registerProcess = true;
ObjectDescriptor object;
- object.proxy = communicator->stringToProxy("test@ServerAdapter");
+ object.id = Ice::stringToIdentity("test");
object.type = "::Test::TestIntf";
- object.adapterId = "ServerAdapter";
adapter.objects.push_back(object);
instance.descriptor->adapters.push_back(adapter);
update.servers.push_back(instance);
@@ -88,7 +87,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(false);
}
- update.servers[0].descriptor->adapters[0].objects[0].proxy = communicator->stringToProxy("test2@ServerAdapter");
+ update.servers[0].descriptor->adapters[0].objects[0].id = Ice::stringToIdentity("test2");
try
{
admin->updateApplication(update);
@@ -111,9 +110,8 @@ allTests(const Ice::CommunicatorPtr& communicator)
adapter.id = "${server}";
adapter.registerProcess = true;
object = ObjectDescriptor();
- object.proxy = communicator->stringToProxy("${server}@" + adapter.id);
+ object.id = Ice::stringToIdentity("${server}");
object.type = "::Test::TestIntf";
- object.adapterId = adapter.id;
adapter.objects.push_back(object);
server->adapters.push_back(adapter);
update = empty;
@@ -322,7 +320,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
adapter = AdapterDescriptor();
adapter.id = "ServerX";
object = ObjectDescriptor();
- object.proxy = communicator->stringToProxy("test");
+ object.id = Ice::stringToIdentity("test");
adapter.objects.push_back(object);
instance.descriptor->adapters.push_back(adapter);
update = empty;