diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-09-28 11:05:44 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-09-28 11:05:44 -0230 |
commit | 7d20430028f05cc26c412465176a75ce4ea5af9e (patch) | |
tree | 593695acf366f7e3a7081d15af8f474683ce4af7 | |
parent | Removed unused __checkTwoway(const char*) from Proxy (diff) | |
download | ice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.bz2 ice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.xz ice-7d20430028f05cc26c412465176a75ce4ea5af9e.zip |
Bug 3231 - alternative storage for IceGrid and IceStorm
83 files changed, 4540 insertions, 554 deletions
@@ -33,6 +33,9 @@ General Changes These entries apply to all relevant language mappings unless otherwise noted. +- The new Ice::ThreadHookPlugin class allows you to install thread + notification hooks during communicator initialization via plugins. + - Added Glacier2::Router::refreshSession, which keeps the client's Glacier2 session alive. This is useful in the case that the application architecture does not use a Glacier2 session @@ -233,6 +236,11 @@ noted. C++ Changes ============ +- Added the ability to use alternative database storage for IceStorm + and IceGrid other than Freeze. The following SQL databases are + supported: SQLite, PostgresSQL, MySQL and SQL Server. Please see + the manual for more information. + - Fixed a bug where globally scoped garbage collected class pointers could cause a crash on application termination. diff --git a/config/PropertyNames.xml b/config/PropertyNames.xml index fedf18f702a..fcd9cf9edf1 100644 --- a/config/PropertyNames.xml +++ b/config/PropertyNames.xml @@ -450,6 +450,11 @@ generated from the section label. <property name="Registry.Trace.Topic"/> <property name="Registry.Trace.TopicManager"/> <property name="Registry.UserAccounts" /> + <property name="SQL.DatabaseType" /> + <property name="SQL.HostName" /> + <property name="SQL.DatabaseName" /> + <property name="SQL.UserName" /> + <property name="SQL.Password" /> </section> <section name="IcePatch2"> diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules index 5aaadbdc50b..5a69854849c 100644 --- a/cpp/config/Make.rules +++ b/cpp/config/Make.rules @@ -31,7 +31,6 @@ embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR) # #LP64 ?= yes - # # Define USE_READLINE as yes if you want to build parts of Ice using # readline on platforms where readline is available (see @@ -52,7 +51,6 @@ embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR) USE_READLINE ?= no - # # If libbzip2 is not installed in a standard location where the # compiler can find it, set BZIP2_HOME to the bzip2 installation @@ -169,6 +167,12 @@ else endif endif +ifneq ($(QTSQL_HOME),) + QTSQL_FLAGS = -DQTSQL -I$(QTSQL_HOME)/include + QTSQL_LIBS = -L$(QTSQL_HOME)/$(libsubdir) $(QT_LIBS) + QTSQL_RPATH_LINK = $(call rpathlink,$(QTSQL_HOME)/$(libsubdir)) +endif + EXPAT_FLAGS = $(if $(EXPAT_HOME),-I$(EXPAT_HOME)/include) EXPAT_LIBS = $(if $(EXPAT_HOME),-L$(EXPAT_HOME)/$(libsubdir)) -lexpat EXPAT_RPATH_LINK = $(if $(EXPAT_HOME),$(call rpathlink,$(EXPAT_HOME)/$(libsubdir))) @@ -183,6 +187,9 @@ ifeq ($(PLATFORM_HAS_READLINE),yes) endif endif +ifneq ($(DB_HOME),) +endif + ICECPPFLAGS = -I$(slicedir) SLICE2CPPFLAGS = $(ICECPPFLAGS) diff --git a/cpp/config/Make.rules.Darwin b/cpp/config/Make.rules.Darwin index d516fd7992a..569d2f66c02 100644 --- a/cpp/config/Make.rules.Darwin +++ b/cpp/config/Make.rules.Darwin @@ -74,10 +74,9 @@ BASELIBS = -lIceUtil -lpthread LIBS = -lIce $(BASELIBS) ICONV_LIB = -liconv +QT_LIBS = -framework QtCore -framework QtSql ICEUTIL_OS_LIBS = -lpthread ICE_OS_LIBS = -ldl $(ICONV_LIB) - PLATFORM_HAS_READLINE := no - diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux index 56ee7e2a9e4..2137baee9d7 100644 --- a/cpp/config/Make.rules.Linux +++ b/cpp/config/Make.rules.Linux @@ -161,6 +161,8 @@ NPTL_LIB = /usr/$(libsubdir)/nptl BASELIBS = -lIceUtil -L$(NPTL_LIB) -lpthread -lrt LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS) +QT_LIBS = -lQtCore -lQtSql + ICEUTIL_OS_LIBS = ICE_OS_LIBS = -ldl diff --git a/cpp/config/Make.rules.SunOS b/cpp/config/Make.rules.SunOS index f6505d25cf4..b7fc6c76aae 100644 --- a/cpp/config/Make.rules.SunOS +++ b/cpp/config/Make.rules.SunOS @@ -161,6 +161,8 @@ rpathlink = -L$(1) BASELIBS = -lIceUtil -lpthread LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS) +QT_LIBS = -lQtCore -lQtSql + ICEUTIL_OS_LIBS = -lpthread -lrt ICE_OS_LIBS = -ldl -lsocket diff --git a/cpp/config/Make.rules.mak b/cpp/config/Make.rules.mak index 20f1d9bc47e..e6ac2944d8a 100644 --- a/cpp/config/Make.rules.mak +++ b/cpp/config/Make.rules.mak @@ -122,6 +122,9 @@ RCFLAGS = -D_DEBUG OPENSSL_LIBS = ssleay32.lib libeay32.lib
EXPAT_LIBS = libexpat.lib
+QTSQL_FLAGS = -DQTSQL -I"$(QTSQL_HOME)\include"
+QTSQL_LIBS = $(PRELIBPATH)"$(QTSQL_HOME)\lib" QtSql$(LIBSUFFIX)4.lib QtCore$(LIBSUFFIX)4.lib
+
CPPFLAGS = $(CPPFLAGS) -I$(includedir)
ICECPPFLAGS = -I$(slicedir)
SLICE2CPPFLAGS = $(ICECPPFLAGS)
diff --git a/cpp/demo/IceGrid/allocate/config.grid b/cpp/demo/IceGrid/allocate/config.grid index 7824b1a204c..b1eaafccbc9 100644 --- a/cpp/demo/IceGrid/allocate/config.grid +++ b/cpp/demo/IceGrid/allocate/config.grid @@ -21,6 +21,12 @@ IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # IceGrid node configuration. # IceGrid.Node.Name=node1 diff --git a/cpp/demo/IceGrid/icebox/config.grid b/cpp/demo/IceGrid/icebox/config.grid index fa30a349d6b..77b62f6bb49 100644 --- a/cpp/demo/IceGrid/icebox/config.grid +++ b/cpp/demo/IceGrid/icebox/config.grid @@ -27,6 +27,12 @@ IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # IceGrid node configuration. # IceGrid.Node.Name=node1 diff --git a/cpp/demo/IceGrid/replication/config.master b/cpp/demo/IceGrid/replication/config.master index a77c11f6271..66acb96df72 100644 --- a/cpp/demo/IceGrid/replication/config.master +++ b/cpp/demo/IceGrid/replication/config.master @@ -13,6 +13,12 @@ IceGrid.Registry.Data=db/master IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier +# +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/master/Registry.db + Ice.StdErr=db/master/stderr.txt Ice.StdOut=db/master/stdout.txt diff --git a/cpp/demo/IceGrid/replication/config.replica1 b/cpp/demo/IceGrid/replication/config.replica1 index 2459c824bd7..a32a36d36ee 100644 --- a/cpp/demo/IceGrid/replication/config.replica1 +++ b/cpp/demo/IceGrid/replication/config.replica1 @@ -14,6 +14,12 @@ IceGrid.Registry.ReplicaName=Replica1 IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier +# +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/replica1/Registry.db + Ice.StdErr=db/replica1/stderr.txt Ice.StdOut=db/replica1/stdout.txt diff --git a/cpp/demo/IceGrid/replication/config.replica2 b/cpp/demo/IceGrid/replication/config.replica2 index 8ad63aa0c6f..d0e31276a43 100644 --- a/cpp/demo/IceGrid/replication/config.replica2 +++ b/cpp/demo/IceGrid/replication/config.replica2 @@ -14,6 +14,12 @@ IceGrid.Registry.ReplicaName=Replica2 IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier +# +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/replica2/Registry.db + Ice.StdErr=db/replica2/stderr.txt Ice.StdOut=db/replica2/stdout.txt diff --git a/cpp/demo/IceGrid/secure/config.registry b/cpp/demo/IceGrid/secure/config.registry index 331aa4c96a5..a9bf0376944 100644 --- a/cpp/demo/IceGrid/secure/config.registry +++ b/cpp/demo/IceGrid/secure/config.registry @@ -19,6 +19,12 @@ IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000 IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # Trace properties. # Ice.ProgramName=Registry diff --git a/cpp/demo/IceGrid/sessionActivation/config.grid b/cpp/demo/IceGrid/sessionActivation/config.grid index 7824b1a204c..b1eaafccbc9 100644 --- a/cpp/demo/IceGrid/sessionActivation/config.grid +++ b/cpp/demo/IceGrid/sessionActivation/config.grid @@ -21,6 +21,12 @@ IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # IceGrid node configuration. # IceGrid.Node.Name=node1 diff --git a/cpp/demo/IceGrid/simple/config.grid b/cpp/demo/IceGrid/simple/config.grid index 7824b1a204c..d8c3d4a1002 100644 --- a/cpp/demo/IceGrid/simple/config.grid +++ b/cpp/demo/IceGrid/simple/config.grid @@ -21,6 +21,12 @@ IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +#IceGrid.SQL.DatabaseType=QSQLITE +#IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # IceGrid node configuration. # IceGrid.Node.Name=node1 diff --git a/cpp/demo/IceStorm/clock/config.service b/cpp/demo/IceStorm/clock/config.service index b7c9e56a58c..607d2abc581 100644 --- a/cpp/demo/IceStorm/clock/config.service +++ b/cpp/demo/IceStorm/clock/config.service @@ -18,6 +18,13 @@ IceStorm.TopicManager.Endpoints=default -p 10000 IceStorm.Publish.Endpoints=tcp -p 10001:udp -p 10001 # +# IceStorm SQL configuration if using SQL database. +# +#IceStorm.SQL.DatabaseType=QSQLITE +#IceStorm.SQL.DatabaseName=db/IceStorm.db +#Ice.Plugin.SQLThreadHook=IceStormService:createThreadHook + +# # TopicManager Tracing # # 0 = no tracing diff --git a/cpp/demo/IceStorm/counter/config.service b/cpp/demo/IceStorm/counter/config.service index c6f9b60e89f..e1ab15b893c 100644 --- a/cpp/demo/IceStorm/counter/config.service +++ b/cpp/demo/IceStorm/counter/config.service @@ -15,6 +15,12 @@ IceStorm.TopicManager.Endpoints=default -p 10000 IceStorm.Publish.Endpoints=default # +# IceStorm SQL configuration if using SQL database. +# +IceStorm.SQL.DatabaseType=QSQLITE +IceStorm.SQL.DatabaseName=db/IceStorm.db + +# # TopicManager Tracing # # 0 = no tracing diff --git a/cpp/demo/IceStorm/replicated/.gitignore b/cpp/demo/IceStorm/replicated/.gitignore index b8bcb052749..63ebc47a894 100644 --- a/cpp/demo/IceStorm/replicated/.gitignore +++ b/cpp/demo/IceStorm/replicated/.gitignore @@ -7,3 +7,4 @@ Clock.cpp Clock.h db/node/* db/registry/* +db/*.db diff --git a/cpp/demo/IceStorm/replicated/Makefile b/cpp/demo/IceStorm/replicated/Makefile index e6a4cce1c07..d941c27c55b 100644 --- a/cpp/demo/IceStorm/replicated/Makefile +++ b/cpp/demo/IceStorm/replicated/Makefile @@ -40,6 +40,6 @@ $(SUBSCRIBER): $(OBJS) $(SOBJS) $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS) clean:: - -rm -rf db/node/* db/registry/* + -rm -rf db/node/* db/registry/* db/*.db include .depend diff --git a/cpp/demo/IceStorm/replicated/application.xml b/cpp/demo/IceStorm/replicated/application.xml index 81cd38c9bdf..ce44e10b330 100644 --- a/cpp/demo/IceStorm/replicated/application.xml +++ b/cpp/demo/IceStorm/replicated/application.xml @@ -43,6 +43,8 @@ <property name="${service}.Trace.Subscriber" value="1"/> <property name="${service}.Trace.Election" value="1"/> <property name="${service}.NodeId" value="${index}"/> + <property name="${service}.SQL.DatabaseType" value="QSQLITE"/> + <property name="${service}.SQL.DatabaseName" value="db/${instance-name}-${index}.db"/> </properties> </service> diff --git a/cpp/demo/IceStorm/replicated/config.grid b/cpp/demo/IceStorm/replicated/config.grid index 7824b1a204c..b1eaafccbc9 100644 --- a/cpp/demo/IceStorm/replicated/config.grid +++ b/cpp/demo/IceStorm/replicated/config.grid @@ -21,6 +21,12 @@ IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier # +# IceGrid SQL configuration if using SQL database. +# +IceGrid.SQL.DatabaseType=QSQLITE +IceGrid.SQL.DatabaseName=db/registry/Registry.db + +# # IceGrid node configuration. # IceGrid.Node.Name=node1 diff --git a/cpp/demo/IceStorm/replicated2/config.s1 b/cpp/demo/IceStorm/replicated2/config.s1 index 8f25ae2a637..5bb921afff3 100644 --- a/cpp/demo/IceStorm/replicated2/config.s1 +++ b/cpp/demo/IceStorm/replicated2/config.s1 @@ -102,3 +102,9 @@ IceStorm.Flush.Timeout=2000 # database environment for the IceStorm service. # Freeze.DbEnv.IceStorm.DbHome=db1 + +# +# IceStorm SQL configuration if using SQL database. +# +IceStorm.SQL.DatabaseType=QSQLITE +IceStorm.SQL.DatabaseName=db1/IceStorm.db diff --git a/cpp/demo/IceStorm/replicated2/config.s2 b/cpp/demo/IceStorm/replicated2/config.s2 index 0461aace410..ca8c0e6bdbd 100644 --- a/cpp/demo/IceStorm/replicated2/config.s2 +++ b/cpp/demo/IceStorm/replicated2/config.s2 @@ -102,3 +102,9 @@ IceStorm.Flush.Timeout=2000 # database environment for the IceStorm service. # Freeze.DbEnv.IceStorm.DbHome=db2 + +# +# IceStorm SQL configuration if using SQL database. +# +IceStorm.SQL.DatabaseType=QSQLITE +IceStorm.SQL.DatabaseName=db2/IceStorm.db diff --git a/cpp/demo/IceStorm/replicated2/config.s3 b/cpp/demo/IceStorm/replicated2/config.s3 index 084cd458bd7..ba0f52ccaf6 100644 --- a/cpp/demo/IceStorm/replicated2/config.s3 +++ b/cpp/demo/IceStorm/replicated2/config.s3 @@ -102,3 +102,9 @@ IceStorm.Flush.Timeout=2000 # database environment for the IceStorm service. # Freeze.DbEnv.IceStorm.DbHome=db3 + +# +# IceStorm SQL configuration if using SQL database. +# +IceStorm.SQL.DatabaseType=QSQLITE +IceStorm.SQL.DatabaseName=db3/IceStorm.db diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h index 2d7d83e290e..b44e4d057a1 100644 --- a/cpp/include/Ice/Initialize.h +++ b/cpp/include/Ice/Initialize.h @@ -52,6 +52,21 @@ public: typedef IceUtil::Handle<ThreadNotification> ThreadNotificationPtr; // +// A special plug-in that installs thread hook during a communicator's initialization. +// Both initialize and destroy are no-op. See Ice::InitializationData. +// +class ICE_API ThreadHookPlugin : public Ice::Plugin +{ +public: + + ThreadHookPlugin(const CommunicatorPtr& communicator, const ThreadNotificationPtr&); + + virtual void initialize(); + + virtual void destroy(); +}; + +// // Communicator initialization info // struct InitializationData diff --git a/cpp/include/Ice/LoggerUtil.h b/cpp/include/Ice/LoggerUtil.h index c98dd202ae2..12269b32df8 100644 --- a/cpp/include/Ice/LoggerUtil.h +++ b/cpp/include/Ice/LoggerUtil.h @@ -107,7 +107,6 @@ private: // A special plug-in that installs a logger during a communicator's initialization. // Both initialize and destroy are no-op. See Ice::InitializationData. // - class ICE_API LoggerPlugin : public Ice::Plugin { public: diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp index e6804109138..f126fbe48ce 100644 --- a/cpp/src/Ice/Initialize.cpp +++ b/cpp/src/Ice/Initialize.cpp @@ -16,6 +16,7 @@ #include <Ice/LocalException.h> #include <Ice/StreamI.h> #include <Ice/LoggerI.h> +#include <Ice/Instance.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> @@ -108,6 +109,27 @@ Ice::createProperties(int& argc, char* argv[], const PropertiesPtr& defaults, co return properties; } +Ice::ThreadHookPlugin::ThreadHookPlugin(const CommunicatorPtr& communicator, const ThreadNotificationPtr& threadHook) +{ + if(communicator == 0) + { + throw PluginInitializationException(__FILE__, __LINE__, "Communicator cannot be null"); + } + + IceInternal::InstancePtr instance = IceInternal::getInstance(communicator); + instance->setThreadHook(threadHook); +} + +void +Ice::ThreadHookPlugin::initialize() +{ +} + +void +Ice::ThreadHookPlugin::destroy() +{ +} + namespace { diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp index c5b2b4bff1b..af1b1bc4d67 100644 --- a/cpp/src/Ice/Instance.cpp +++ b/cpp/src/Ice/Instance.cpp @@ -761,6 +761,15 @@ IceInternal::Instance::setLogger(const Ice::LoggerPtr& logger) _initData.logger = logger; } +void +IceInternal::Instance::setThreadHook(const Ice::ThreadNotificationPtr& threadHook) +{ + // + // No locking, as it can only be called during plug-in loading + // + _initData.threadHook = threadHook; +} + IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const InitializationData& initData) : _state(StateActive), _initData(initData), @@ -998,38 +1007,6 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi _retryQueue = new RetryQueue(this); - try - { - bool hasPriority = _initData.properties->getProperty("Ice.ThreadPriority") != ""; - int priority = _initData.properties->getPropertyAsInt("Ice.ThreadPriority"); - if(hasPriority) - { - _timer = new IceUtil::Timer(priority); - } - else - { - _timer = new IceUtil::Timer; - } - } - catch(const IceUtil::Exception& ex) - { - Error out(_initData.logger); - out << "cannot create thread for timer:\n" << ex; - throw; - } - - try - { - _endpointHostResolver = new EndpointHostResolver(this); - } - catch(const IceUtil::Exception& ex) - { - Error out(_initData.logger); - out << "cannot create thread for endpoint host resolver:\n" << ex; - throw; - } - - _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); if(_initData.wstringConverter == 0) { @@ -1114,10 +1091,48 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[]) // // Load plug-ins. // + assert(!_serverThreadPool); PluginManagerI* pluginManagerImpl = dynamic_cast<PluginManagerI*>(_pluginManager.get()); assert(pluginManagerImpl); pluginManagerImpl->loadPlugins(argc, argv); + + // + // Create threads. + // + try + { + bool hasPriority = _initData.properties->getProperty("Ice.ThreadPriority") != ""; + int priority = _initData.properties->getPropertyAsInt("Ice.ThreadPriority"); + if(hasPriority) + { + _timer = new IceUtil::Timer(priority); + } + else + { + _timer = new IceUtil::Timer; + } + } + catch(const IceUtil::Exception& ex) + { + Error out(_initData.logger); + out << "cannot create thread for timer:\n" << ex; + throw; + } + + try + { + _endpointHostResolver = new EndpointHostResolver(this); + } + catch(const IceUtil::Exception& ex) + { + Error out(_initData.logger); + out << "cannot create thread for endpoint host resolver:\n" << ex; + throw; + } + + _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); + // // Get default router and locator proxies. Don't move this // initialization before the plug-in initialization!!! The proxies @@ -1195,6 +1210,16 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[]) // // + // An application can set Ice.InitPlugins=0 if it wants to postpone + // initialization until after it has interacted directly with the + // plug-ins. + // + if(_initData.properties->getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) + { + pluginManagerImpl->initializePlugins(); + } + + // // This must be done last as this call creates the Ice.Admin object adapter // and eventually register a process proxy with the Ice locator (allowing // remote clients to invoke on Ice.Admin facets as soon as it's registered). diff --git a/cpp/src/Ice/Instance.h b/cpp/src/Ice/Instance.h index 283cfcadc09..8a3b93ba399 100644 --- a/cpp/src/Ice/Instance.h +++ b/cpp/src/Ice/Instance.h @@ -96,6 +96,7 @@ public: void setStringConverter(const Ice::StringConverterPtr&); void setWstringConverter(const Ice::WstringConverterPtr&); void setLogger(const Ice::LoggerPtr&); + void setThreadHook(const Ice::ThreadNotificationPtr&); private: diff --git a/cpp/src/Ice/PluginManagerI.cpp b/cpp/src/Ice/PluginManagerI.cpp index 75c9e70d4f6..6fafc59769f 100644 --- a/cpp/src/Ice/PluginManagerI.cpp +++ b/cpp/src/Ice/PluginManagerI.cpp @@ -291,16 +291,6 @@ Ice::PluginManagerI::loadPlugins(int& argc, char* argv[]) } stringSeqToArgs(cmdArgs, argc, argv); - - // - // An application can set Ice.InitPlugins=0 if it wants to postpone - // initialization until after it has interacted directly with the - // plug-ins. - // - if(properties->getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) - { - initializePlugins(); - } } void diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp index 0e9cb2d8a25..20bffdef6e6 100644 --- a/cpp/src/Ice/PropertyNames.cpp +++ b/cpp/src/Ice/PropertyNames.cpp @@ -8,7 +8,7 @@ // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Sep 23 15:26:41 2009 +// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Sep 28 09:54:13 2009 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -379,6 +379,11 @@ const IceInternal::Property IceGridPropsData[] = IceInternal::Property("IceGrid.Registry.Trace.Topic", false, 0), IceInternal::Property("IceGrid.Registry.Trace.TopicManager", false, 0), IceInternal::Property("IceGrid.Registry.UserAccounts", false, 0), + IceInternal::Property("IceGrid.SQL.DatabaseType", false, 0), + IceInternal::Property("IceGrid.SQL.HostName", false, 0), + IceInternal::Property("IceGrid.SQL.DatabaseName", false, 0), + IceInternal::Property("IceGrid.SQL.UserName", false, 0), + IceInternal::Property("IceGrid.SQL.Password", false, 0), }; const IceInternal::PropertyArray diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h index 3ff323bd6d0..878c43cb97e 100644 --- a/cpp/src/Ice/PropertyNames.h +++ b/cpp/src/Ice/PropertyNames.h @@ -8,7 +8,7 @@ // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Sep 23 15:26:41 2009 +// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Sep 28 09:54:13 2009 // IMPORTANT: Do not edit this file -- any edits made here will be lost! diff --git a/cpp/src/IceGrid/.depend b/cpp/src/IceGrid/.depend index 774bde81f2a..b0332ce6a00 100644 --- a/cpp/src/IceGrid/.depend +++ b/cpp/src/IceGrid/.depend @@ -21,13 +21,9 @@ ServerAdapterI$(OBJEXT): ServerAdapterI.cpp $(includedir)/Ice/Ice.h $(includedir Activator$(OBJEXT): Activator.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/ArgVector.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/FileUtil.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h NodeSessionManager$(OBJEXT): NodeSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h AdminCallbackRouter$(OBJEXT): AdminCallbackRouter.cpp ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h -RegistryI$(OBJEXT): RegistryI.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/Network.h $(includedir)/Ice/ProtocolPluginFacade.h $(includedir)/Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/EndpointFactoryF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceStorm/IceStorm.h $(includedir)/IceSSL/Plugin.h $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/ReapThread.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Locator.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceGrid/LocatorI.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../IceGrid/SessionI.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/AdminSessionI.h ../IceGrid/InternalRegistryI.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/FileCache.h ../IceGrid/RegistryServerAdminRouter.h -RegistryServerAdminRouter$(OBJEXT): RegistryServerAdminRouter.cpp ../IceGrid/RegistryServerAdminRouter.h ../IceGrid/Database.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/CommunicatorF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -InternalRegistryI$(OBJEXT): InternalRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/InternalRegistryI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/ReapThread.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h ../IceGrid/FileCache.h -StringApplicationInfoDict$(OBJEXT): StringApplicationInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h -IdentityObjectInfoDict$(OBJEXT): IdentityObjectInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/IdentityObjectInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h -StringAdapterInfoDict$(OBJEXT): StringAdapterInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/StringAdapterInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h -Database$(OBJEXT): Database.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Exception.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h ../IceGrid/Database.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h +RegistryI$(OBJEXT): RegistryI.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/Network.h $(includedir)/Ice/ProtocolPluginFacade.h $(includedir)/Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/EndpointFactoryF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceStorm/IceStorm.h $(includedir)/IceSSL/Plugin.h $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/ReapThread.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Locator.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceGrid/LocatorI.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../IceGrid/SessionI.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/AdminSessionI.h ../IceGrid/InternalRegistryI.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/FileCache.h ../IceGrid/RegistryServerAdminRouter.h +RegistryServerAdminRouter$(OBJEXT): RegistryServerAdminRouter.cpp ../IceGrid/RegistryServerAdminRouter.h ../IceGrid/Database.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h +InternalRegistryI$(OBJEXT): InternalRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/InternalRegistryI.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/ReapThread.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h ../IceGrid/FileCache.h Allocatable$(OBJEXT): Allocatable.cpp ../IceGrid/Allocatable.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h AdapterCache$(OBJEXT): AdapterCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h ../IceGrid/AdapterCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h ../IceGrid/TraceLevels.h $(includedir)/IceGrid/Query.h ../IceGrid/Internal.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ObjectCache$(OBJEXT): ObjectCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h ../IceGrid/ObjectCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h @@ -35,22 +31,27 @@ AllocatableObjectCache$(OBJEXT): AllocatableObjectCache.cpp $(includedir)/IceUti ServerCache$(OBJEXT): ServerCache.cpp $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/AdapterCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h NodeCache$(OBJEXT): NodeCache.cpp $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ReplicaCache$(OBJEXT): ReplicaCache.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Plugin.h ../IceGrid/ReplicaCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ReplicaSessionI.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h -LocatorI$(OBJEXT): LocatorI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h -LocatorRegistryI$(OBJEXT): LocatorRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -AdminI$(OBJEXT): AdminI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/AdminI.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/NodeSessionI.h +Database$(OBJEXT): Database.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Exception.h ../IceGrid/Database.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h ../IceGrid/DatabaseWrapper.h +DatabaseCache$(OBJEXT): DatabaseCache.cpp ../IceGrid/DatabaseCache.h +LocatorI$(OBJEXT): LocatorI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h +LocatorRegistryI$(OBJEXT): LocatorRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h +AdminI$(OBJEXT): AdminI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/AdminI.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/NodeSessionI.h Util$(OBJEXT): Util.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/IceUtil/Random.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h DescriptorHelper$(OBJEXT): DescriptorHelper.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h -NodeSessionI$(OBJEXT): NodeSessionI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -ReplicaSessionI$(OBJEXT): ReplicaSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/PlatformInfo.h +NodeSessionI$(OBJEXT): NodeSessionI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h +ReplicaSessionI$(OBJEXT): ReplicaSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/Database.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/PlatformInfo.h ReapThread$(OBJEXT): ReapThread.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReapThread.h -SessionI$(OBJEXT): SessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h $(includedir)/IceSSL/Plugin.h -AdminSessionI$(OBJEXT): AdminSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/AdminI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h $(includedir)/IceSSL/Plugin.h +SessionI$(OBJEXT): SessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h $(includedir)/IceSSL/Plugin.h +AdminSessionI$(OBJEXT): AdminSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/AdminI.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/DatabaseCache.h $(includedir)/IceSSL/Plugin.h SessionServantManager$(OBJEXT): SessionServantManager.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h Topics$(OBJEXT): Topics.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Topics.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h -QueryI$(OBJEXT): QueryI.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +QueryI$(OBJEXT): QueryI.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h FileUserAccountMapperI$(OBJEXT): FileUserAccountMapperI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h -ReplicaSessionManager$(OBJEXT): ReplicaSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h -WellKnownObjectsManager$(OBJEXT): WellKnownObjectsManager.cpp $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +ReplicaSessionManager$(OBJEXT): ReplicaSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h ../IceGrid/WellKnownObjectsManager.h +WellKnownObjectsManager$(OBJEXT): WellKnownObjectsManager.cpp $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DatabaseCache.h +StringApplicationInfoDict$(OBJEXT): StringApplicationInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h +IdentityObjectInfoDict$(OBJEXT): IdentityObjectInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/IdentityObjectInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h +StringAdapterInfoDict$(OBJEXT): StringAdapterInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceGrid/StringAdapterInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h IceGridNode$(OBJEXT): IceGridNode.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeServerAdminRouter.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/FileUserAccountMapperI.h ../IceGrid/NodeSessionManager.h ../IceGrid/TraceLevels.h ../IceGrid/DescriptorParser.h ../IcePatch2/Util.h IceGridRegistry$(OBJEXT): IceGridRegistry.cpp $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/TraceLevels.h Internal.cpp: ../IceGrid/Internal.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/ProcessF.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/IceGrid/Observer.ice $(slicedir)/IceGrid/Registry.ice $(slicedir)/IceGrid/Session.ice diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp index dc87fad3849..65379e1dff7 100644 --- a/cpp/src/IceGrid/Database.cpp +++ b/cpp/src/IceGrid/Database.cpp @@ -9,7 +9,6 @@ #include <IceUtil/StringUtil.h> #include <IceUtil/Random.h> -#include <Freeze/Freeze.h> #include <IceGrid/Database.h> #include <IceGrid/TraceLevels.h> #include <IceGrid/Util.h> @@ -18,6 +17,14 @@ #include <IceGrid/ReplicaSessionI.h> #include <IceGrid/Session.h> #include <IceGrid/Topics.h> +#include <IceGrid/DatabaseWrapper.h> +#ifdef QTSQL +# include <IceUtil/Functional.h> +# include <Ice/Communicator.h> +# include <Ice/Instance.h> +# include <Ice/ObjectAdapter.h> +# include <Ice/LoggerUtil.h> +#endif #include <algorithm> #include <functional> @@ -26,10 +33,11 @@ using namespace std; using namespace IceGrid; -const string Database::_applicationDbName = "applications"; -const string Database::_adapterDbName = "adapters"; -const string Database::_objectDbName = "objects"; -const string Database::_internalObjectDbName = "internal-objects"; +#ifdef QTSQL +using namespace IceSQL; +#else +using namespace Freeze; +#endif namespace IceGrid { @@ -88,16 +96,20 @@ Database::Database(const Ice::ObjectAdapterPtr& registryAdapter, _objectCache(_communicator), _allocatableObjectCache(_communicator), _serverCache(_communicator, _instanceName, _nodeCache, _adapterCache, _objectCache, _allocatableObjectCache), - _connection(Freeze::createConnection(registryAdapter->getCommunicator(), _envName)), - _applications(_connection, _applicationDbName), - _adapters(_connection, _adapterDbName), - _objects(_connection, _objectDbName), - _internalObjects(_connection, _internalObjectDbName), + _databaseCache(new IceGrid::DatabaseCache(_communicator, _envName, _instanceName, info.name)), _lock(0), _applicationSerial(0) { ServerEntrySeq entries; - for(StringApplicationInfoDict::iterator p = _applications.begin(); p != _applications.end(); ++p) + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); +#ifdef QTSQL + StringApplicationInfoDict applications = applicationsWrapper.getMap(); +#else + StringApplicationInfoDict& applications = applicationsWrapper.getMap(); +#endif + for(StringApplicationInfoDict::iterator p = applications.begin(); p != applications.end(); ++p) { try { @@ -119,9 +131,13 @@ Database::Database(const Ice::ObjectAdapterPtr& registryAdapter, _nodeObserverTopic = new NodeObserverTopic(_topicManager, _internalAdapter); _registryObserverTopic = new RegistryObserverTopic(_topicManager); - _applicationObserverTopic = new ApplicationObserverTopic(_topicManager, _applications); - _adapterObserverTopic = new AdapterObserverTopic(_topicManager, _adapters); - _objectObserverTopic = new ObjectObserverTopic(_topicManager, _objects); + _applicationObserverTopic = new ApplicationObserverTopic(_topicManager, applicationsWrapper.getMap()); + + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + _adapterObserverTopic = new AdapterObserverTopic(_topicManager, adaptersWrapper.getMap()); + + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + _objectObserverTopic = new ObjectObserverTopic(_topicManager, objectsWrapper.getMap()); _registryObserverTopic->registryUp(info); } @@ -207,27 +223,31 @@ Database::unlock(AdminSessionI* session) } void -Database::syncApplications(const ApplicationInfoSeq& applications) +Database::syncApplications(const ApplicationInfoSeq& newApplications) { int serial = 0; // Initialize to prevent warning. { Lock sync(*this); - Freeze::TransactionHolder txHolder(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + ServerEntrySeq entries; set<string> names; - for(ApplicationInfoSeq::const_iterator p = applications.begin(); p != applications.end(); ++p) + + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + for(ApplicationInfoSeq::const_iterator p = newApplications.begin(); p != newApplications.end(); ++p) { try { - StringApplicationInfoDict::const_iterator s = _applications.find(p->descriptor.name); - if(s != _applications.end()) + try { - ApplicationHelper previous(_communicator, s->second.descriptor); + ApplicationInfo info = applicationsWrapper.find(p->descriptor.name); + ApplicationHelper previous(_communicator, info.descriptor); ApplicationHelper helper(_communicator, p->descriptor); reload(previous, helper, entries, p->uuid, p->revision); } - else + catch(const NotFoundException&) { load(ApplicationHelper(_communicator, p->descriptor), entries, p->uuid, p->revision); } @@ -237,27 +257,28 @@ Database::syncApplications(const ApplicationInfoSeq& applications) Ice::Warning warn(_traceLevels->logger); warn << "invalid application `" << p->descriptor.name << "':\n" << ex.reason; } - _applications.put(StringApplicationInfoDict::value_type(p->descriptor.name, *p)); + applicationsWrapper.put(p->descriptor.name, *p); names.insert(p->descriptor.name); } - StringApplicationInfoDict::iterator s = _applications.begin(); - while(s != _applications.end()) +#ifdef QTSQL + StringApplicationInfoDict applications = applicationsWrapper.getMap(); +#else + StringApplicationInfoDict& applications = applicationsWrapper.getMap(); +#endif + StringApplicationInfoDict::iterator s = applications.begin(); + while(s != applications.end()) { if(names.find(s->first) == names.end()) { unload(ApplicationHelper(_communicator, s->second.descriptor), entries); - _applications.erase(s++); - } - else - { - ++s; + applicationsWrapper.erase(s->first); } + ++s; } ++_applicationSerial; - serial = _applicationObserverTopic->applicationInit(_applicationSerial, applications); - + serial = _applicationObserverTopic->applicationInit(_applicationSerial, newApplications); txHolder.commit(); } _applicationObserverTopic->waitForSyncedSubscribers(serial); @@ -269,11 +290,15 @@ Database::syncAdapters(const AdapterInfoSeq& adapters) int serial; { Lock sync(*this); - Freeze::TransactionHolder txHolder(_connection); - _adapters.clear(); + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + adaptersWrapper.clear(); for(AdapterInfoSeq::const_iterator r = adapters.begin(); r != adapters.end(); ++r) { - _adapters.put(StringAdapterInfoDict::value_type(r->id, *r)); + adaptersWrapper.put(*r); } serial = _adapterObserverTopic->adapterInit(adapters); txHolder.commit(); @@ -287,11 +312,16 @@ Database::syncObjects(const ObjectInfoSeq& objects) int serial; { Lock sync(*this); - Freeze::TransactionHolder txHolder(_connection); - _objects.clear(); + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + + objectsWrapper.clear(); for(ObjectInfoSeq::const_iterator q = objects.begin(); q != objects.end(); ++q) { - _objects.put(IdentityObjectInfoDict::value_type(q->proxy->ice_getIdentity(), *q)); + objectsWrapper.put(q->proxy->ice_getIdentity(), *q); } serial = _objectObserverTopic->objectInit(objects); txHolder.commit(); @@ -302,6 +332,9 @@ Database::syncObjects(const ObjectInfoSeq& objects) void Database::addApplication(const ApplicationInfo& info, AdminSessionI* session) { + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + ServerEntrySeq entries; { Lock sync(*this); @@ -309,10 +342,14 @@ Database::addApplication(const ApplicationInfo& info, AdminSessionI* session) waitForUpdate(info.descriptor.name); - if(_applications.find(info.descriptor.name) != _applications.end()) + try { + applicationsWrapper.find(info.descriptor.name); throw DeploymentException("application `" + info.descriptor.name + "' already exists"); - } + } + catch(const NotFoundException&) + { + } ApplicationHelper helper(_communicator, info.descriptor, true); checkForAddition(helper); @@ -347,9 +384,9 @@ Database::addApplication(const ApplicationInfo& info, AdminSessionI* session) int serial; { Lock sync(*this); - ++_applicationSerial; - _applications.put(StringApplicationInfoDict::value_type(info.descriptor.name, info)); + ++_applicationSerial; + applicationsWrapper.put(info.descriptor.name, info); serial = _applicationObserverTopic->applicationAdded(_applicationSerial, info); if(_traceLevels->application > 0) @@ -377,12 +414,16 @@ Database::updateApplication(const ApplicationUpdateInfo& updt, AdminSessionI* se waitForUpdate(update.descriptor.name); - StringApplicationInfoDict::const_iterator p = _applications.find(update.descriptor.name); - if(p == _applications.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + try + { + oldApp = applicationsWrapper.find(update.descriptor.name); + } + catch(const NotFoundException&) { throw ApplicationNotExistException(update.descriptor.name); } - oldApp = p->second; if(update.revision < 0) { @@ -415,12 +456,16 @@ Database::syncApplicationDescriptor(const ApplicationDescriptor& newDesc, AdminS waitForUpdate(newDesc.name); - StringApplicationInfoDict::const_iterator p = _applications.find(newDesc.name); - if(p == _applications.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + try + { + oldApp = applicationsWrapper.find(newDesc.name); + } + catch(const NotFoundException&) { throw ApplicationNotExistException(newDesc.name); } - oldApp = p->second; ApplicationHelper previous(_communicator, oldApp.descriptor); ApplicationHelper helper(_communicator, newDesc, true); @@ -455,12 +500,16 @@ Database::instantiateServer(const string& application, waitForUpdate(application); - StringApplicationInfoDict::const_iterator p = _applications.find(application); - if(p == _applications.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + try + { + oldApp = applicationsWrapper.find(application); + } + catch(const NotFoundException&) { throw ApplicationNotExistException(application); } - oldApp = p->second; ApplicationHelper previous(_communicator, oldApp.descriptor); ApplicationHelper helper(_communicator, previous.instantiateServer(node, instance), true); @@ -484,6 +533,9 @@ Database::instantiateServer(const string& application, void Database::removeApplication(const string& name, AdminSessionI* session) { + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + ServerEntrySeq entries; int serial; { @@ -492,8 +544,12 @@ Database::removeApplication(const string& name, AdminSessionI* session) waitForUpdate(name); - StringApplicationInfoDict::iterator p = _applications.find(name); - if(p == _applications.end()) + ApplicationInfo appInfo; + try + { + appInfo = applicationsWrapper.find(name); + } + catch(const NotFoundException&) { throw ApplicationNotExistException(name); } @@ -501,7 +557,7 @@ Database::removeApplication(const string& name, AdminSessionI* session) bool init = false; try { - ApplicationHelper helper(_communicator, p->second.descriptor); + ApplicationHelper helper(_communicator, appInfo.descriptor); init = true; checkForRemove(helper); unload(helper, entries); @@ -520,7 +576,7 @@ Database::removeApplication(const string& name, AdminSessionI* session) // } - startUpdating(name, p->second.uuid, p->second.revision); + startUpdating(name, appInfo.uuid, appInfo.revision); } if(_master) @@ -531,7 +587,7 @@ Database::removeApplication(const string& name, AdminSessionI* session) { Lock sync(*this); - _applications.erase(name); + applicationsWrapper.erase(name); ++_applicationSerial; serial = _applicationObserverTopic->applicationRemoved(_applicationSerial, name); @@ -551,24 +607,24 @@ Database::removeApplication(const string& name, AdminSessionI* session) ApplicationInfo Database::getApplicationInfo(const std::string& name) { - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - StringApplicationInfoDict descriptors(connection, _applicationDbName); - - StringApplicationInfoDict::const_iterator p = descriptors.find(name); - if(p == descriptors.end()) + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + try + { + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + return applicationsWrapper.find(name); + } + catch(const NotFoundException&) { throw ApplicationNotExistException(name); } - - return p->second; } Ice::StringSeq Database::getAllApplications(const string& expression) { - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - StringApplicationInfoDict descriptors(connection, _applicationDbName); - return getMatchingKeys<StringApplicationInfoDict>(descriptors, expression); + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + return getMatchingKeys<StringApplicationInfoDict>(applicationsWrapper.getMap(), expression); } void @@ -648,17 +704,27 @@ Database::setAdapterDirectProxy(const string& adapterId, const string& replicaGr throw AdapterExistsException(adapterId); } - StringAdapterInfoDict::iterator p = _adapters.find(adapterId); AdapterInfo info; + bool found = false; + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + try + { + info = adaptersWrapper.find(adapterId); + found = true; + } + catch(const NotFoundException&) + { + } bool updated = false; if(proxy) { - if(p != _adapters.end()) + if(found) { - info = p->second; info.proxy = proxy; info.replicaGroupId = replicaGroupId; - p.set(info); + adaptersWrapper.put(info); updated = true; } else @@ -666,16 +732,16 @@ Database::setAdapterDirectProxy(const string& adapterId, const string& replicaGr info.id = adapterId; info.proxy = proxy; info.replicaGroupId = replicaGroupId; - _adapters.put(StringAdapterInfoDict::value_type(adapterId, info)); + adaptersWrapper.put(info); } } else { - if(p == _adapters.end()) + if(!found) { return; } - _adapters.erase(p); + adaptersWrapper.erase(adapterId); } if(_traceLevels->adapter > 0) @@ -710,18 +776,21 @@ Database::setAdapterDirectProxy(const string& adapterId, const string& replicaGr Ice::ObjectPrx Database::getAdapterDirectProxy(const string& id) { - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - StringAdapterInfoDict adapters(connection, _adapterDbName); - StringAdapterInfoDict::const_iterator p = adapters.find(id); - if(p != adapters.end()) + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + try + { + return adaptersWrapper.find(id).proxy; + } + catch(const NotFoundException&) { - return p->second.proxy; } Ice::EndpointSeq endpoints; - for(p = adapters.findByReplicaGroupId(id, true); p != adapters.end(); ++p) + vector<AdapterInfo> infos = adaptersWrapper.findByReplicaGroupId(id); + for(unsigned int i = 0; i < infos.size(); ++i) { - Ice::EndpointSeq edpts = p->second.proxy->ice_getEndpoints(); + Ice::EndpointSeq edpts = infos[i].proxy->ice_getEndpoints(); endpoints.insert(endpoints.end(), edpts.begin(), edpts.end()); } if(!endpoints.empty()) @@ -747,29 +816,28 @@ Database::removeAdapter(const string& adapterId) throw ex; } - Freeze::TransactionHolder txHolder(_connection); // Required because of the iterator - - StringAdapterInfoDict::iterator p = _adapters.find(adapterId); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + AdapterInfoSeq infos; - if(p != _adapters.end()) + try { - _adapters.erase(p); + adaptersWrapper.find(adapterId); + adaptersWrapper.erase(adapterId); } - else + catch(const NotFoundException&) { - p = _adapters.findByReplicaGroupId(adapterId, true); - if(p == _adapters.end()) + infos = adaptersWrapper.findByReplicaGroupId(adapterId); + if(infos.size() == 0) { throw AdapterNotExistException(adapterId); } - - while(p != _adapters.end()) + for(unsigned int i = 0; i < infos.size(); ++i) { - AdapterInfo info = p->second; - info.replicaGroupId = ""; - infos.push_back(info); - _adapters.put(StringAdapterInfoDict::value_type(p->first, info)); - ++p; + infos[i].replicaGroupId = ""; + adaptersWrapper.put(infos[i]); } } @@ -790,7 +858,6 @@ Database::removeAdapter(const string& adapterId) serial = _adapterObserverTopic->adapterUpdated(*p); } } - txHolder.commit(); } _adapterObserverTopic->waitForSyncedSubscribers(serial); @@ -836,33 +903,26 @@ Database::getAdapterInfo(const string& id) // Otherwise, we check the adapter endpoint table -- if there's an // entry the adapter is managed by the registry itself. // - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - StringAdapterInfoDict adapters(connection, _adapterDbName); - StringAdapterInfoDict::const_iterator p = adapters.find(id); - if(p != adapters.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + AdapterInfoSeq infos; + try { - AdapterInfoSeq infos; - infos.push_back(p->second); - return infos; + infos.push_back(adaptersWrapper.find(id)); } - - // - // If it's not a regular object adapter, perhaps it's a replica - // group... - // - p = adapters.findByReplicaGroupId(id, true); - if(p != adapters.end()) + catch(const NotFoundException&) { - AdapterInfoSeq infos; - while(p != adapters.end()) + // + // If it's not a regular object adapter, perhaps it's a replica + // group... + // + infos = adaptersWrapper.findByReplicaGroupId(id); + if(infos.size() == 0) { - infos.push_back(p->second); - ++p; + throw AdapterNotExistException(id); } - return infos; } - - throw AdapterNotExistException(id); + return infos; } @@ -874,7 +934,15 @@ Database::getAllAdapters(const string& expression) vector<string> ids = _adapterCache.getAll(expression); result.swap(ids); set<string> groups; - for(StringAdapterInfoDict::const_iterator p = _adapters.begin(); p != _adapters.end(); ++p) + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); +#ifdef QTSQL + StringAdapterInfoDict adapters = adaptersWrapper.getMap(); +#else + StringAdapterInfoDict& adapters = adaptersWrapper.getMap(); +#endif + for(StringAdapterInfoDict::const_iterator p = adapters.begin(); p != adapters.end(); ++p) { if(expression.empty() || IceUtilInternal::match(p->first, expression, true)) { @@ -910,11 +978,17 @@ Database::addObject(const ObjectInfo& info) throw ObjectExistsException(id); } - if(_objects.find(id) != _objects.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + try { + objectsWrapper.find(id); throw ObjectExistsException(id); } - _objects.put(IdentityObjectInfoDict::value_type(id, info)); + catch(const NotFoundException&) + { + } + objectsWrapper.put(id, info); serial = _objectObserverTopic->objectAdded(info); @@ -940,8 +1014,18 @@ Database::addOrUpdateObject(const ObjectInfo& info) throw ObjectExistsException(id); } - bool update = _objects.find(id) != _objects.end(); - _objects.put(IdentityObjectInfoDict::value_type(id, info)); + bool update = false; + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + try + { + objectsWrapper.find(id); + update = true; + } + catch(const NotFoundException&) + { + } + objectsWrapper.put(id, info); if(update) { @@ -977,14 +1061,20 @@ Database::removeObject(const Ice::Identity& id) throw ex; } - IdentityObjectInfoDict::iterator p = _objects.find(id); - if(p == _objects.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + try + { + objectsWrapper.find(id); + } + catch(const NotFoundException&) { ObjectNotRegisteredException ex; ex.id = id; throw ex; } - _objects.erase(p); + + objectsWrapper.erase(id); serial = _objectObserverTopic->objectRemoved(id); @@ -1015,18 +1105,23 @@ Database::updateObject(const Ice::ObjectPrx& proxy) throw ex; } - IdentityObjectInfoDict::iterator p = _objects.find(id); - if(p == _objects.end()) + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + + ObjectInfo info; + try + { + info = objectsWrapper.find(id); + } + catch(const NotFoundException&) { ObjectNotRegisteredException ex; ex.id = id; throw ex; } - ObjectInfo info; - info = p->second; info.proxy = proxy; - p.set(info); + objectsWrapper.put(id, info); serial = _objectObserverTopic->objectUpdated(info); @@ -1043,12 +1138,17 @@ int Database::addOrUpdateObjectsInDatabase(const ObjectInfoSeq& objects) { Lock sync(*this); - Freeze::TransactionHolder txHolder(_connection); + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + for(ObjectInfoSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) { - _objects.put(IdentityObjectInfoDict::value_type(p->proxy->ice_getIdentity(), *p)); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + objectsWrapper.put(p->proxy->ice_getIdentity(), *p); } int serial = _objectObserverTopic->objectsAddedOrUpdated(objects); + txHolder.commit(); return serial; } @@ -1057,12 +1157,17 @@ void Database::removeObjectsInDatabase(const ObjectInfoSeq& objects) { Lock sync(*this); - Freeze::TransactionHolder txHolder(_connection); + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txHolder(connection); + for(ObjectInfoSeq::const_iterator p = objects.begin(); p != objects.end(); ++p) { - _objects.erase(p->proxy->ice_getIdentity()); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + objectsWrapper.erase(p->proxy->ice_getIdentity()); } _objectObserverTopic->objectsRemoved(objects); + txHolder.commit(); } @@ -1080,16 +1185,18 @@ Database::getObjectProxy(const Ice::Identity& id) { } - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict objects(connection, _objectDbName); - IdentityObjectInfoDict::const_iterator p = objects.find(id); - if(p == objects.end()) + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + try + { + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + return objectsWrapper.find(id).proxy; + } + catch(const NotFoundException&) { ObjectNotRegisteredException ex; ex.id = id; throw ex; } - return p->second.proxy; } Ice::ObjectPrx @@ -1139,11 +1246,13 @@ Ice::ObjectProxySeq Database::getObjectsByType(const string& type) { Ice::ObjectProxySeq proxies = _objectCache.getObjectsByType(type); - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict objects(connection, _objectDbName); - for(IdentityObjectInfoDict::const_iterator p = objects.findByType(type); p != objects.end(); ++p) + + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + vector<ObjectInfo> infos = objectsWrapper.findByType(type); + for(unsigned int i = 0; i < infos.size(); ++i) { - proxies.push_back(p->second.proxy); + proxies.push_back(infos[i].proxy); } return proxies; } @@ -1160,22 +1269,30 @@ Database::getObjectInfo(const Ice::Identity& id) { } - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict objects(connection, _objectDbName); - IdentityObjectInfoDict::const_iterator p = objects.find(id); - if(p == objects.end()) + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + try + { + return objectsWrapper.find(id); + } + catch(const NotFoundException&) { throw ObjectNotRegisteredException(id); } - return p->second; } ObjectInfoSeq Database::getAllObjectInfos(const string& expression) { ObjectInfoSeq infos = _objectCache.getAll(expression); - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict objects(connection, _objectDbName); + + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); +#ifdef QTSQL + IdentityObjectInfoDict objects = objectsWrapper.getMap(); +#else + IdentityObjectInfoDict& objects = objectsWrapper.getMap(); +#endif for(IdentityObjectInfoDict::const_iterator p = objects.begin(); p != objects.end(); ++p) { if(expression.empty() || IceUtilInternal::match(_communicator->identityToString(p->first), expression, true)) @@ -1190,11 +1307,13 @@ ObjectInfoSeq Database::getObjectInfosByType(const string& type) { ObjectInfoSeq infos = _objectCache.getAllByType(type); - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict objects(connection, _objectDbName); - for(IdentityObjectInfoDict::const_iterator p = objects.findByType(type); p != objects.end(); ++p) + + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + ObjectInfoSeq dbInfos = objectsWrapper.findByType(type); + for(unsigned int i = 0; i < dbInfos.size(); ++i) { - infos.push_back(p->second); + infos.push_back(dbInfos[i]); } return infos; } @@ -1204,36 +1323,54 @@ Database::addInternalObject(const ObjectInfo& info, bool replace) { Lock sync(*this); const Ice::Identity id = info.proxy->ice_getIdentity(); - if(!replace && _internalObjects.find(id) != _internalObjects.end()) + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + InternalObjectsDictWrapper internalObjectsWrapper(_databaseCache, connection); + if(!replace) { - throw ObjectExistsException(id); + try + { + internalObjectsWrapper.find(id); + throw ObjectExistsException(id); + } + catch(const NotFoundException&) + { + } } - _internalObjects.put(IdentityObjectInfoDict::value_type(id, info)); + internalObjectsWrapper.put(id, info); } void Database::removeInternalObject(const Ice::Identity& id) { Lock sync(*this); - IdentityObjectInfoDict::iterator p = _internalObjects.find(id); - if(p == _internalObjects.end()) + + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + InternalObjectsDictWrapper internalObjectsWrapper(_databaseCache, connection); + try + { + internalObjectsWrapper.find(id); + } + catch(const NotFoundException&) { ObjectNotRegisteredException ex; ex.id = id; throw ex; } - _internalObjects.erase(p); + internalObjectsWrapper.erase(id); } Ice::ObjectProxySeq Database::getInternalObjectsByType(const string& type) { - Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName); - IdentityObjectInfoDict internalObjects(connection, _internalObjectDbName); Ice::ObjectProxySeq proxies; - for(IdentityObjectInfoDict::const_iterator p = internalObjects.findByType(type); p != internalObjects.end(); ++p) + + DatabaseConnectionPtr connection = _databaseCache->newConnection(); + InternalObjectsDictWrapper internalObjectsWrapper(_databaseCache, connection); + vector<ObjectInfo> infos = internalObjectsWrapper.findByType(type); + for(unsigned int i = 0; i < infos.size(); ++i) { - proxies.push_back(p->second.proxy); + proxies.push_back(infos[i].proxy); } return proxies; } @@ -1327,9 +1464,30 @@ Database::checkServerForAddition(const string& id) void Database::checkAdapterForAddition(const string& id) { - if(_adapterCache.has(id) || - _adapters.find(id) != _adapters.end() || - _adapters.findByReplicaGroupId(id) != _adapters.end()) + bool found = false; + if(_adapterCache.has(id)) + { + found = true; + } + else + { + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + AdaptersDictWrapper adaptersWrapper(_databaseCache, connection); + try + { + adaptersWrapper.find(id); + found = true; + } + catch(const NotFoundException&) + { + if(adaptersWrapper.findByReplicaGroupId(id).size() != 0) + { + found = true; + } + } + } + + if(found) { DeploymentException ex; ex.reason = "adapter `" + id + "' is already registered"; @@ -1340,9 +1498,26 @@ Database::checkAdapterForAddition(const string& id) void Database::checkObjectForAddition(const Ice::Identity& objectId) { - if(_objectCache.has(objectId) || - _allocatableObjectCache.has(objectId) || - _objects.find(objectId) != _objects.end()) + bool found = false; + if(_objectCache.has(objectId) || _allocatableObjectCache.has(objectId)) + { + found = true; + } + else + { + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ObjectsDictWrapper objectsWrapper(_databaseCache, connection); + try + { + objectsWrapper.find(objectId); + found = true; + } + catch(const NotFoundException&) + { + } + } + + if(found) { DeploymentException ex; ex.reason = "object `" + _communicator->identityToString(objectId) + "' is already registered"; @@ -1642,7 +1817,9 @@ Database::finishApplicationUpdate(ServerEntrySeq& entries, info.revision = update.revision; info.descriptor = newDesc; - _applications.put(StringApplicationInfoDict::value_type(update.descriptor.name, info)); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + ApplicationsDictWrapper applicationsWrapper(_databaseCache, connection); + applicationsWrapper.put(update.descriptor.name, info); ++_applicationSerial; if(_traceLevels->application > 0) diff --git a/cpp/src/IceGrid/Database.h b/cpp/src/IceGrid/Database.h index 26aff92bda3..ae8723e5145 100644 --- a/cpp/src/IceGrid/Database.h +++ b/cpp/src/IceGrid/Database.h @@ -12,13 +12,9 @@ #include <IceUtil/Mutex.h> #include <IceUtil/Shared.h> -#include <Freeze/ConnectionF.h> #include <Ice/CommunicatorF.h> #include <IceGrid/Admin.h> #include <IceGrid/Internal.h> -#include <IceGrid/StringApplicationInfoDict.h> -#include <IceGrid/IdentityObjectInfoDict.h> -#include <IceGrid/StringAdapterInfoDict.h> #include <IceGrid/ServerCache.h> #include <IceGrid/NodeCache.h> #include <IceGrid/ReplicaCache.h> @@ -26,6 +22,7 @@ #include <IceGrid/AllocatableObjectCache.h> #include <IceGrid/AdapterCache.h> #include <IceGrid/Topics.h> +#include <IceGrid/DatabaseCache.h> namespace IceGrid { @@ -182,11 +179,7 @@ private: AdapterObserverTopicPtr _adapterObserverTopic; ObjectObserverTopicPtr _objectObserverTopic; - Freeze::ConnectionPtr _connection; - StringApplicationInfoDict _applications; - StringAdapterInfoDict _adapters; - IdentityObjectInfoDict _objects; - IdentityObjectInfoDict _internalObjects; + DatabaseCachePtr _databaseCache; AdminSessionI* _lock; std::string _lockUserId; diff --git a/cpp/src/IceGrid/DatabaseCache.cpp b/cpp/src/IceGrid/DatabaseCache.cpp new file mode 100644 index 00000000000..12f544ded7a --- /dev/null +++ b/cpp/src/IceGrid/DatabaseCache.cpp @@ -0,0 +1,77 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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/DatabaseCache.h> +#ifdef QTSQL +# include <Ice/Communicator.h> +#endif + +using namespace IceGrid; +using namespace std; + +#ifdef QTSQL + +DatabaseCache::DatabaseCache(const Ice::CommunicatorPtr& communicator, + const string&, + const string& instanceName, + const string& replicaName) : + IceSQL::DatabaseCache(communicator, + communicator->getProperties()->getProperty("IceGrid.SQL.DatabaseType"), + communicator->getProperties()->getProperty("IceGrid.SQL.DatabaseName"), + communicator->getProperties()->getProperty("IceGrid.SQL.HostName"), + communicator->getProperties()->getProperty("IceGrid.SQL.UserName"), + communicator->getProperties()->getProperty("IceGrid.SQL.Password"), + true) +{ + string tablePrefix = instanceName + "_" + replicaName; + replace(tablePrefix.begin(), tablePrefix.end(), '.', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), '-', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), ' ', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), ';', '_'); + + IceSQL::DatabaseConnectionPtr connection = getConnection(); + IceSQL::TransactionHolder txn(connection); + + const_cast<SqlStringApplicationInfoDictPtr&>(applications) = + new SqlStringApplicationInfoDict(connection, tablePrefix + "_Applications", _communicator); + const_cast<SqlStringAdapterInfoDictPtr&>(adapters) = + new SqlStringAdapterInfoDict(connection, tablePrefix + "_Adapters", _communicator); + const_cast<SqlIdentityObjectInfoDictPtr&>(objects) = + new SqlIdentityObjectInfoDict(connection, tablePrefix + "_Objects", _communicator); + const_cast<SqlIdentityObjectInfoDictPtr&>(internalObjects) = + new SqlIdentityObjectInfoDict(connection, tablePrefix + "_InternalObjects", _communicator); + + txn.commit(); +} + +#else + +DatabaseCache::DatabaseCache(const Ice::CommunicatorPtr& communicator, + const string& envName, + const string&, + const string&) : + _communicator(communicator), + _envName(envName), + _connection(Freeze::createConnection(communicator, envName)) +{ +} + +DatabaseConnectionPtr +DatabaseCache::getConnection() +{ + return _connection; +} + +DatabaseConnectionPtr +DatabaseCache::newConnection() +{ + return Freeze::createConnection(_communicator, _envName); +} + +#endif diff --git a/cpp/src/IceGrid/DatabaseCache.h b/cpp/src/IceGrid/DatabaseCache.h new file mode 100644 index 00000000000..e1012695337 --- /dev/null +++ b/cpp/src/IceGrid/DatabaseCache.h @@ -0,0 +1,68 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 DATABASE_CACHE_H +#define DATABASE_CACHE_H + +#ifdef QTSQL +# include <IceSQL/SqlTypes.h> +# include <IceGrid/SqlStringApplicationInfoDict.h> +# include <IceGrid/SqlStringAdapterInfoDict.h> +# include <IceGrid/SqlIdentityObjectInfoDict.h> +#else +# include <Freeze/Freeze.h> +#endif + +namespace IceGrid +{ + +#ifdef QTSQL + +class DatabaseCache : public IceSQL::DatabaseCache +{ +public: + + DatabaseCache(const Ice::CommunicatorPtr&, const std::string&, const std::string&, const std::string&); + + const SqlStringApplicationInfoDictPtr applications; + const SqlStringAdapterInfoDictPtr adapters; + const SqlIdentityObjectInfoDictPtr objects; + const SqlIdentityObjectInfoDictPtr internalObjects; +}; + +typedef IceUtil::Handle<DatabaseCache> DatabaseCachePtr; + +#else + +typedef Freeze::ConnectionPtr DatabaseConnectionPtr; + +class DatabaseCache : public IceUtil::Shared +{ +public: + + DatabaseCache(const Ice::CommunicatorPtr&, const std::string&, const std::string&, const std::string&); + + DatabaseConnectionPtr getConnection(); + DatabaseConnectionPtr newConnection(); + +private: + + const Ice::CommunicatorPtr _communicator; + const std::string _envName; + const DatabaseConnectionPtr _connection; +}; + +typedef IceUtil::Handle<DatabaseCache> DatabaseCachePtr; + +#endif + + +} + +#endif diff --git a/cpp/src/IceGrid/DatabaseWrapper.h b/cpp/src/IceGrid/DatabaseWrapper.h new file mode 100644 index 00000000000..c54e42cfcd7 --- /dev/null +++ b/cpp/src/IceGrid/DatabaseWrapper.h @@ -0,0 +1,395 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 DATABASE_WRAPPER_H +#define DATABASE_WRAPPER_H + +#include <IceGrid/DatabaseCache.h> + +namespace IceGrid +{ + +#ifdef QTSQL + +class ApplicationsDictWrapper +{ +public: + + ApplicationsDictWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + _table(database->applications), + _connection(connection) + { + } + + StringApplicationInfoDict getMap() + { + StringApplicationInfoDict dict; + _table->getMap(_connection, dict); + return dict; + } + + void + put(const std::string& name, const ApplicationInfo& info) + { + _table->put(_connection, name, info); + } + + ApplicationInfo + find(const std::string& name) + { + return _table->find(_connection, name); + } + + void + erase(const std::string& name) + { + _table->erase(_connection, name); + } + + void + clear() + { + _table->clear(_connection); + } + +private: + + const SqlStringApplicationInfoDictPtr _table; + const IceSQL::DatabaseConnectionPtr _connection; +}; + +class AdaptersDictWrapper +{ +public: + + AdaptersDictWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + _table(database->adapters), + _connection(connection) + { + } + + StringAdapterInfoDict getMap() + { + StringAdapterInfoDict dict; + _table->getMap(_connection, dict); + return dict; + } + + void + put(const AdapterInfo& info) + { + _table->put(_connection, info); + } + + AdapterInfo + find(const std::string& name) + { + return _table->find(_connection, name); + } + + std::vector<AdapterInfo> + findByReplicaGroupId(const std::string& name) + { + return _table->findByReplicaGroupId(_connection, name); + } + + void + erase(const std::string& name) + { + _table->erase(_connection, name); + } + + void + clear() + { + _table->clear(_connection); + } + +private: + + const SqlStringAdapterInfoDictPtr _table; + const IceSQL::DatabaseConnectionPtr _connection; +}; + +class ObjectsDictBaseWrapper +{ +public: + + IdentityObjectInfoDict getMap() + { + IdentityObjectInfoDict dict; + _table->getMap(_connection, dict); + return dict; + } + + void + put(const Ice::Identity& id, const ObjectInfo& info) + { + _table->put(_connection, id, info); + } + + ObjectInfo + find(const Ice::Identity& id) + { + return _table->find(_connection, id); + } + + std::vector<ObjectInfo> + findByType(const std::string& type) + { + return _table->findByType(_connection, type); + } + + void + erase(const Ice::Identity& id) + { + _table->erase(_connection, id); + } + + void + clear() + { + _table->clear(_connection); + } + +protected: + + ObjectsDictBaseWrapper(const SqlIdentityObjectInfoDictPtr& table, const IceSQL::DatabaseConnectionPtr& connection) : + _table(table), + _connection(connection) + { + } + +private: + + const SqlIdentityObjectInfoDictPtr _table; + const IceSQL::DatabaseConnectionPtr _connection; +}; + +class ObjectsDictWrapper : public ObjectsDictBaseWrapper +{ +public: + + ObjectsDictWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + ObjectsDictBaseWrapper(database->objects, connection) + { + } +}; + +class InternalObjectsDictWrapper : public ObjectsDictBaseWrapper +{ +public: + + InternalObjectsDictWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + ObjectsDictBaseWrapper(database->internalObjects, connection) + { + } +}; + +#else + +class NotFoundException : public std::exception +{ +}; + +class ApplicationsDictWrapper +{ +public: + + ApplicationsDictWrapper(const DatabaseCachePtr& database, DatabaseConnectionPtr& connection) : + _applications(connection, "applications") + { + } + + StringApplicationInfoDict& getMap() + { + return _applications; + } + + void + put(const std::string& name, const ApplicationInfo& info) + { + _applications.put(StringApplicationInfoDict::value_type(name, info)); + } + + ApplicationInfo + find(const std::string& name) + { + StringApplicationInfoDict::const_iterator p = _applications.find(name); + if(p == _applications.end()) + { + throw NotFoundException(); + } + return p->second; + } + + void + erase(const std::string& name) + { + _applications.erase(name); + } + + void + clear() + { + _applications.clear(); + } + +private: + + StringApplicationInfoDict _applications; +}; + +class AdaptersDictWrapper +{ +public: + + AdaptersDictWrapper(const DatabaseCachePtr& database, DatabaseConnectionPtr& connection) : + _adapters(connection, "adapters") + { + } + + StringAdapterInfoDict& getMap() + { + return _adapters; + } + + void + put(const AdapterInfo& info) + { + _adapters.put(StringAdapterInfoDict::value_type(info.id, info)); + } + + AdapterInfo + find(const std::string& name) + { + StringAdapterInfoDict::const_iterator p = _adapters.find(name); + if(p == _adapters.end()) + { + throw NotFoundException(); + } + return p->second; + } + + std::vector<AdapterInfo> + findByReplicaGroupId(const std::string& name) + { + std::vector<AdapterInfo> result; + StringAdapterInfoDict::const_iterator p; + for(p = _adapters.findByReplicaGroupId(name, true); p != _adapters.end(); ++p) + { + result.push_back(p->second); + } + return result; + } + + void + erase(const std::string& name) + { + _adapters.erase(name); + } + + void + clear() + { + _adapters.clear(); + } + +private: + + StringAdapterInfoDict _adapters; +}; + +class ObjectsDictBaseWrapper +{ +public: + + IdentityObjectInfoDict& getMap() + { + return _objects; + } + + void + put(const Ice::Identity& id, const ObjectInfo& info) + { + _objects.put(IdentityObjectInfoDict::value_type(id, info)); + } + + ObjectInfo + find(const Ice::Identity& id) + { + IdentityObjectInfoDict::const_iterator p = _objects.find(id); + if(p == _objects.end()) + { + throw NotFoundException(); + } + return p->second; + } + + std::vector<ObjectInfo> + findByType(const std::string& type) + { + std::vector<ObjectInfo> result; + IdentityObjectInfoDict::const_iterator p; + for(p = _objects.findByType(type); p != _objects.end(); ++p) + { + result.push_back(p->second); + } + return result; + } + + void + erase(const Ice::Identity& id) + { + _objects.erase(id); + } + + void + clear() + { + _objects.clear(); + } + +protected: + + ObjectsDictBaseWrapper(const DatabaseConnectionPtr& connection, const std::string& name) : + _objects(connection, name) + { + } + +private: + + IdentityObjectInfoDict _objects; +}; + +class ObjectsDictWrapper : public ObjectsDictBaseWrapper +{ +public: + + ObjectsDictWrapper(const DatabaseCachePtr& database, const DatabaseConnectionPtr& connection) : + ObjectsDictBaseWrapper(connection, "objects") + { + } +}; + +class InternalObjectsDictWrapper : public ObjectsDictBaseWrapper +{ +public: + + InternalObjectsDictWrapper(const DatabaseCachePtr& database, const DatabaseConnectionPtr& connection) : + ObjectsDictBaseWrapper(connection, "internal-objects") + { + } +}; + +#endif + +} + +#endif diff --git a/cpp/src/IceGrid/IceGridNode.cpp b/cpp/src/IceGrid/IceGridNode.cpp index a63c8e13a05..245f8a88ba0 100644 --- a/cpp/src/IceGrid/IceGridNode.cpp +++ b/cpp/src/IceGrid/IceGridNode.cpp @@ -29,6 +29,11 @@ #endif #include <IceGrid/DescriptorParser.h> #include <IcePatch2/Util.h> +#ifdef QTSQL +# include <IceSQL/SqlTypes.h> +# include <QtCore/QCoreApplication> +# include <QtCore/QTextCodec> +#endif #ifdef _WIN32 # include <direct.h> @@ -71,6 +76,7 @@ class NodeService : public Service public: NodeService(); + ~NodeService(); virtual bool shutdown(); @@ -92,6 +98,9 @@ private: NodeIPtr _node; NodeSessionManager _sessions; Ice::ObjectAdapterPtr _adapter; +#ifdef QTSQL + QCoreApplication* _qtApp; +#endif }; class CollocatedRegistry : public RegistryI @@ -173,6 +182,18 @@ NodeService::NodeService() { } +NodeService::~NodeService() +{ +#ifdef QTSQL + if(_qtApp != 0) + { + delete _qtApp; + _qtApp = 0; + } +#endif +} + + bool NodeService::shutdown() { @@ -803,6 +824,15 @@ NodeService::initializeCommunicator(int& argc, char* argv[], // initData.properties->setProperty("Ice.Admin.DelayCreation", "1"); +#ifdef QTSQL + if(QCoreApplication::instance() == 0) + { + _qtApp = new QCoreApplication(argc, argv); + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + } + initData.threadHook = new IceSQL::ThreadHook(); +#endif + return Service::initializeCommunicator(argc, argv, initData); } diff --git a/cpp/src/IceGrid/IceGridRegistry.cpp b/cpp/src/IceGrid/IceGridRegistry.cpp index f6b15394f00..8b41caea87f 100644 --- a/cpp/src/IceGrid/IceGridRegistry.cpp +++ b/cpp/src/IceGrid/IceGridRegistry.cpp @@ -18,6 +18,11 @@ # include <IceGrid/Database.h> # include <IceGrid/WellKnownObjectsManager.h> #endif +#ifdef QTSQL +# include <IceSQL/SqlTypes.h> +# include <QtCore/QCoreApplication> +# include <QtCore/QTextCodec> +#endif using namespace std; using namespace Ice; @@ -31,6 +36,7 @@ class RegistryService : public Service public: RegistryService(); + ~RegistryService(); virtual bool shutdown(); @@ -46,6 +52,9 @@ private: void usage(const std::string&); RegistryIPtr _registry; +#ifdef QTSQL + QCoreApplication* _qtApp; +#endif }; } // End of namespace IceGrid @@ -54,6 +63,17 @@ RegistryService::RegistryService() { } +RegistryService::~RegistryService() +{ +#ifdef QTSQL + if(_qtApp != 0) + { + delete _qtApp; + _qtApp = 0; + } +#endif +} + bool RegistryService::shutdown() { @@ -121,6 +141,7 @@ RegistryService::start(int argc, char* argv[]) out << "you should set individual adapter thread pools instead."; } + TraceLevelsPtr traceLevels = new TraceLevels(communicator(), "IceGrid.Registry"); _registry = new RegistryI(communicator(), traceLevels, nowarn, readonly); @@ -163,6 +184,15 @@ RegistryService::initializeCommunicator(int& argc, char* argv[], // initData.properties->setProperty("Ice.Default.CollocationOptimized", "0"); +#ifdef QTSQL + if(QCoreApplication::instance() == 0) + { + _qtApp = new QCoreApplication(argc, argv); + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + } + initData.threadHook = new IceSQL::ThreadHook(); +#endif + return Service::initializeCommunicator(argc, argv, initData); } diff --git a/cpp/src/IceGrid/Makefile b/cpp/src/IceGrid/Makefile index 7fe143ef00d..e8b60f41552 100644 --- a/cpp/src/IceGrid/Makefile +++ b/cpp/src/IceGrid/Makefile @@ -9,6 +9,9 @@ top_srcdir = ../.. +# Set appropriately if building IceGrid to use SQL database +#QTSQL_HOME = /opt/qt + ADMIN = $(top_srcdir)/bin/icegridadmin NODE_SERVER = $(top_srcdir)/bin/icegridnode REGISTRY_SERVER = $(top_srcdir)/bin/icegridregistry @@ -44,10 +47,6 @@ REGISTRY_OBJS = AdminCallbackRouter.o \ RegistryI.o \ RegistryServerAdminRouter.o \ InternalRegistryI.o \ - StringApplicationInfoDict.o \ - IdentityObjectInfoDict.o \ - StringAdapterInfoDict.o \ - Database.o \ Allocatable.o \ AdapterCache.o \ ObjectCache.o \ @@ -55,6 +54,8 @@ REGISTRY_OBJS = AdminCallbackRouter.o \ ServerCache.o \ NodeCache.o \ ReplicaCache.o \ + Database.o \ + DatabaseCache.o \ LocatorI.o \ LocatorRegistryI.o \ AdminI.o \ @@ -72,16 +73,42 @@ REGISTRY_OBJS = AdminCallbackRouter.o \ ReplicaSessionManager.o \ WellKnownObjectsManager.o +ifneq ($(QTSQL_HOME),) +ICESQL_DIR = $(top_srcdir)/src/IceSQL + +%.o: $(ICESQL_DIR)/%.cpp + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< + +REGISTRY_OBJS += SqlStringApplicationInfoDict.o \ + SqlIdentityObjectInfoDict.o \ + SqlStringAdapterInfoDict.o + +ICESQL_OBJS = SqlTypes.o +else +REGISTRY_OBJS += StringApplicationInfoDict.o \ + IdentityObjectInfoDict.o \ + StringAdapterInfoDict.o +endif + NODE_SVR_OBJS = $(COMMON_OBJS) \ $(NODE_OBJS) \ $(REGISTRY_OBJS) \ IceGridNode.o +ifneq ($(QTSQL_HOME),) +NODE_SVR_OBJS += $(ICESQL_OBJS) +endif + REGISTRY_SVR_OBJS = \ $(COMMON_OBJS) \ $(REGISTRY_OBJS) \ IceGridRegistry.o +ifneq ($(QTSQL_HOME),) +REGISTRY_SVR_OBJS += \ + $(ICESQL_OBJS) +endif + SRCS = $(ADMIN_OBJS:.o=.cpp) \ $(COMMON_OBJS:.o=.cpp) \ $(NODE_OBJS:.o=.cpp) \ @@ -89,6 +116,10 @@ SRCS = $(ADMIN_OBJS:.o=.cpp) \ IceGridNode.cpp \ IceGridRegistry.cpp +ifneq ($(QTSQL_HOME),) +SRCS += $(patsubst %.o,$(ICESQL_DIR)/%.cpp,$(ICESQL_DIR)) +endif + SLICE_SRCS = ../IceGrid/Internal.ice HDIR = $(headerdir)/IceGrid @@ -100,10 +131,15 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceGrid $(ICECPPFLAGS) include $(top_srcdir)/config/Make.rules -CPPFLAGS := $(CPPFLAGS) -I.. $(OPENSSL_FLAGS) $(READLINE_FLAGS) +CPPFLAGS := $(CPPFLAGS) -I.. $(OPENSSL_FLAGS) $(READLINE_FLAGS) $(QTSQL_FLAGS) ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --checksum --ice --include-dir IceGrid $(SLICE2CPPFLAGS) -LINKWITH := -lGlacier2 $(BZIP2_RPATH_LINK) -lIce -lIceUtil + +ifneq ($(QTSQL_HOME),) +DBLINKWITH += $(QTSQL_RPATH_LINK) $(QTSQL_LIBS) +else +DBLINKWITH += $(DB_RPATH_LINK) -lFreeze +endif $(ADMIN): $(ADMIN_OBJS) $(LIBTARGETS) rm -f $@ @@ -113,36 +149,44 @@ $(ADMIN): $(ADMIN_OBJS) $(LIBTARGETS) $(REGISTRY_SERVER): $(REGISTRY_SVR_OBJS) $(LIBTARGETS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(REGISTRY_SVR_OBJS) -lIceGrid -lIceStormService -lGlacier2 -lIcePatch2 \ - $(DB_RPATH_LINK) -lFreeze -lIceBox $(EXPAT_RPATH_LINK) -lIceXML -lIceSSL $(OPENSSL_LIBS) $(LIBS) + $(DBLINKWITH) -lIceBox $(EXPAT_RPATH_LINK) -lIceXML -lIceSSL $(OPENSSL_LIBS) $(LIBS) $(NODE_SERVER): $(NODE_SVR_OBJS) $(LIBTARGETS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(NODE_SVR_OBJS) -lIceGrid -lIceStormService -lIceBox -lGlacier2 -lIcePatch2 \ - $(DB_RPATH_LINK) -lFreeze $(EXPAT_RPATH_LINK) -lIceXML -lIceSSL $(OPENSSL_LIBS) $(LIBS) + $(DBLINKWITH) $(EXPAT_RPATH_LINK) -lIceXML -lIceSSL $(OPENSSL_LIBS) $(LIBS) + +ifneq ($(QTSQL_HOME),) +# Required because of inclusion in .depend +$(LOCAL_HDIR)/StringApplicationInfoDict.h: + touch $@ + +$(LOCAL_HDIR)/IdentityObjectInfoDict.h: + touch $@ +$(LOCAL_HDIR)/StringAdapterInfoDict.h: + touch $@ +else $(LOCAL_HDIR)/StringApplicationInfoDict.h StringApplicationInfoDict.cpp: $(LOCAL_SDIR)/Internal.ice $(SLICE2FREEZE) $(SLICEPARSERLIB) rm -f StringApplicationInfoDict.h StringApplicationInfoDict.cpp $(SLICE2FREEZECMD) --dict IceGrid::StringApplicationInfoDict,string,IceGrid::ApplicationInfo \ StringApplicationInfoDict $(LOCAL_SDIR)/Internal.ice -clean:: - -rm -f StringApplicationInfoDict.h StringApplicationInfoDict.cpp - $(LOCAL_HDIR)/IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp: $(slicedir)/Ice/Identity.ice $(LOCAL_SDIR)/Internal.ice $(SLICE2FREEZE) $(SLICEPARSERLIB) rm -f IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp $(SLICE2FREEZECMD) --dict IceGrid::IdentityObjectInfoDict,Ice::Identity,IceGrid::ObjectInfo \ --dict-index IceGrid::IdentityObjectInfoDict,type \ IdentityObjectInfoDict $(slicedir)/Ice/Identity.ice $(LOCAL_SDIR)/Internal.ice -clean:: - rm -f IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp - $(LOCAL_HDIR)/StringAdapterInfoDict.h StringAdapterInfoDict.cpp: $(SDIR)/Admin.ice $(SLICE2FREEZE) $(SLICEPARSERLIB) rm -f StringAdapterInfoDict.h StringAdapterInfoDict.cpp $(SLICE2FREEZECMD) --dict IceGrid::StringAdapterInfoDict,string,IceGrid::AdapterInfo \ --dict-index IceGrid::StringAdapterInfoDict,replicaGroupId StringAdapterInfoDict $(SDIR)/Admin.ice +endif clean:: + -rm -f StringApplicationInfoDict.h StringApplicationInfoDict.cpp + rm -f IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp rm -f StringAdapterInfoDict.h StringAdapterInfoDict.cpp # Needed for make -jn to work. diff --git a/cpp/src/IceGrid/Makefile.mak b/cpp/src/IceGrid/Makefile.mak index ec310cffff1..580a54ba14d 100644 --- a/cpp/src/IceGrid/Makefile.mak +++ b/cpp/src/IceGrid/Makefile.mak @@ -9,6 +9,9 @@ top_srcdir = ..\..
+# Set appropriately if building IceGrid to use SQL database
+#QTSQL_HOME = C:\Qt\4.5.2
+
ADMIN = $(top_srcdir)\bin\icegridadmin.exe
NODE_SERVER = $(top_srcdir)\bin\icegridnode.exe
REGISTRY_SERVER = $(top_srcdir)\bin\icegridregistry.exe
@@ -44,10 +47,8 @@ REGISTRY_OBJS = AdminCallbackRouter.obj \ RegistryI.obj \
RegistryServerAdminRouter.obj \
InternalRegistryI.obj \
- StringApplicationInfoDict.obj \
- IdentityObjectInfoDict.obj \
- StringAdapterInfoDict.obj \
Database.obj \
+ DatabaseCache.obj \
Allocatable.obj \
AdapterCache.obj \
ObjectCache.obj \
@@ -72,16 +73,46 @@ REGISTRY_OBJS = AdminCallbackRouter.obj \ ReplicaSessionManager.obj \
WellKnownObjectsManager.obj
+!if "$(QTSQL_HOME)" != ""
+ICESQL_DIR = $(top_srcdir)\src\IceSQL
+
+{$(ICESQL_DIR)\}.cpp.obj::
+ $(CXX) /c $(CPPFLAGS) $(CXXFLAGS) $<
+
+REGISTRY_OBJS = $(REGISTRY_OBJS) \
+ SqlStringApplicationInfoDict.obj \
+ SqlIdentityObjectInfoDict.obj \
+ SqlStringAdapterInfoDict.obj
+
+ICESQL_OBJS = SqlTypes.obj
+!else
+REGISTRY_OBJS = $(REGISTRY_OBJS) \
+ StringApplicationInfoDict.obj \
+ IdentityObjectInfoDict.obj \
+ StringAdapterInfoDict.obj
+!endif
+
+
NODE_SVR_OBJS = $(COMMON_OBJS) \
$(NODE_OBJS) \
$(REGISTRY_OBJS) \
IceGridNode.obj
+!if "$(QTSQL_HOME)" != ""
+NODE_SVR_OBJS = $(NODE_SVR_OBJS) \
+ $(ICESQL_OBJS)
+!endif
+
REGISTRY_SVR_OBJS = \
$(COMMON_OBJS) \
$(REGISTRY_OBJS) \
IceGridRegistry.obj
+!if "$(QTSQL_HOME)" != ""
+REGISTRY_SVR_OBJS = $(REGISTRY_SVR_OBJS) \
+ $(ICESQL_OBJS)
+!endif
+
SRCS = $(ADMIN_OBJS:.obj=.cpp) \
$(COMMON_OBJS:.obj=.cpp) \
$(NODE_OBJS:.obj=.cpp) \
@@ -89,6 +120,11 @@ SRCS = $(ADMIN_OBJS:.obj=.cpp) \ IceGridNode.cpp \
IceGridRegistry.cpp
+!if "$(QTSQL_HOME)" != ""
+SRCS = $(SRCS) \
+ $(ICESQL_DIR)\SqlTypes.cpp
+!endif
+
HDIR = $(headerdir)\IceGrid
SDIR = $(slicedir)\IceGrid
LOCAL_HDIR = ..\IceGrid
@@ -98,10 +134,17 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceGrid $(ICECPPFLAGS) !include $(top_srcdir)\config\Make.rules.mak
+!if "$(QTSQL_HOME)" != ""
+DBLINKWITH = $(QTSQL_LIBS)
+CPPFLAGS = $(QTSQL_FLAGS) $(CPPFLAGS)
+!else
+DBLINKWITH = freeze$(LIBSUFFIX).lib
+!endif
+
LINKWITH = $(LIBS) glacier2$(LIBSUFFIX).lib
ALINKWITH = $(LINKWITH) icegrid$(LIBSUFFIX).lib icexml$(LIBSUFFIX).lib icepatch2$(LIBSUFFIX).lib \
icebox$(LIBSUFFIX).lib
-NLINKWITH = $(ALINKWITH) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib \
+NLINKWITH = $(ALINKWITH) $(DBLINKWITH) icestorm$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib \
icessl$(LIBSUFFIX).lib icestormservice$(LIBSUFFIX).lib $(OPENSSL_LIBS)
!if "$(BCPLUSPLUS)" != "yes"
NLINKWITH = $(NLINKWITH) pdh.lib ws2_32.lib
@@ -145,11 +188,21 @@ $(NODE_SERVER): $(NODE_SVR_OBJS) IceGridNode.res @if exist $@.manifest \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
+!if "$(QTSQL_HOME)" != ""
+$(LOCAL_HDIR)\StringApplicationInfoDict.h:
+ type dummyinclude\unistd.h > StringApplicationInfoDict.h
+
+$(LOCAL_HDIR)\IdentityObjectInfoDict.h:
+ type dummyinclude\unistd.h > IdentityObjectInfoDict.h
+
+$(LOCAL_HDIR)\StringAdapterInfoDict.h:
+ type dummyinclude\unistd.h > StringAdapterInfoDict.h
+!else
StringApplicationInfoDict.h StringApplicationInfoDict.cpp: $(LOCAL_SDIR)\Internal.ice $(SLICE2FREEZE) $(SLICEPARSERLIB)
del /q StringApplicationInfoDict.h StringApplicationInfoDict.cpp
$(SLICE2FREEZECMD) --dict IceGrid::StringApplicationInfoDict,string,IceGrid::ApplicationInfo \
StringApplicationInfoDict $(LOCAL_SDIR)\Internal.ice
-
+
IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp: $(slicedir)\Ice\Identity.ice $(LOCAL_SDIR)\Internal.ice $(SLICE2FREEZE) $(SLICEPARSERLIB)
del /q IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp
$(SLICE2FREEZECMD) --dict IceGrid::IdentityObjectInfoDict,Ice::Identity,IceGrid::ObjectInfo \
@@ -160,6 +213,7 @@ StringAdapterInfoDict.h StringAdapterInfoDict.cpp: $(SDIR)\Admin.ice $(SLICE2FRE del /q StringAdapterInfoDict.h StringAdapterInfoDict.cpp
$(SLICE2FREEZECMD) --dict IceGrid::StringAdapterInfoDict,string,IceGrid::AdapterInfo \
--dict-index IceGrid::StringAdapterInfoDict,replicaGroupId StringAdapterInfoDict $(SDIR)\Admin.ice
+!endif
Scanner.cpp : Scanner.l
flex Scanner.l
diff --git a/cpp/src/IceGrid/SqlIdentityObjectInfoDict.cpp b/cpp/src/IceGrid/SqlIdentityObjectInfoDict.cpp new file mode 100644 index 00000000000..9c56d96b649 --- /dev/null +++ b/cpp/src/IceGrid/SqlIdentityObjectInfoDict.cpp @@ -0,0 +1,224 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 <IceGrid/SqlIdentityObjectInfoDict.h> +#include <IceSQL/SqlTypes.h> +#include <QtSql/QSqlQuery> +#include <QtCore/QVariant> +#include <QtCore/QStringList> + +using namespace IceSQL; +using namespace IceGrid; +using namespace std; + + +SqlIdentityObjectInfoDict::SqlIdentityObjectInfoDict(const DatabaseConnectionPtr& connection, + const string& table, + const Ice::CommunicatorPtr& communicator) : + _communicator(communicator), + _table(table) +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (id VARCHAR(255) PRIMARY KEY, proxy TEXT, type "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "VARCHAR(255));"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + QSqlQuery idxQuery(connection->connection); + queryString = "CREATE INDEX IDX_"; + queryString += _table; + queryString += "_TYPE ON "; + queryString += _table; + queryString += " (type);"; + + if(!idxQuery.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, idxQuery.lastError()); + } + } +} + +void +SqlIdentityObjectInfoDict::put(const DatabaseConnectionPtr& connection, + const Ice::Identity& id, + const ObjectInfo& info) +{ + QSqlQuery query(connection->connection); + string queryString = "UPDATE "; + queryString += _table; + queryString += " SET proxy = ?, type = ? WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->proxyToString(info.proxy).c_str()); + query.bindValue(1, info.type.c_str()); + query.bindValue(2, _communicator->identityToString(id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.numRowsAffected() == 0) + { + // + // We do a find since some databases (MySQL) return 0 for number of rows affected + // if row exists but data was not changed from previous values. + // + try + { + find(connection, id); + } + catch(const NotFoundException&) + { + QSqlQuery insertQuery(connection->connection); + queryString = "INSERT INTO "; + queryString += _table; + queryString += " VALUES(?, ?, ?);"; + + insertQuery.prepare(queryString.c_str()); + insertQuery.bindValue(0, _communicator->identityToString(id).c_str()); + insertQuery.bindValue(1, _communicator->proxyToString(info.proxy).c_str()); + insertQuery.bindValue(2, info.type.c_str()); + + if(!insertQuery.exec()) + { + throwDatabaseException(__FILE__, __LINE__, insertQuery.lastError()); + } + } + } +} + +IceGrid::ObjectInfo +SqlIdentityObjectInfoDict::find(const DatabaseConnectionPtr& connection, + const Ice::Identity& id) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.next()) + { + IceGrid::ObjectInfo info; + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.type = query.value(2).toString().toStdString(); + return info; + } + else + { + throw NotFoundException(__FILE__, __LINE__); + } +} + +vector<IceGrid::ObjectInfo> +SqlIdentityObjectInfoDict::findByType(const DatabaseConnectionPtr& connection, + const string& type) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE type = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, type.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + vector<IceGrid::ObjectInfo> infos; + while(query.next()) + { + IceGrid::ObjectInfo info; + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.type = query.value(2).toString().toStdString(); + infos.push_back(info); + } + return infos; +} + +void +SqlIdentityObjectInfoDict::getMap(const DatabaseConnectionPtr& connection, + IdentityObjectInfoDict& objectMap) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + while(query.next()) + { + Ice::Identity id = _communicator->stringToIdentity(query.value(0).toString().toStdString()); + + IceGrid::ObjectInfo info; + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.type = query.value(2).toString().toStdString(); + + objectMap[id] = info; + } +} + +void +SqlIdentityObjectInfoDict::erase(const DatabaseConnectionPtr& connection, + const Ice::Identity& id) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlIdentityObjectInfoDict::clear(const DatabaseConnectionPtr& connection) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} diff --git a/cpp/src/IceGrid/SqlIdentityObjectInfoDict.h b/cpp/src/IceGrid/SqlIdentityObjectInfoDict.h new file mode 100644 index 00000000000..26713daca7f --- /dev/null +++ b/cpp/src/IceGrid/SqlIdentityObjectInfoDict.h @@ -0,0 +1,47 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_IDENTITY_OBJECT_INFO_DICT_H +#define SQL_IDENTITY_OBJECT_INFO_DICT_H + +#include <Ice/CommunicatorF.h> +#include <IceGrid/Admin.h> +#include <IceSQL/SqlTypes.h> + +namespace IceGrid +{ + +typedef std::map<Ice::Identity, ObjectInfo> IdentityObjectInfoDict; + +class SqlIdentityObjectInfoDict : public IceUtil::Shared +{ +public: + + SqlIdentityObjectInfoDict(const IceSQL::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&); + + void put(const IceSQL::DatabaseConnectionPtr&, const Ice::Identity&, const ObjectInfo&); + + ObjectInfo find(const IceSQL::DatabaseConnectionPtr&, const Ice::Identity&); + ObjectInfoSeq findByType(const IceSQL::DatabaseConnectionPtr&, const std::string&); + void getMap(const IceSQL::DatabaseConnectionPtr&, IdentityObjectInfoDict&); + + void erase(const IceSQL::DatabaseConnectionPtr&, const Ice::Identity&); + void clear(const IceSQL::DatabaseConnectionPtr&); + +private: + + const Ice::CommunicatorPtr _communicator; + const std::string _table; +}; + +typedef IceUtil::Handle<SqlIdentityObjectInfoDict> SqlIdentityObjectInfoDictPtr; + +} + +#endif diff --git a/cpp/src/IceGrid/SqlStringAdapterInfoDict.cpp b/cpp/src/IceGrid/SqlStringAdapterInfoDict.cpp new file mode 100644 index 00000000000..ce11f221560 --- /dev/null +++ b/cpp/src/IceGrid/SqlStringAdapterInfoDict.cpp @@ -0,0 +1,228 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 <IceGrid/SqlStringAdapterInfoDict.h> +#include <IceSQL/SqlTypes.h> +#include <QtSql/QSqlQuery> +#include <QtCore/QVariant> +#include <QtCore/QStringList> + +using namespace IceSQL; +using namespace IceGrid; +using namespace std; + +SqlStringAdapterInfoDict::SqlStringAdapterInfoDict(const DatabaseConnectionPtr& connection, + const string& table, + const Ice::CommunicatorPtr& communicator) : + _communicator(communicator), + _table(table) + +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (id "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "VARCHAR(255) PRIMARY KEY, proxy TEXT, replicaGroupId "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "VARCHAR(255));"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + QSqlQuery idxQuery(connection->connection); + queryString = "CREATE INDEX IDX_"; + queryString += _table; + queryString += "_REPLICA_GROUP_ID ON "; + queryString += _table; + queryString += " (replicaGroupId);"; + + if(!idxQuery.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, idxQuery.lastError()); + } + } +} + +void +SqlStringAdapterInfoDict::put(const DatabaseConnectionPtr& connection, + const AdapterInfo& info) +{ + QSqlQuery query(connection->connection); + string queryString = "UPDATE "; + queryString += _table; + queryString += " SET proxy = ?, replicaGroupId = ? WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->proxyToString(info.proxy).c_str()); + query.bindValue(1, info.replicaGroupId.c_str()); + query.bindValue(2, info.id.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.numRowsAffected() == 0) + { + // + // We do a find since some databases (MySQL) return 0 for number of rows affected + // if row exists but data was not changed from previous values. + // + try + { + find(connection, info.id); + } + catch(const NotFoundException&) + { + QSqlQuery insertQuery(connection->connection); + queryString = "INSERT INTO "; + queryString += _table; + queryString += " VALUES(?, ?, ?);"; + + insertQuery.prepare(queryString.c_str()); + insertQuery.bindValue(0, info.id.c_str()); + insertQuery.bindValue(1, _communicator->proxyToString(info.proxy).c_str()); + insertQuery.bindValue(2, info.replicaGroupId.c_str()); + + if(!insertQuery.exec()) + { + throwDatabaseException(__FILE__, __LINE__, insertQuery.lastError()); + } + } + } +} + +IceGrid::AdapterInfo +SqlStringAdapterInfoDict::find(const DatabaseConnectionPtr& connection, + const string& id) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, id.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.next()) + { + IceGrid::AdapterInfo info; + info.id = query.value(0).toString().toStdString(); + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.replicaGroupId = query.value(2).toString().toStdString(); + return info; + } + else + { + throw NotFoundException(__FILE__, __LINE__); + } +} + +vector<IceGrid::AdapterInfo> +SqlStringAdapterInfoDict::findByReplicaGroupId(const DatabaseConnectionPtr& connection, + const string& id) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE replicaGroupId = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, id.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + vector<IceGrid::AdapterInfo> infos; + while(query.next()) + { + IceGrid::AdapterInfo info; + info.id = query.value(0).toString().toStdString(); + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.replicaGroupId = query.value(2).toString().toStdString(); + infos.push_back(info); + } + return infos; +} + +void +SqlStringAdapterInfoDict::getMap(const DatabaseConnectionPtr& connection, + StringAdapterInfoDict& adapterMap) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + while(query.next()) + { + IceGrid::AdapterInfo info; + info.id = query.value(0).toString().toStdString(); + info.proxy = _communicator->stringToProxy(query.value(1).toString().toStdString()); + info.replicaGroupId = query.value(2).toString().toStdString(); + adapterMap[info.id] = info; + } +} + +void +SqlStringAdapterInfoDict::erase(const DatabaseConnectionPtr& connection, + const string& id) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, id.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlStringAdapterInfoDict::clear(const DatabaseConnectionPtr& connection) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} diff --git a/cpp/src/IceGrid/SqlStringAdapterInfoDict.h b/cpp/src/IceGrid/SqlStringAdapterInfoDict.h new file mode 100644 index 00000000000..02271316415 --- /dev/null +++ b/cpp/src/IceGrid/SqlStringAdapterInfoDict.h @@ -0,0 +1,47 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_STRING_ADAPTER_INFO_DICT_H +#define SQL_STRING_ADAPTER_INFO_DICT_H + +#include <Ice/CommunicatorF.h> +#include <IceGrid/Admin.h> +#include <IceSQL/SqlTypes.h> + +namespace IceGrid +{ + +typedef std::map<std::string, AdapterInfo> StringAdapterInfoDict; + +class SqlStringAdapterInfoDict : public IceUtil::Shared +{ +public: + + SqlStringAdapterInfoDict(const IceSQL::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&); + + void put(const IceSQL::DatabaseConnectionPtr&, const AdapterInfo&); + + AdapterInfo find(const IceSQL::DatabaseConnectionPtr&, const std::string&); + AdapterInfoSeq findByReplicaGroupId(const IceSQL::DatabaseConnectionPtr&, const std::string&); + void getMap(const IceSQL::DatabaseConnectionPtr&, StringAdapterInfoDict&); + + void erase(const IceSQL::DatabaseConnectionPtr&, const std::string&); + void clear(const IceSQL::DatabaseConnectionPtr&); + +private: + + const Ice::CommunicatorPtr _communicator; + const std::string _table; +}; + +typedef IceUtil::Handle<SqlStringAdapterInfoDict> SqlStringAdapterInfoDictPtr; + +} + +#endif diff --git a/cpp/src/IceGrid/SqlStringApplicationInfoDict.cpp b/cpp/src/IceGrid/SqlStringApplicationInfoDict.cpp new file mode 100644 index 00000000000..ae31639d310 --- /dev/null +++ b/cpp/src/IceGrid/SqlStringApplicationInfoDict.cpp @@ -0,0 +1,343 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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/Initialize.h> +#include <IceGrid/SqlStringApplicationInfoDict.h> +#include <IceSQL/SqlTypes.h> +#include <QtSql/QSqlQuery> +#include <QtCore/QVariant> +#include <QtCore/QStringList> + +#include <iomanip> + +using namespace IceSQL; +using namespace IceGrid; +using namespace std; + +namespace +{ + +string +escapePsqlBinary(const vector<Ice::Byte>& bytes) +{ + ostringstream result; + for(unsigned int i = 0; i < bytes.size(); ++i) + { + result << "\\\\"; + result << setfill('0') << setw(3) << oct << (int)bytes[i]; + } + return result.str(); +} + +string +escapeOdbcBinary(const vector<Ice::Byte>& bytes) +{ + ostringstream result; + for(unsigned int i = 0; i < bytes.size(); ++i) + { + result << setfill('0') << setw(2) << hex << (int)bytes[i]; + } + return result.str(); +} + +}; + +SqlStringApplicationInfoDict::SqlStringApplicationInfoDict(const DatabaseConnectionPtr& connection, + const string& table, + const Ice::CommunicatorPtr& communicator) : + _communicator(communicator), + _table(table) +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (name "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "VARCHAR(255) PRIMARY KEY, uuid VARCHAR(40), createTime BIGINT, createUser "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "TEXT, updateTime BIGINT, updateUser "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "TEXT, revision INTEGER, descriptor "; + if(connection->connection.driverName() == "QPSQL") + { + queryString += "BYTEA"; + } + else if(connection->connection.driverName() == "QODBC") + { + queryString += "VARBINARY(MAX)"; + } + else + { + queryString += "BLOB"; + } + queryString += ");"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } +} + +void +SqlStringApplicationInfoDict::put(const DatabaseConnectionPtr& connection, + const string& name, + const ApplicationInfo& info) +{ + IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator); + IceInternal::BasicStream stream(instance.get()); + stream.startWriteEncaps(); + info.descriptor.__write(&stream); + stream.writePendingObjects(); + stream.endWriteEncaps(); + + QSqlQuery query(connection->connection); + ostringstream queryString; + queryString << "UPDATE " << _table << " SET uuid = ?, createTime = '" << info.createTime + << "', createUser = ?, updateTime = '" << info.updateTime << "', updateUser = ?, revision = '" + << info.revision << "', descriptor = "; + + QString driver = connection->connection.driverName(); + if(driver == "QPSQL" || driver == "QODBC") + { + vector<Ice::Byte> bytes(stream.b.size()); + ::memcpy(&bytes[0], stream.b.begin(), stream.b.size()); + + if(driver == "QPSQL") + { + queryString << "E'" << escapePsqlBinary(bytes) << "'"; + } + else + { + queryString << "0x" << escapeOdbcBinary(bytes); + } + } + else + { + queryString << "?"; + } + queryString << " WHERE name = ?;"; + + query.prepare(queryString.str().c_str()); + + int placeholder = 0; + query.bindValue(placeholder++, info.uuid.c_str()); + query.bindValue(placeholder++, info.createUser.c_str()); + query.bindValue(placeholder++, info.updateUser.c_str()); + + if(driver != "QPSQL" && driver != "QODBC") + { + QByteArray bytes; + bytes.resize(stream.b.size()); + ::memcpy(bytes.data(), stream.b.begin(), stream.b.size()); + QVariant descriptor(bytes); + + query.bindValue(placeholder++, descriptor); + } + query.bindValue(placeholder, name.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.numRowsAffected() == 0) + { + // + // We do a find since some databases (MySQL) return 0 for number of rows affected + // if row exists but data was not changed from previous values. + // + try + { + find(connection, name); + } + catch(const NotFoundException&) + { + QSqlQuery insertQuery(connection->connection); + queryString.str(""); + queryString << "INSERT INTO " << _table << " VALUES(?, ?, '" << info.createTime << "', ?, '" + << info.updateTime << "', ?, '" << info.revision << "', "; + + if(driver == "QPSQL" || driver == "QODBC") + { + vector<Ice::Byte> bytes(stream.b.size()); + ::memcpy(&bytes[0], stream.b.begin(), stream.b.size()); + + if(driver == "QPSQL") + { + queryString << "E'" << escapePsqlBinary(bytes) << "'"; + } + else + { + queryString << "0x" << escapeOdbcBinary(bytes); + } + } + else + { + queryString << "?"; + } + queryString << ");"; + + insertQuery.prepare(queryString.str().c_str()); + insertQuery.bindValue(0, name.c_str()); + insertQuery.bindValue(1, info.uuid.c_str()); + insertQuery.bindValue(2, info.createUser.c_str()); + insertQuery.bindValue(3, info.updateUser.c_str()); + + if(driver != "QPSQL" && driver != "QODBC") + { + QByteArray bytes; + bytes.resize(stream.b.size()); + ::memcpy(bytes.data(), stream.b.begin(), stream.b.size()); + QVariant descriptor(bytes); + + insertQuery.bindValue(4, descriptor); + } + + if(!insertQuery.exec()) + { + throwDatabaseException(__FILE__, __LINE__, insertQuery.lastError()); + } + } + } +} + +IceGrid::ApplicationInfo +SqlStringApplicationInfoDict::find(const DatabaseConnectionPtr& connection, + const string& name) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE name = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, name.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.next()) + { + IceGrid::ApplicationInfo info; + info.uuid = query.value(1).toString().toStdString(); + info.createTime = query.value(2).toLongLong(); + info.createUser = query.value(3).toString().toStdString(); + info.updateTime = query.value(4).toLongLong(); + info.updateUser = query.value(5).toString().toStdString(); + info.revision = query.value(6).toInt(); + + QByteArray bytes = query.value(7).toByteArray(); + + IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator); + IceInternal::BasicStream stream(instance.get()); + stream.b.resize(bytes.size()); + ::memcpy(&stream.b[0], bytes.data(), bytes.size()); + stream.i = stream.b.begin(); + stream.startReadEncaps(); + info.descriptor.__read(&stream); + stream.readPendingObjects(); + stream.endReadEncaps(); + + return info; + } + else + { + throw NotFoundException(__FILE__, __LINE__); + } +} + +void +SqlStringApplicationInfoDict::getMap(const DatabaseConnectionPtr& connection, + StringApplicationInfoDict& applicationMap) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + while(query.next()) + { + string name = query.value(0).toString().toStdString(); + + IceGrid::ApplicationInfo info; + info.uuid = query.value(1).toString().toStdString(); + info.createTime = query.value(2).toLongLong(); + info.createUser = query.value(3).toString().toStdString(); + info.updateTime = query.value(4).toLongLong(); + info.updateUser = query.value(5).toString().toStdString(); + info.revision = query.value(6).toInt(); + + QByteArray bytes = query.value(7).toByteArray(); + + IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator); + IceInternal::BasicStream stream(instance.get()); + stream.b.resize(bytes.size()); + ::memcpy(&stream.b[0], bytes.data(), bytes.size()); + stream.i = stream.b.begin(); + stream.startReadEncaps(); + info.descriptor.__read(&stream); + stream.readPendingObjects(); + stream.endReadEncaps(); + + applicationMap[name] = info; + } +} + +void +SqlStringApplicationInfoDict::erase(const DatabaseConnectionPtr& connection, + const string& name) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE name = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, name.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlStringApplicationInfoDict::clear(const DatabaseConnectionPtr& connection) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} diff --git a/cpp/src/IceGrid/SqlStringApplicationInfoDict.h b/cpp/src/IceGrid/SqlStringApplicationInfoDict.h new file mode 100644 index 00000000000..fbfd4a0b22f --- /dev/null +++ b/cpp/src/IceGrid/SqlStringApplicationInfoDict.h @@ -0,0 +1,46 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_STRING_APPLICATION_INFO_DICT_H +#define SQL_STRING_APPLICATION_INFO_DICT_H + +#include <Ice/CommunicatorF.h> +#include <IceGrid/Admin.h> +#include <IceSQL/SqlTypes.h> + +namespace IceGrid +{ + +typedef std::map<std::string, ApplicationInfo> StringApplicationInfoDict; + +class SqlStringApplicationInfoDict : public IceUtil::Shared +{ +public: + + SqlStringApplicationInfoDict(const IceSQL::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&); + + void put(const IceSQL::DatabaseConnectionPtr&, const std::string&, const ApplicationInfo&); + + ApplicationInfo find(const IceSQL::DatabaseConnectionPtr&, const std::string&); + void getMap(const IceSQL::DatabaseConnectionPtr&, StringApplicationInfoDict&); + + void erase(const IceSQL::DatabaseConnectionPtr&, const std::string&); + void clear(const IceSQL::DatabaseConnectionPtr&); + +private: + + const Ice::CommunicatorPtr _communicator; + const std::string _table; +}; + +typedef IceUtil::Handle<SqlStringApplicationInfoDict> SqlStringApplicationInfoDictPtr; + +} + +#endif diff --git a/cpp/src/IceGrid/Topics.h b/cpp/src/IceGrid/Topics.h index b2f8ef86024..c8e12562b16 100644 --- a/cpp/src/IceGrid/Topics.h +++ b/cpp/src/IceGrid/Topics.h @@ -14,9 +14,15 @@ #include <IceStorm/IceStorm.h> #include <IceGrid/Internal.h> #include <IceGrid/Observer.h> -#include <IceGrid/StringApplicationInfoDict.h> -#include <IceGrid/StringAdapterInfoDict.h> -#include <IceGrid/IdentityObjectInfoDict.h> +#ifdef QTSQL +# include <IceGrid/SqlStringApplicationInfoDict.h> +# include <IceGrid/SqlStringAdapterInfoDict.h> +# include <IceGrid/SqlIdentityObjectInfoDict.h> +#else +# include <IceGrid/StringApplicationInfoDict.h> +# include <IceGrid/StringAdapterInfoDict.h> +# include <IceGrid/IdentityObjectInfoDict.h> +#endif #include <set> namespace IceGrid diff --git a/cpp/src/IceSQL/SqlTypes.cpp b/cpp/src/IceSQL/SqlTypes.cpp new file mode 100644 index 00000000000..09ebe48d6d5 --- /dev/null +++ b/cpp/src/IceSQL/SqlTypes.cpp @@ -0,0 +1,413 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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/LocalException.h> +#include <Ice/Instance.h> +#include <Ice/LoggerUtil.h> +#include <IceUtil/UUID.h> +#include <IceUtil/StringUtil.h> +#include <IceSQL/SqlTypes.h> +#include <QtSql/QSqlQuery> +#include <QtSql/QSqlDriver> + +using namespace IceSQL; +using namespace std; + +DatabaseException::DatabaseException(const char* file, int line) : + ::IceUtil::Exception(file, line) +{ +} + +DatabaseException::DatabaseException(const char* file, int line, const QSqlError& err) : + ::IceUtil::Exception(file, line), + error(err) +{ +} + +DatabaseException::~DatabaseException() throw() +{ +} + +::std::string +DatabaseException::ice_name() const +{ + return "IceSQL::DatabaseException"; +} + +void +DatabaseException::ice_print(ostream& out) const +{ + Exception::ice_print(out); + out << ":\n database error: " << error.databaseText().toUtf8().data(); + out << "\n driver error: " << error.driverText().toUtf8().data(); +} + +::IceUtil::Exception* +DatabaseException::ice_clone() const +{ + return new DatabaseException(*this); +} + +void +DatabaseException::ice_throw() const +{ + throw *this; +} + +DeadlockException::DeadlockException(const char* file, int line) : + DatabaseException(file, line) +{ +} + +DeadlockException::DeadlockException(const char* file, int line, const QSqlError& err) : + DatabaseException(file, line, err) +{ +} + +DeadlockException::~DeadlockException() throw() +{ +} + +::std::string +DeadlockException::ice_name() const +{ + return "IceSQL::DeadlockException"; +} + +void +DeadlockException::ice_print(ostream& out) const +{ + DatabaseException::ice_print(out); +} + +::IceUtil::Exception* +DeadlockException::ice_clone() const +{ + return new DeadlockException(*this); +} + +void +DeadlockException::ice_throw() const +{ + throw *this; +} + +NotFoundException::NotFoundException(const char* file, int line) : + DatabaseException(file, line) +{ +} + +NotFoundException::~NotFoundException() throw() +{ +} + +::std::string +NotFoundException::ice_name() const +{ + return "IceSQL::NotFoundException"; +} + +void +NotFoundException::ice_print(ostream& out) const +{ + IceUtil::Exception::ice_print(out); +} + +::IceUtil::Exception* +NotFoundException::ice_clone() const +{ + return new NotFoundException(*this); +} + +void +NotFoundException::ice_throw() const +{ + throw *this; +} + +void +IceSQL::throwDatabaseException(const char* file, int line, const QSqlError& err) +{ + string s = IceUtilInternal::toLower(err.databaseText().toUtf8().data()); + if(s.find("deadlock") != string::npos || s.find("database is locked") != string::npos || + s.find("could not serialize") != string::npos) + { + throw DeadlockException(file, line, err); + } + else + { + throw DatabaseException(file, line, err); + } +} + +TransactionHolder::TransactionHolder(const DatabaseConnectionPtr& connection) : + _connection(connection->connection), + _committed(false) +{ + if(_connection.driverName() == "QSQLITE") + { + QSqlQuery query(_connection); + string queryString = "BEGIN EXCLUSIVE;"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } + else + { + if(!const_cast<QSqlDatabase&>(_connection).transaction()) + { + throwDatabaseException(__FILE__, __LINE__, _connection.lastError()); + } + + } +} + +TransactionHolder::~TransactionHolder() +{ + if(!_committed) + { + if(!const_cast<QSqlDatabase&>(_connection).rollback()) + { + throwDatabaseException(__FILE__, __LINE__, _connection.lastError()); + } + } +} + +void +TransactionHolder::commit() +{ + if(!const_cast<QSqlDatabase&>(_connection).commit()) + { + throwDatabaseException(__FILE__, __LINE__, _connection.lastError()); + } + _committed = true; +} + +DatabaseCache::DatabaseCache(const Ice::CommunicatorPtr& communicator, + const string& type, + const string& name, + const string& host, + const string& user, + const string& password, + bool requiresBlob) : + _communicator(communicator) +{ + Ice::PropertiesPtr properties = _communicator->getProperties(); + + _connection = QSqlDatabase::addDatabase(type.c_str(), IceUtil::generateUUID().c_str()); + _connection.setDatabaseName(name.c_str()); + _connection.setHostName(host.c_str()); + _connection.setUserName(user.c_str()); + _connection.setPassword(password.c_str()); + + DatabaseConnectionPtr connection = getConnection(); + QSqlDriver* driver = connection->connection.driver(); + if(!driver->hasFeature(QSqlDriver::Transactions)) + { + throw Ice::InitializationException(__FILE__, __LINE__, "SQL database driver requires transaction support"); + } + if(!driver->hasFeature(QSqlDriver::Unicode)) + { + throw Ice::InitializationException(__FILE__, __LINE__, "SQL database driver requires unicode support"); + } + if(requiresBlob && connection->connection.driverName() != "QODBC" && !driver->hasFeature(QSqlDriver::BLOB)) + { + throw Ice::InitializationException(__FILE__, __LINE__, "SQL database driver requires blob support"); + } + + ThreadHookPtr threadHook = + ThreadHookPtr::dynamicCast(IceInternal::getInstance(communicator)->initializationData().threadHook); + if(!threadHook) + { + Ice::Warning out(communicator->getLogger()); + out << "Thread notification hook for SQL database usage has not been configured"; + } + else + { + threadHook->setDatabaseCache(this); + } +} + +DatabaseCache::~DatabaseCache() +{ + // + // QSqlDatabase references must be removed before calling removeDatabase. + // + vector<QString> names; + for(ThreadDatabaseMap::iterator p = _cache.begin(); p != _cache.end(); ++p) + { + names.push_back(p->second->connectionName); + } + _cache.clear(); + + for(unsigned int i = 0; i < names.size(); ++i) + { + QSqlDatabase::removeDatabase(names[i]); + } +} + +DatabaseConnectionPtr +DatabaseCache::getConnection() +{ + IceUtil::Mutex::Lock lock(*this); + + ThreadDatabaseMap::iterator p = _cache.find(IceUtil::ThreadControl().id()); + if(p != _cache.end()) + { + // + // We have a cached connection. Perform a simple query to make sure + // connection has not been lost. + // + { + QSqlQuery query(p->second->connection); + if(query.exec("SELECT 1")) + { + return p->second; + } + } + + // + // QSqlDatabase reference must be removed before calling removeDatabase. + // + QString connectionName = p->second->connectionName; + _cache.erase(p); + QSqlDatabase::removeDatabase(connectionName); + } + + // + // Create a new connection + // + QString connectionName = IceUtil::generateUUID().c_str(); + QSqlDatabase connection = QSqlDatabase::cloneDatabase(_connection, connectionName); + if(!connection.open()) + { + throwDatabaseException(__FILE__, __LINE__, connection.lastError()); + } + + // + // Set isolation level, for SQLite this is done on a per transaction level. + // + if(connection.driverName() != "QSQLITE") + { + QSqlQuery query(connection); + string queryString; + if(connection.driverName() == "QPSQL") + { + queryString = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE"; + } + else if(connection.driverName() == "QMYSQL") + { + queryString = "SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;"; + } + else if(connection.driverName() == "QODBC") + { + queryString = "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;"; + } + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } + + // + // Set storage engine for MySQL. + // + if(connection.driverName() == "QMYSQL") + { + QSqlQuery query(connection); + if(!query.exec("SET storage_engine=INNODB;")) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } + + // + // Set UTF-8 character set for MySQL and PostgreSQL. + // + if(connection.driverName() == "QMYSQL" || connection.driverName() == "QPSQL") + { + QSqlQuery query(connection); + if(!query.exec("SET NAMES 'UTF8';")) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } + + DatabaseConnectionPtr db = new DatabaseConnection(connection, connectionName); + _cache[IceUtil::ThreadControl().id()] = db; + return db; +} + +DatabaseConnectionPtr +DatabaseCache::newConnection() +{ + return getConnection(); +} + +void +DatabaseCache::threadStopped() +{ + IceUtil::Mutex::Lock lock(*this); + + ThreadDatabaseMap::iterator p = _cache.find(IceUtil::ThreadControl().id()); + if(p != _cache.end()) + { + // + // QSqlDatabase reference must be removed before calling removeDatabase. + // + QString connectionName = p->second->connectionName; + _cache.erase(p); + QSqlDatabase::removeDatabase(connectionName); + } +} + +ThreadHook::ThreadHook() +{ +} + +void +ThreadHook::setDatabaseCache(const DatabaseCachePtr& cache) +{ + IceUtil::Mutex::Lock sync(*this); + + _cache = cache; +} + +void +ThreadHook::start() +{ +} + +void +ThreadHook::stop() +{ + IceUtil::Mutex::Lock sync(*this); + + if(_cache) + { + _cache->threadStopped(); + } +} + +extern "C" +{ + +ICE_DECLSPEC_EXPORT ::Ice::Plugin* +createThreadHook(const Ice::CommunicatorPtr& communicator, const string& name, const Ice::StringSeq& args) +{ + return new Ice::ThreadHookPlugin(communicator, new ThreadHook); +} + +} + + diff --git a/cpp/src/IceSQL/SqlTypes.h b/cpp/src/IceSQL/SqlTypes.h new file mode 100644 index 00000000000..62f5525d8b2 --- /dev/null +++ b/cpp/src/IceSQL/SqlTypes.h @@ -0,0 +1,156 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_TYPES_H +#define SQL_TYPES_H + +#include <IceUtil/Exception.h> +#include <IceUtil/Thread.h> +#include <Ice/CommunicatorF.h> +#include <Ice/Initialize.h> +#include <QtSql/QSqlDatabase> +#include <QtSql/QSqlError> + +namespace IceSQL +{ + +// +// Generic expcetion for database failures. +// +class DatabaseException : public IceUtil::Exception +{ +public: + + DatabaseException(const char*, int); + DatabaseException(const char*, int, const QSqlError&); + virtual ~DatabaseException() throw(); + + virtual ::std::string ice_name() const; + virtual void ice_print(::std::ostream&) const; + virtual ::IceUtil::Exception* ice_clone() const; + virtual void ice_throw() const; + + QSqlError error; +}; + +class DeadlockException : public DatabaseException +{ +public: + + DeadlockException(const char*, int); + DeadlockException(const char*, int, const QSqlError&); + virtual ~DeadlockException() throw(); + + virtual ::std::string ice_name() const; + virtual void ice_print(::std::ostream&) const; + virtual ::IceUtil::Exception* ice_clone() const; + virtual void ice_throw() const; +}; + +class NotFoundException : public DatabaseException +{ +public: + + NotFoundException(const char*, int); + virtual ~NotFoundException() throw(); + + virtual ::std::string ice_name() const; + virtual void ice_print(::std::ostream&) const; + virtual ::IceUtil::Exception* ice_clone() const; + virtual void ice_throw() const; +}; + +void throwDatabaseException(const char*, int, const QSqlError&); + +// +// Database connection +// +class DatabaseConnection : public IceUtil::Shared +{ +public: + + DatabaseConnection(const QSqlDatabase& c, const QString& cn) : + connection(c), + connectionName(cn) + { + } + + const QSqlDatabase connection; + const QString connectionName; +}; + +typedef IceUtil::Handle<DatabaseConnection> DatabaseConnectionPtr; + +// +// Transaction wrapper class +// +class TransactionHolder +{ +public: + + TransactionHolder(const DatabaseConnectionPtr&); + ~TransactionHolder(); + + void commit(); + +private: + + const QSqlDatabase _connection; + bool _committed; +}; + +// +// Cache per thread of database information +// + +class DatabaseCache : public IceUtil::Mutex, public IceUtil::Shared +{ +public: + + DatabaseConnectionPtr getConnection(); + DatabaseConnectionPtr newConnection(); + + void threadStopped(); + +protected: + + DatabaseCache(const Ice::CommunicatorPtr&, const std::string&, const std::string&, const std::string&, + const std::string&, const std::string&, bool); + virtual ~DatabaseCache(); + + typedef std::map<IceUtil::ThreadControl::ID, DatabaseConnectionPtr> ThreadDatabaseMap; + + const Ice::CommunicatorPtr _communicator; + QSqlDatabase _connection; + ThreadDatabaseMap _cache; +}; + +typedef IceUtil::Handle<DatabaseCache> DatabaseCachePtr; + +class ThreadHook : public Ice::ThreadNotification, public IceUtil::Mutex +{ +public: + + ThreadHook(); + + void setDatabaseCache(const DatabaseCachePtr&); + + virtual void start(); + virtual void stop(); + +private: + + DatabaseCachePtr _cache; +}; + +typedef IceUtil::Handle<ThreadHook> ThreadHookPtr; + +} + +#endif diff --git a/cpp/src/IceStorm/.depend b/cpp/src/IceStorm/.depend index 86ed42d4978..19ca748d6bc 100644 --- a/cpp/src/IceStorm/.depend +++ b/cpp/src/IceStorm/.depend @@ -1,20 +1,21 @@ IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h NodeI$(OBJEXT): NodeI.cpp ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Replica.h ../IceStorm/Instance.h ../IceStorm/Observers.h ../IceStorm/TraceLevels.h Observers$(OBJEXT): Observers.cpp ../IceStorm/Observers.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Replica.h ../IceStorm/Instance.h ../IceStorm/TraceLevels.h -LLUMap$(OBJEXT): LLUMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Election$(OBJEXT): Election.cpp ../IceStorm/Election.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h Instance$(OBJEXT): Instance.cpp ../IceStorm/Instance.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h ../IceStorm/Election.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/TraceLevels.h ../IceStorm/Observers.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Replica.h ../IceStorm/NodeI.h TraceLevels$(OBJEXT): TraceLevels.cpp ../IceStorm/TraceLevels.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h Subscriber$(OBJEXT): Subscriber.cpp ../IceStorm/Subscriber.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/TraceLevels.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Replica.h -TopicI$(OBJEXT): TopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LLUMap.h ../IceStorm/Instance.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TraceLevels.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Replica.h ../IceStorm/Observers.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h -TopicManagerI$(OBJEXT): TopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicManagerI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h ../IceStorm/TraceLevels.h ../IceStorm/Instance.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Observers.h ../IceStorm/Subscriber.h $(includedir)/Ice/SliceChecksums.h +TopicI$(OBJEXT): TopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/DatabaseCache.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h ../IceStorm/DatabaseWrapper.h ../IceStorm/LLUMap.h ../IceStorm/SubscriberMap.h ../IceStorm/Instance.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TraceLevels.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Replica.h ../IceStorm/Observers.h +TopicManagerI$(OBJEXT): TopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicManagerI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/DatabaseCache.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h ../IceStorm/DatabaseWrapper.h ../IceStorm/LLUMap.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h ../IceStorm/TraceLevels.h ../IceStorm/Instance.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Observers.h ../IceStorm/Subscriber.h $(includedir)/Ice/SliceChecksums.h TransientTopicI$(OBJEXT): TransientTopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TransientTopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TraceLevels.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h TransientTopicManagerI$(OBJEXT): TransientTopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TransientTopicManagerI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/TransientTopicI.h ../IceStorm/TraceLevels.h $(includedir)/Ice/PropertiesF.h ../IceStorm/Instance.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h -SubscriberMap$(OBJEXT): SubscriberMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h SubscriberRecord$(OBJEXT): SubscriberRecord.cpp ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h IceStormInternal$(OBJEXT): IceStormInternal.cpp ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Service$(OBJEXT): Service.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LLUMap.h ../IceStorm/TopicManagerI.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TransientTopicManagerI.h ../IceStorm/Instance.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h ../IceStorm/Observers.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/TraceLevels.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/NodeI.h ../IceStorm/TransientTopicI.h $(includedir)/IceGrid/Locator.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h +Service$(OBJEXT): Service.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/DatabaseCache.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h ../IceStorm/DatabaseWrapper.h ../IceStorm/LLUMap.h ../IceStorm/SubscriberMap.h ../IceStorm/TopicManagerI.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TransientTopicManagerI.h ../IceStorm/Instance.h ../IceStorm/Service.h $(includedir)/IceBox/IceBox.h ../IceStorm/Observers.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/TraceLevels.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/NodeI.h ../IceStorm/TransientTopicI.h $(includedir)/IceGrid/Locator.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h +DatabaseCache$(OBJEXT): DatabaseCache.cpp ../IceStorm/DatabaseCache.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h $(includedir)/Freeze/Catalog.h $(includedir)/Freeze/CatalogData.h +LLUMap$(OBJEXT): LLUMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +SubscriberMap$(OBJEXT): SubscriberMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Admin$(OBJEXT): Admin.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Application.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h Grammar$(OBJEXT): Grammar.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Scanner$(OBJEXT): Scanner.cpp $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Grammar.h diff --git a/cpp/src/IceStorm/.gitignore b/cpp/src/IceStorm/.gitignore index b64cca51538..dbc9be7e46f 100644 --- a/cpp/src/IceStorm/.gitignore +++ b/cpp/src/IceStorm/.gitignore @@ -17,8 +17,6 @@ V32Format.h V31Format.h SubscriberMap.h SubscriberMap.cpp -PersistentTopicMap.h -PersistentTopicMap.cpp V32FormatDB.h V32FormatDB.cpp V31FormatDB.h diff --git a/cpp/src/IceStorm/DatabaseCache.cpp b/cpp/src/IceStorm/DatabaseCache.cpp new file mode 100644 index 00000000000..ee4374028c3 --- /dev/null +++ b/cpp/src/IceStorm/DatabaseCache.cpp @@ -0,0 +1,78 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 <IceStorm/DatabaseCache.h> +#include <IceStorm/Instance.h> +#ifdef QTSQL +# include <Ice/Communicator.h> +# include <Ice/Properties.h> +#endif + +using namespace IceStorm; +using namespace std; + +#ifdef QTSQL + +DatabaseCache::DatabaseCache(const InstancePtr& instance) : + IceSQL::DatabaseCache(instance->communicator(), + instance->communicator()->getProperties()->getProperty(instance->serviceName() + ".SQL.DatabaseType"), + instance->communicator()->getProperties()->getProperty(instance->serviceName() + ".SQL.DatabaseName"), + instance->communicator()->getProperties()->getProperty(instance->serviceName() + ".SQL.HostName"), + instance->communicator()->getProperties()->getProperty(instance->serviceName() + ".SQL.UserName"), + instance->communicator()->getProperties()->getProperty(instance->serviceName() + ".SQL.Password"), + false) +{ + Ice::PropertiesPtr properties = instance->properties(); + string serviceName = instance->serviceName(); + + string tablePrefix = properties->getPropertyWithDefault(serviceName + ".InstanceName", "IceStorm"); + string id = properties->getProperty(serviceName + ".NodeId"); + if(!id.empty()) + { + tablePrefix += "_"; + tablePrefix += id; + } + replace(tablePrefix.begin(), tablePrefix.end(), '.', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), '-', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), ' ', '_'); + replace(tablePrefix.begin(), tablePrefix.end(), ';', '_'); + + IceSQL::DatabaseConnectionPtr connection = getConnection(); + IceSQL::TransactionHolder txn(connection); + + const_cast<SqlLLUPtr&>(llu) = new SqlLLU(connection, tablePrefix + "_LLU"); + const_cast<SqlSubscriberMapPtr&>(subscriberMap) = + new SqlSubscriberMap(connection, tablePrefix + "_Subscribers", _communicator); + + txn.commit(); +} + +#else + +DatabaseCache::DatabaseCache(const InstancePtr& instance) : + _communicator(instance->communicator()), + _envName(instance->serviceName()), + _connection(Freeze::createConnection(_communicator, _envName)) +{ +} + +DatabaseConnectionPtr +DatabaseCache::getConnection() +{ + return _connection; +} + +DatabaseConnectionPtr +DatabaseCache::newConnection() +{ + return Freeze::createConnection(_communicator, _envName); +} + + +#endif diff --git a/cpp/src/IceStorm/DatabaseCache.h b/cpp/src/IceStorm/DatabaseCache.h new file mode 100644 index 00000000000..6a73f74149d --- /dev/null +++ b/cpp/src/IceStorm/DatabaseCache.h @@ -0,0 +1,68 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 DATABASE_CACHE_H +#define DATABASE_CACHE_H + +#ifdef QTSQL +# include <IceSQL/SqlTypes.h> +# include <IceStorm/SqlSubscriberMap.h> +# include <IceStorm/SqlLLU.h> +#else +# include <Freeze/Freeze.h> +#endif + +namespace IceStorm +{ + +// Forward declarations +class Instance; +typedef IceUtil::Handle<Instance> InstancePtr; + +#ifdef QTSQL + +class DatabaseCache : public IceSQL::DatabaseCache +{ +public: + + DatabaseCache(const InstancePtr&); + + const SqlLLUPtr llu; + const SqlSubscriberMapPtr subscriberMap; +}; + +typedef IceUtil::Handle<DatabaseCache> DatabaseCachePtr; + +#else + +typedef Freeze::ConnectionPtr DatabaseConnectionPtr; + +class DatabaseCache : public IceUtil::Shared +{ +public: + + DatabaseCache(const InstancePtr&); + + DatabaseConnectionPtr getConnection(); + DatabaseConnectionPtr newConnection(); + +private: + + const Ice::CommunicatorPtr _communicator; + const std::string _envName; + const DatabaseConnectionPtr _connection; +}; + +typedef IceUtil::Handle<DatabaseCache> DatabaseCachePtr; + +#endif + +} + +#endif diff --git a/cpp/src/IceStorm/DatabaseWrapper.h b/cpp/src/IceStorm/DatabaseWrapper.h new file mode 100644 index 00000000000..921890b15e7 --- /dev/null +++ b/cpp/src/IceStorm/DatabaseWrapper.h @@ -0,0 +1,218 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 DATABASE_WRAPPER_H +#define DATABASE_WRAPPER_H + +#include <IceStorm/DatabaseCache.h> +#ifndef QTSQL +# include <IceStorm/LLUMap.h> +# include <IceStorm/SubscriberMap.h> +#endif + +namespace IceStorm +{ + +#ifdef QTSQL + +class LLUWrapper +{ +public: + + LLUWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + _table(database->llu), + _connection(connection) + { + } + + void put(const IceStormElection::LogUpdate& llu) + { + _table->put(_connection, llu); + } + + IceStormElection::LogUpdate get() + { + IceStormElection::LogUpdate llu; + try + { + llu = _table->get(_connection); + } + catch(const IceSQL::NotFoundException&) + { + assert(false); + } + return llu; + } + +private: + + const SqlLLUPtr _table; + const IceSQL::DatabaseConnectionPtr _connection; +}; + +class SubscriberMapWrapper +{ +public: + + SubscriberMapWrapper(const DatabaseCachePtr& database, const IceSQL::DatabaseConnectionPtr& connection) : + _table(database->subscriberMap), + _connection(connection) + { + } + + SubscriberMap getMap() + { + SubscriberMap smap; + _table->getMap(_connection, smap); + return smap; + } + + void + put(const SubscriberRecordKey& key, const SubscriberRecord& rec) + { + _table->put(_connection, key, rec); + } + + SubscriberRecord + find(const SubscriberRecordKey& key) + { + return _table->find(_connection, key); + } + + void + erase(const SubscriberRecordKey& key) + { + _table->erase(_connection, key); + } + + void + eraseTopic(const Ice::Identity& topic) + { + _table->eraseTopic(_connection, topic); + } + + void + clear() + { + _table->clear(_connection); + } + +private: + + const SqlSubscriberMapPtr _table; + const IceSQL::DatabaseConnectionPtr _connection; +}; + + +#else + +class NotFoundException : public std::exception +{ +}; + +class LLUWrapper +{ +public: + + LLUWrapper(const DatabaseCachePtr& database, const DatabaseConnectionPtr& connection) : + _llumap(connection, "llu") + { + } + + void put(const IceStormElection::LogUpdate& llu) + { + LLUMap::iterator ci = _llumap.find("_manager"); + if(ci == _llumap.end()) + { + _llumap.put(LLUMap::value_type("_manager", llu)); + } + else + { + ci.set(llu); + } + } + + IceStormElection::LogUpdate get() + { + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + return ci->second; + } + +private: + + LLUMap _llumap; +}; + +class SubscriberMapWrapper +{ +public: + + SubscriberMapWrapper(const DatabaseCachePtr& database, const DatabaseConnectionPtr& connection) : + _subscriberMap(connection, "subscribers") + { + } + + SubscriberMap& getMap() + { + return _subscriberMap; + } + + void + put(const SubscriberRecordKey& key, const SubscriberRecord& rec) + { + _subscriberMap.put(SubscriberMap::value_type(key, rec)); + } + + SubscriberRecord + find(const SubscriberRecordKey& key) + { + SubscriberMap::const_iterator q = _subscriberMap.find(key); + if(q == _subscriberMap.end()) + { + throw NotFoundException(); + } + return q->second; + } + + void + erase(const SubscriberRecordKey& key) + { + _subscriberMap.erase(key); + } + + void + eraseTopic(const Ice::Identity& topic) + { + SubscriberRecordKey key; + key.topic = topic; + + SubscriberMap::iterator p = _subscriberMap.find(key); + while(p != _subscriberMap.end() && p->first.topic == key.topic) + { + _subscriberMap.erase(p++); + } + } + + void + clear() + { + _subscriberMap.clear(); + } + +private: + + SubscriberMap _subscriberMap; +}; + +#endif + +} + +#endif diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile index b1d81505513..f11b1122aa1 100644 --- a/cpp/src/IceStorm/Makefile +++ b/cpp/src/IceStorm/Makefile @@ -9,6 +9,9 @@ top_srcdir = ../.. +# Set appropriately if building IceStorm to use SQL database +#QTSQL_HOME = /opt/qt + LIBFILENAME = $(call mklibfilename,IceStorm,$(VERSION)) SONAME = $(call mksoname,IceStorm,$(SOVERSION)) LIBNAME = $(call mklibname,IceStorm) @@ -18,7 +21,9 @@ SVCSONAME = $(call mksoname,IceStormService,$(SOVERSION)) SVCLIBNAME = $(call mklibname,IceStormService) ADMIN = $(top_srcdir)/bin/icestormadmin +ifeq ($(QTSQL_HOME),) MIGRATE = $(top_srcdir)/bin/icestormmigrate +endif LIBTARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) SVCLIBTARGETS = $(call mklibtargets,$(libdir)/$(SVCLIBFILENAME),$(libdir)/$(SVCSONAME),$(libdir)/$(SVCLIBNAME)) @@ -28,7 +33,6 @@ OBJS = IceStorm.o SERVICE_OBJS = NodeI.o \ Observers.o \ - LLUMap.o \ Election.o \ IceStorm.o \ Instance.o \ @@ -38,10 +42,25 @@ SERVICE_OBJS = NodeI.o \ TopicManagerI.o \ TransientTopicI.o \ TransientTopicManagerI.o \ - SubscriberMap.o \ SubscriberRecord.o \ IceStormInternal.o \ - Service.o + Service.o \ + DatabaseCache.o + +ifneq ($(QTSQL_HOME),) +ICESQL_DIR = $(top_srcdir)/src/IceSQL + +%.o: $(ICESQL_DIR)/%.cpp + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< + +SERVICE_OBJS += SqlLLU.o \ + SqlSubscriberMap.o + +ICESQL_OBJS = SqlTypes.o +else +SERVICE_OBJS += LLUMap.o \ + SubscriberMap.o +endif AOBJS = Admin.o \ Grammar.o \ @@ -51,6 +70,7 @@ AOBJS = Admin.o \ SubscriberRecord.o \ IceStormInternal.o +ifeq ($(QTSQL_HOME),) MOBJS = Migrate.o \ SubscriberRecord.o \ SubscriberMap.o \ @@ -62,32 +82,47 @@ MOBJS = Migrate.o \ V31FormatDB.o \ V32Format.o \ V31Format.o +endif SRCS = $(OBJS:.o=.cpp) \ $(SERVICE_OBJS:.o=.cpp) \ $(AOBJS:.o=.cpp) \ $(MOBJS:.o=.cpp) +ifneq ($(QTSQL_HOME),) +SRCS += $(patsubst %.o,$(ICESQL_DIR)/%.cpp,$(ICESQL_DIR)) +endif + SLICE_SRCS = $(SDIR)/IceStorm.ice \ ../IceStorm/Election.ice \ ../IceStorm/IceStormInternal.ice \ ../IceStorm/SubscriberRecord.ice \ - ../IceStorm/LinkRecord.ice \ - ../IceStorm/V32Format.ice \ + ../IceStorm/LinkRecord.ice + +ifeq ($(QTSQL_HOME),) +SLICE_SRCS += ../IceStorm/V32Format.ice \ ../IceStorm/V31Format.ice +endif HDIR = $(headerdir)/IceStorm SDIR = $(slicedir)/IceStorm +LOCAL_HDIR = ../IceStorm SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceStorm $(ICECPPFLAGS) include $(top_srcdir)/config/Make.rules -CPPFLAGS := $(CPPFLAGS) -I.. $(READLINE_FLAGS) +CPPFLAGS := $(CPPFLAGS) -I.. $(READLINE_FLAGS) $(QTSQL_FLAGS) ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --ice --include-dir IceStorm $(SLICE2CPPFLAGS) LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil -SVCLINKWITH := $(DB_RPATH_LINK) -lIceGrid -lGlacier2 -lFreeze -lIceBox $(BZIP2_RPATH_LINK) -lIce -lIceUtil +SVCLINKWITH := $(DB_RPATH_LINK) -lIceGrid -lGlacier2 -lIceBox $(BZIP2_RPATH_LINK) -lIce -lIceUtil + +ifneq ($(QTSQL_HOME),) +SVCLINKWITH += $(QTSQL_RPATH_LINK) $(QTSQL_LIBS) +else +SVCLINKWITH += $(DB_RPATH_LINK) -lFreeze +endif $(libdir)/$(LIBFILENAME): $(OBJS) rm -f $@ @@ -101,9 +136,9 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) rm -f $@ ln -s $(SONAME) $@ -$(libdir)/$(SVCLIBFILENAME): $(SERVICE_OBJS) +$(libdir)/$(SVCLIBFILENAME): $(SERVICE_OBJS) $(ICESQL_OBJS) rm -f $@ - $(call mkshlib,$@,$(SVCSONAME),$(SERVICE_OBJS),$(SVCLINKWITH)) + $(call mkshlib,$@,$(SVCSONAME),$(SERVICE_OBJS) $(ICESQL_OBJS),$(SVCLINKWITH)) $(libdir)/$(SVCSONAME): $(libdir)/$(SVCLIBFILENAME) rm -f $@ @@ -117,6 +152,14 @@ $(ADMIN): $(AOBJS) $(LIBTARGETS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(AOBJS) -lIceStorm $(READLINE_LIBS) $(LIBS) +ifneq ($(QTSQL_HOME),) +# Required because of inclusion in .depend +$(LOCAL_HDIR)/SubscriberMap.h: + touch $@ + +$(LOCAL_HDIR)/LLUMap.h: + touch $@ +else $(MIGRATE): $(MOBJS) $(LIBTARGETS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStorm -lFreeze $(LIBS) @@ -142,6 +185,7 @@ SubscriberMap.h SubscriberMap.cpp: ../IceStorm/SubscriberRecord.ice $(slicedir)/ rm -f V31FormatDB.h V31FormatDB.cpp $(SLICE2FREEZECMD) --dict IceStorm::V31Format,string,IceStorm::LinkRecordDict \ V31FormatDB ../IceStorm/V31Format.ice +endif IceStorm.cpp $(HDIR)/IceStorm.h: $(SDIR)/IceStorm.ice $(SLICE2CPP) $(SLICEPARSERLIB) rm -f IceStorm.cpp $(HDIR)/IceStorm.h @@ -153,7 +197,6 @@ IceStorm.cpp $(HDIR)/IceStorm.h: $(SDIR)/IceStorm.ice $(SLICE2CPP) $(SLICEPARSER clean:: -rm -f SubscriberMap.h SubscriberMap.cpp - -rm -f PersistentTopicMap.h PersistentTopicMap.cpp -rm -f V32FormatDB.h V32FormatDB.cpp -rm -f V31FormatDB.h V31FormatDB.cpp -rm -f LLUMap.h LLUMap.cpp diff --git a/cpp/src/IceStorm/Makefile.mak b/cpp/src/IceStorm/Makefile.mak index 6294fbc5e03..336dbe7273b 100644 --- a/cpp/src/IceStorm/Makefile.mak +++ b/cpp/src/IceStorm/Makefile.mak @@ -9,6 +9,9 @@ top_srcdir = ..\..
+# Set appropriately if building IceStorm to use SQL database
+#QTSQL_HOME = C:\Qt\4.5.2
+
LIBNAME = $(top_srcdir)\lib\icestorm$(LIBSUFFIX).lib
DLLNAME = $(top_srcdir)\bin\icestorm$(SOVERSION)$(LIBSUFFIX).dll
@@ -22,7 +25,10 @@ SVCLIBNAME = $(top_srcdir)\lib\icestormservice$(LIBSUFFIX).lib SVCDLLNAME = $(top_srcdir)\bin\icestormservice$(SOVERSION)$(LIBSUFFIX).dll
ADMIN = $(top_srcdir)\bin\icestormadmin.exe
+
+!if "$(QTSQL_HOME)" == ""
MIGRATE = $(top_srcdir)\bin\icestormmigrate.exe
+!endif
TARGETS = $(LIBNAME) $(DLLNAME) $(SVCLIBNAME) $(SVCDLLNAME) $(ADMIN) $(MIGRATE)
@@ -30,7 +36,6 @@ OBJS = IceStorm.obj SERVICE_OBJS = NodeI.obj \
Observers.obj \
- LLUMap.obj \
Election.obj \
Instance.obj \
TraceLevels.obj \
@@ -39,10 +44,27 @@ SERVICE_OBJS = NodeI.obj \ TopicManagerI.obj \
TransientTopicI.obj \
TransientTopicManagerI.obj \
- SubscriberMap.obj \
SubscriberRecord.obj \
IceStormInternal.obj \
- Service.obj
+ Service.obj \
+ DatabaseCache.obj
+
+!if "$(QTSQL_HOME)" != ""
+ICESQL_DIR = $(top_srcdir)\src\IceSQL
+
+{$(ICESQL_DIR)\}.cpp.obj::
+ $(CXX) /c $(CPPFLAGS) $(CXXFLAGS) $<
+
+SERVICE_OBJS = $(SERVICE_OBJS) \
+ SqlLLU.obj \
+ SqlSubscriberMap.obj
+
+ICESQL_OBJS = SqlTypes.obj
+!else
+SERVICE_OBJS = $(SERVICE_OBJS) \
+ LLUMap.obj \
+ SubscriberMap.obj
+!endif
AOBJS = Admin.obj \
Grammar.obj \
@@ -52,6 +74,7 @@ AOBJS = Admin.obj \ SubscriberRecord.obj \
IceStormInternal.obj
+!if "$(QTSQL_HOME)" == ""
MOBJS = Migrate.obj \
SubscriberRecord.obj \
SubscriberMap.obj \
@@ -63,23 +86,37 @@ MOBJS = Migrate.obj \ V31FormatDB.obj \
V32Format.obj \
V31Format.obj
+!endif
SRCS = $(OBJS:.obj=.cpp) \
$(SOBJS:.obj=.cpp) \
$(AOBJS:.obj=.cpp) \
$(MOBJS:.obj=.cpp)
+!if "$(QTSQL_HOME)" != ""
+SRCS = $(SRCS) \
+ $(ICESQL_DIR)\SqlTypes.cpp
+!endif
+
HDIR = $(headerdir)\IceStorm
SDIR = $(slicedir)\IceStorm
+LOCAL_HDIR = ..\IceStorm
!include $(top_srcdir)\config\Make.rules.mak
+!if "$(QTSQL_HOME)" != ""
+DBLINKWITH = $(QTSQL_LIBS)
+CPPFLAGS = $(QTSQL_FLAGS) $(CPPFLAGS)
+!else
+DBLINKWITH = freeze$(LIBSUFFIX).lib
+!endif
+
CPPFLAGS = -I.. -Idummyinclude $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN
ICECPPFLAGS = $(ICECPPFLAGS) -I..
SLICE2CPPFLAGS = --ice --include-dir IceStorm $(SLICE2CPPFLAGS)
-LINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib icegrid$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib
+LINKWITH = $(LIBS) $(DBLINKWITH) icestorm$(LIBSUFFIX).lib icegrid$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib
ALINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib
-MLINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib
+MLINKWITH = $(LIBS) $(DBLINKWITH) icestorm$(LIBSUFFIX).lib
SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceStorm -I.. -I$(slicedir)
@@ -113,8 +150,8 @@ $(DLLNAME): $(OBJS) IceStorm.res $(SVCLIBNAME): $(SVCDLLNAME)
-$(SVCDLLNAME): $(SERVICE_OBJS) IceStormService.res
- $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(SRES_FILE)
+$(SVCDLLNAME): $(SERVICE_OBJS) $(ICESQL_OBJS) IceStormService.res
+ $(LINK) $(LD_DLLFLAGS) $(SPDBFLAGS) $(SERVICE_OBJS) $(ICESQL_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) $(SRES_FILE)
move $(SVCDLLNAME:.dll=.lib) $(SVCLIBNAME)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest
@@ -125,6 +162,13 @@ $(ADMIN): $(AOBJS) IceStormAdmin.res @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
+!if "$(QTSQL_HOME)" != ""
+$(LOCAL_HDIR)\LLUMap.h:
+ type dummyinclude\unistd.h > LLUMap.h
+
+$(LOCAL_HDIR)\SubscriberMap.h:
+ type dummyinclude\unistd.h > SubscriberMap.h
+!else
$(MIGRATE): $(MOBJS) IceStormMigrate.res
$(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH) $(MRES_FILE)
@if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
@@ -150,6 +194,7 @@ V31FormatDB.h V31FormatDB.cpp: ..\IceStorm\V31Format.ice $(SLICE2FREEZE) $(SLICE del /q V31FormatDB.h V31FormatDB.cpp
$(SLICE2FREEZECMD) --dict IceStorm::V31Format,string,IceStorm::LinkRecordDict \
V31FormatDB ..\IceStorm\V31Format.ice
+!endif
IceStorm.cpp $(HDIR)\IceStorm.h: $(SDIR)\IceStorm.ice $(SLICE2CPP) $(SLICEPARSERLIB)
del /q $(HDIR)\IceStorm.h IceStorm.cpp
@@ -190,8 +235,7 @@ clean:: -del /q SubscriberRecord.cpp SubscriberRecord.h
-del /q $(SVCDLLNAME_R:.dll=.*) $(SVCDLLNAME_D:.dll=.*)
-del /q $(SVCLIBNAME_R) $(SVCLIBNAME_D)
- -del /q $(ADMIN:.exe=.*)
- -del /q $(MIGRATE:.exe=.*)
+ -del /q $(ADMIN:.exe=.*) $(MIGRATE:.exe=.*)
-del /q IceStormAdmin.res IceStormMigrate.res IceStorm.res IceStormService.res
install:: all
@@ -209,7 +253,11 @@ install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir)
copy $(SVCDLLNAME:.dll=.tds) $(install_bindir)
copy $(ADMIN:.exe=.tds) $(install_bindir)
+
+!if "$(QTSQL_HOME)" == ""
+install:: all
copy $(MIGRATE:.exe=.tds) $(install_bindir)
+!endif
!elseif "$(GENERATE_PDB)" == "yes"
@@ -217,7 +265,11 @@ install:: all copy $(DLLNAME:.dll=.pdb) $(install_bindir)
copy $(SVCDLLNAME:.dll=.pdb) $(install_bindir)
copy $(ADMIN:.exe=.pdb) $(install_bindir)
+
+!if "$(QTSQL_HOME)" == ""
+install:: all
copy $(MIGRATE:.exe=.pdb) $(install_bindir)
+!endif
!endif
diff --git a/cpp/src/IceStorm/Service.cpp b/cpp/src/IceStorm/Service.cpp index a6700d473a2..c1f88187abb 100644 --- a/cpp/src/IceStorm/Service.cpp +++ b/cpp/src/IceStorm/Service.cpp @@ -26,9 +26,13 @@ #include <IceGrid/Locator.h> #include <IceGrid/Query.h> +#ifdef QTSQL +#include <QtCore/QCoreApplication> +#include <QtCore/QTextCodec> +#endif + using namespace std; using namespace Ice; -using namespace Freeze; using namespace IceStorm; using namespace IceStormInternal; using namespace IceStormElection; @@ -66,6 +70,9 @@ private: TransientTopicManagerImplPtr _transientManager; TopicManagerPrx _managerProxy; InstancePtr _instance; +#ifdef QTSQL + QCoreApplication* _qtApp; +#endif }; } @@ -97,6 +104,21 @@ Service::create(const CommunicatorPtr& communicator, ServiceI::ServiceI() { +#ifdef QTSQL + // + // In order to load SQL drivers it is necessary for an instance of + // QCoreApplication to be instantiated. However only one can be instantiated + // per process. Therefore we do not destroy _qtApp as it may be required + // by other services that are also using QT. + // + if(QCoreApplication::instance() == 0) + { + int argc = 0; + char** argv = 0; + _qtApp = new QCoreApplication(argc, argv); + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + } +#endif } ServiceI::~ServiceI() @@ -505,6 +527,11 @@ ServiceI::validateProperties(const string& name, const PropertiesPtr& properties "Trace.TopicManager", "Send.Timeout", "Discard.Interval", + "SQL.DatabaseType", + "SQL.HostName", + "SQL.DatabaseName", + "SQL.UserName", + "SQL.Password" }; vector<string> unknownProps; diff --git a/cpp/src/IceStorm/SqlLLU.cpp b/cpp/src/IceStorm/SqlLLU.cpp new file mode 100644 index 00000000000..4abf7754188 --- /dev/null +++ b/cpp/src/IceStorm/SqlLLU.cpp @@ -0,0 +1,89 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 <IceStorm/SqlLLU.h> +#include <QtSql/QSqlQuery> +#include <QtCore/QVariant> +#include <QtCore/QStringList> + +using namespace IceStorm; +using namespace IceSQL; +using namespace std; + +SqlLLU::SqlLLU(const DatabaseConnectionPtr& connection, const string& table) : + _table(table) + +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (id VARCHAR(255) PRIMARY KEY, generation INT, iteration INT);"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + // + // LLU table only ever contains one entry so we add it now. + // + QSqlQuery addQuery(connection->connection); + queryString = "INSERT INTO "; + queryString += _table; + queryString += " VALUES('_master', '0', '0');"; + + if(!addQuery.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, addQuery.lastError()); + } + } +} + +void +SqlLLU::put(const DatabaseConnectionPtr& connection, const IceStormElection::LogUpdate& update) +{ + QSqlQuery query(connection->connection); + ostringstream queryString; + queryString << "UPDATE " << _table << " SET generation=" << update.generation << ", iteration=" + << update.iteration << " WHERE id='_master';"; + + if(!query.exec(queryString.str().c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +IceStormElection::LogUpdate +SqlLLU::get(const DatabaseConnectionPtr& connection) const +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE id = '_master';"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.next()) + { + IceStormElection::LogUpdate update; + update.generation = query.value(1).toInt(); + update.iteration = query.value(2).toInt(); + return update; + } + else + { + throw NotFoundException(__FILE__, __LINE__); + } +} diff --git a/cpp/src/IceStorm/SqlLLU.h b/cpp/src/IceStorm/SqlLLU.h new file mode 100644 index 00000000000..0c050ac9271 --- /dev/null +++ b/cpp/src/IceStorm/SqlLLU.h @@ -0,0 +1,37 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_LLU_H +#define SQL_LLU_H + +#include <IceStorm/Election.h> +#include <IceSQL/SqlTypes.h> + +namespace IceStorm +{ + +class SqlLLU : public IceUtil::Shared +{ +public: + + SqlLLU(const IceSQL::DatabaseConnectionPtr&, const std::string&); + + void put(const IceSQL::DatabaseConnectionPtr&, const IceStormElection::LogUpdate&); + IceStormElection::LogUpdate get(const IceSQL::DatabaseConnectionPtr&) const; + +private: + + const std::string _table; +}; + +typedef IceUtil::Handle<SqlLLU> SqlLLUPtr; + +} + +#endif diff --git a/cpp/src/IceStorm/SqlSubscriberMap.cpp b/cpp/src/IceStorm/SqlSubscriberMap.cpp new file mode 100644 index 00000000000..08ca87ffa2f --- /dev/null +++ b/cpp/src/IceStorm/SqlSubscriberMap.cpp @@ -0,0 +1,406 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 <IceStorm/SqlSubscriberMap.h> +#include <QtSql/QSqlQuery> +#include <QtCore/QVariant> +#include <QtCore/QStringList> + +using namespace IceStorm; +using namespace IceSQL; +using namespace std; + +SqlSubscriberMap::QoSMap::QoSMap(const DatabaseConnectionPtr& connection, + const string& table, + const Ice::CommunicatorPtr& communicator) : + _table(table), + _communicator(communicator) +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (topic VARCHAR(255), id VARCHAR(255), name "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "TEXT, value "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "TEXT);"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + QSqlQuery idx1Query(connection->connection); + queryString = "CREATE INDEX IDX_"; + queryString += _table; + queryString += "_TOPIC_SUBSCRIBER ON "; + queryString += _table; + queryString += " (topic, id);"; + + if(!idx1Query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, idx1Query.lastError()); + } + + QSqlQuery idx2Query(connection->connection); + queryString = "CREATE INDEX IDX_"; + queryString += _table; + queryString += "_TOPIC ON "; + queryString += _table; + queryString += " (topic);"; + + if(!idx2Query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, idx2Query.lastError()); + } + } +} + +void +SqlSubscriberMap::QoSMap::put(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key, + const QoS& qos) +{ + erase(connection, key); + + for(QoS::const_iterator p = qos.begin(); p != qos.end(); ++p) + { + QSqlQuery query(connection->connection); + string queryString = "INSERT INTO "; + queryString += _table; + queryString += " VALUES(?, ?, ?, ?)"; + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(key.topic).c_str()); + query.bindValue(1, _communicator->identityToString(key.id).c_str()); + query.bindValue(2, p->first.c_str()); + query.bindValue(3, p->second.c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + } +} + +QoS +SqlSubscriberMap::QoSMap::find(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE topic = ? AND id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(key.topic).c_str()); + query.bindValue(1, _communicator->identityToString(key.id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + QoS qos; + while(query.next()) + { + qos[query.value(2).toString().toStdString()] = query.value(3).toString().toStdString(); + } + return qos; +} + +void +SqlSubscriberMap::QoSMap::erase(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE topic = ? AND id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(key.topic).c_str()); + query.bindValue(1, _communicator->identityToString(key.id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlSubscriberMap::QoSMap::eraseTopic(const DatabaseConnectionPtr& connection, + const Ice::Identity& topic) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE topic = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(topic).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlSubscriberMap::QoSMap::clear(const DatabaseConnectionPtr& connection) +{ + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +SqlSubscriberMap::SqlSubscriberMap(const DatabaseConnectionPtr& connection, + const string& table, + const Ice::CommunicatorPtr& communicator) : + _table(table), + _communicator(communicator), + _qosMap(connection, table + "_QoS", communicator) +{ + QStringList tables = connection->connection.tables(QSql::Tables); + if(!tables.contains(_table.c_str(), Qt::CaseInsensitive)) + { + QSqlQuery query(connection->connection); + string queryString = "CREATE TABLE "; + queryString += _table; + queryString += " (topic VARCHAR(255), id VARCHAR(255), topicName "; + if(connection->connection.driverName() == "QODBC") + { + queryString += "N"; + } + queryString += "TEXT, link TEXT, obj TEXT, cost INT, theTopic TEXT, PRIMARY KEY (topic, id));"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + QSqlQuery idxQuery(connection->connection); + queryString = "CREATE INDEX IDX_"; + queryString += _table; + queryString += "_TOPIC ON "; + queryString += _table; + queryString += " (topic);"; + + if(!idxQuery.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, idxQuery.lastError()); + } + } +} + +void +SqlSubscriberMap::put(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key, + const SubscriberRecord& record) +{ + QString driver = connection->connection.driverName(); + + QSqlQuery query(connection->connection); + ostringstream queryString; + queryString << "UPDATE " << _table + << " SET topicName = ?, link = '" << (record.link ? "true" : "false") + << "', obj = ?, cost = '" << record.cost + << "', theTopic = ? WHERE topic = ? AND id = ?;"; + + query.prepare(queryString.str().c_str()); + query.bindValue(0, record.topicName.c_str()); + query.bindValue(1, _communicator->proxyToString(record.obj).c_str()); + query.bindValue(2, _communicator->proxyToString(record.theTopic).c_str()); + query.bindValue(3, _communicator->identityToString(key.topic).c_str()); + query.bindValue(4, _communicator->identityToString(key.id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.numRowsAffected() == 0) + { + // + // We do a find since some databases (MySQL) return 0 for number of rows affected + // if row exists but data was not changed from previous values. + // + try + { + find(connection, key); + } + catch(const NotFoundException&) + { + QSqlQuery insertQuery(connection->connection); + queryString.str(""); + queryString << "INSERT INTO " << _table << " VALUES(?, ?, ?, '" << (record.link ? "true" : "false") + << "', ?, '" << record.cost << "', ?);"; + + insertQuery.prepare(queryString.str().c_str()); + insertQuery.bindValue(0, _communicator->identityToString(key.topic).c_str()); + insertQuery.bindValue(1, _communicator->identityToString(key.id).c_str()); + insertQuery.bindValue(2, record.topicName.c_str()); + insertQuery.bindValue(3, _communicator->proxyToString(record.obj).c_str()); + insertQuery.bindValue(4, _communicator->proxyToString(record.theTopic).c_str()); + + if(!insertQuery.exec()) + { + throwDatabaseException(__FILE__, __LINE__, insertQuery.lastError()); + } + } + } + + _qosMap.put(connection, key, record.theQoS); +} + +SubscriberRecord +SqlSubscriberMap::find(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += " WHERE topic = ? AND id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(key.topic).c_str()); + query.bindValue(1, _communicator->identityToString(key.id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + if(query.next()) + { + SubscriberRecord record; + record.topicName = query.value(2).toString().toStdString(); + record.id = key.id; + record.link = query.value(3).toString().toStdString() == "true" ? true : false; + record.obj = _communicator->stringToProxy(query.value(4).toString().toStdString()); + record.cost = query.value(5).toInt(); + record.theTopic = + TopicPrx::uncheckedCast(_communicator->stringToProxy(query.value(6).toString().toStdString())); + + record.theQoS = _qosMap.find(connection, key); + + return record; + } + else + { + throw NotFoundException(__FILE__, __LINE__); + } +} + +void +SqlSubscriberMap::getMap(const DatabaseConnectionPtr& connection, + SubscriberMap& smap) +{ + QSqlQuery query(connection->connection); + string queryString = "SELECT * FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } + + while(query.next()) + { + SubscriberRecordKey key; + key.topic = _communicator->stringToIdentity(query.value(0).toString().toStdString()); + key.id = _communicator->stringToIdentity(query.value(1).toString().toStdString()); + + SubscriberRecord record; + record.topicName = query.value(2).toString().toStdString(); + record.id = key.id; + record.link = query.value(3).toString().toStdString() == "true" ? true : false; + record.obj = _communicator->stringToProxy(query.value(4).toString().toStdString()); + record.cost = query.value(5).toInt(); + record.theTopic = + TopicPrx::uncheckedCast(_communicator->stringToProxy(query.value(6).toString().toStdString())); + + record.theQoS = _qosMap.find(connection, key); + + smap[key] = record; + } +} + +void +SqlSubscriberMap::erase(const DatabaseConnectionPtr& connection, + const SubscriberRecordKey& key) +{ + _qosMap.erase(connection, key); + + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE topic = ? AND id = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(key.topic).c_str()); + query.bindValue(1, _communicator->identityToString(key.id).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlSubscriberMap::eraseTopic(const DatabaseConnectionPtr& connection, + const Ice::Identity& topic) +{ + _qosMap.eraseTopic(connection, topic); + + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += " WHERE topic = ?;"; + + query.prepare(queryString.c_str()); + query.bindValue(0, _communicator->identityToString(topic).c_str()); + + if(!query.exec()) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} + +void +SqlSubscriberMap::clear(const DatabaseConnectionPtr& connection) +{ + _qosMap.clear(connection); + + QSqlQuery query(connection->connection); + string queryString = "DELETE FROM "; + queryString += _table; + queryString += ";"; + + if(!query.exec(queryString.c_str())) + { + throwDatabaseException(__FILE__, __LINE__, query.lastError()); + } +} diff --git a/cpp/src/IceStorm/SqlSubscriberMap.h b/cpp/src/IceStorm/SqlSubscriberMap.h new file mode 100644 index 00000000000..977181c3179 --- /dev/null +++ b/cpp/src/IceStorm/SqlSubscriberMap.h @@ -0,0 +1,67 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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 SQL_SUBSCRIBER_MAP_H +#define SQL_SUBSCRIBER_MAP_H + +#include <Ice/CommunicatorF.h> +#include <IceStorm/SubscriberRecord.h> +#include <IceSQL/SqlTypes.h> + +namespace IceStorm +{ + +typedef std::map<SubscriberRecordKey, SubscriberRecord> SubscriberMap; + +class SqlSubscriberMap : public IceUtil::Shared +{ +public: + + SqlSubscriberMap(const IceSQL::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&); + + void put(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&, const SubscriberRecord&); + + SubscriberRecord find(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&); + void getMap(const IceSQL::DatabaseConnectionPtr&, SubscriberMap&); + + void erase(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&); + void eraseTopic(const IceSQL::DatabaseConnectionPtr&, const Ice::Identity&); + void clear(const IceSQL::DatabaseConnectionPtr&); + +private: + + class QoSMap + { + public: + + QoSMap(const IceSQL::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&); + + void put(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&, const QoS&); + QoS find(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&); + + void erase(const IceSQL::DatabaseConnectionPtr&, const SubscriberRecordKey&); + void eraseTopic(const IceSQL::DatabaseConnectionPtr&, const Ice::Identity&); + void clear(const IceSQL::DatabaseConnectionPtr&); + + private: + + const std::string _table; + const Ice::CommunicatorPtr _communicator; + }; + + const std::string _table; + const Ice::CommunicatorPtr _communicator; + QoSMap _qosMap; +}; + +typedef IceUtil::Handle<SqlSubscriberMap> SqlSubscriberMapPtr; + +} + +#endif diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp index e799b5fe532..77b6ae00542 100644 --- a/cpp/src/IceStorm/TopicI.cpp +++ b/cpp/src/IceStorm/TopicI.cpp @@ -14,26 +14,32 @@ #include <IceStorm/TraceLevels.h> #include <IceStorm/NodeI.h> #include <IceStorm/Observers.h> - #include <Ice/LoggerUtil.h> -#include <Freeze/Freeze.h> - #include <algorithm> using namespace std; using namespace IceStorm; using namespace IceStormElection; +#ifdef QTSQL +using namespace IceSQL; +#else +using namespace Freeze; +#endif + namespace { void -halt(const Ice::CommunicatorPtr& com, const Freeze::DatabaseException& ex) +halt(const Ice::CommunicatorPtr& com, const DatabaseException& ex) { { Ice::Error error(com->getLogger()); error << "fatal exception: " << ex << "\n*** Aborting application ***"; +#ifdef __GNUC__ + error << "\n" << ex.ice_stackTrace(); +#endif } abort(); @@ -400,18 +406,19 @@ TopicImpl::TopicImpl( const InstancePtr& instance, const string& name, const Ice::Identity& id, - const SubscriberRecordSeq& subscribers) : + const SubscriberRecordSeq& subscribers, + const IceStorm::DatabaseCachePtr& databaseCache + ) : _instance(instance), _name(name), _id(id), - _connection(Freeze::createConnection(instance->communicator(), instance->serviceName())), - _subscriberMap(_connection, "subscribers"), - _llumap(_connection, "llu"), + _databaseCache(databaseCache), _destroyed(false) { try { __setNoDelete(true); + // TODO: If we want to improve the performance of the // non-replicated case we could allocate a null-topic impl here. _servant = new TopicI(this, instance); @@ -644,6 +651,8 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj) LogUpdate llu; + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); if(p != _subscribers.end()) { @@ -656,28 +665,28 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj) { try { - Freeze::TransactionHolder txn(_connection); + TransactionHolder txn(connection); + SubscriberRecordKey key; key.topic = _id; key.id = record.id; - SubscriberMap::iterator e = _subscriberMap.find(key); - if(e != _subscriberMap.end()) - { - _subscriberMap.erase(e); - } - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.erase(key); + + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -692,25 +701,29 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj) { try { - Freeze::TransactionHolder txn(_connection); + TransactionHolder txn(connection); + SubscriberRecordKey key; key.topic = _id; key.id = subscriber->id(); - _subscriberMap.put(SubscriberMap::value_type(key, record)); + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.put(key, record); + // Update the LLU. - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -770,26 +783,29 @@ TopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj) { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); SubscriberRecordKey key; key.topic = _id; key.id = subscriber->id(); - _subscriberMap.put(SubscriberMap::value_type(key, record)); - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.put(key, record); + + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -889,26 +905,29 @@ TopicImpl::link(const TopicPrx& topic, Ice::Int cost) { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); SubscriberRecordKey key; key.topic = _id; key.id = id; - _subscriberMap.put(SubscriberMap::value_type(key, record)); - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.put(key, record); + + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -1283,25 +1302,28 @@ TopicImpl::observerAddSubscriber(const LogUpdate& llu, const SubscriberRecord& r { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); SubscriberRecordKey key; key.topic = _id; key.id = subscriber->id(); - _subscriberMap.put(SubscriberMap::value_type(key, record)); + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.put(key, record); // Update the LLU. - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - ci.set(llu); + LLUWrapper llumap(_databaseCache, connection); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -1349,29 +1371,30 @@ TopicImpl::observerRemoveSubscriber(const LogUpdate& llu, const Ice::IdentitySeq { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) { SubscriberRecordKey key; key.topic = _id; key.id = *id; - SubscriberMap::iterator e = _subscriberMap.find(key); - if(e != _subscriberMap.end()) - { - _subscriberMap.erase(e); - } + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.erase(key); } - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - ci.set(llu); + + LLUWrapper llumap(_databaseCache, connection); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -1424,38 +1447,34 @@ TopicImpl::destroyInternal(const LogUpdate& origLLU, bool master) { try { - SubscriberRecordKey key; - key.topic = _id; + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); - Freeze::TransactionHolder txn(_connection); // Erase all subscriber records and the topic record. - SubscriberMap::iterator p = _subscriberMap.find(key); - while(p != _subscriberMap.end() && p->first.topic == key.topic) - { - _subscriberMap.erase(p++); - } + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.eraseTopic(_id); // Update the LLU. - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); + LLUWrapper llumap(_databaseCache, connection); if(master) { - llu = ci->second; + llu = llumap.get(); llu.iteration++; } else { llu = origLLU; } - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -1503,33 +1522,32 @@ TopicImpl::removeSubscribers(const Ice::IdentitySeq& ids) { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) { SubscriberRecordKey key; key.topic = _id; key.id = *id; - SubscriberMap::iterator e = _subscriberMap.find(key); - if(e != _subscriberMap.end()) - { - _subscriberMap.erase(e); - } + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.erase(key); } - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } diff --git a/cpp/src/IceStorm/TopicI.h b/cpp/src/IceStorm/TopicI.h index 8ea1fbc3528..6a367582b97 100644 --- a/cpp/src/IceStorm/TopicI.h +++ b/cpp/src/IceStorm/TopicI.h @@ -11,9 +11,9 @@ #define TOPIC_I_H #include <IceStorm/IceStormInternal.h> -#include <IceStorm/SubscriberMap.h> #include <IceStorm/Election.h> -#include <IceStorm/LLUMap.h> +#include <IceStorm/DatabaseCache.h> +#include <IceStorm/DatabaseWrapper.h> #include <list> namespace IceStorm @@ -30,7 +30,8 @@ class TopicImpl : public IceUtil::Shared { public: - TopicImpl(const InstancePtr&, const std::string&, const Ice::Identity&, const SubscriberRecordSeq&); + TopicImpl(const InstancePtr&, const std::string&, const Ice::Identity&, const SubscriberRecordSeq&, + const DatabaseCachePtr&); ~TopicImpl(); std::string getName() const; @@ -95,10 +96,7 @@ private: // std::vector<SubscriberPtr> _subscribers; - const Freeze::ConnectionPtr _connection; // The database connection. - - SubscriberMap _subscriberMap; // The subscribers. - LLUMap _llumap; // The LLU map. + DatabaseCachePtr _databaseCache; // The database cache. bool _destroyed; // Has this Topic been destroyed? }; diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index 56d33b07a15..3a065b6498d 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -12,13 +12,13 @@ #include <IceStorm/TopicI.h> #include <IceStorm/TraceLevels.h> #include <IceStorm/Instance.h> -#include <Freeze/Freeze.h> - #include <IceStorm/NodeI.h> #include <IceStorm/Observers.h> #include <IceStorm/Subscriber.h> - #include <Ice/SliceChecksums.h> +#ifdef QTSQL +# include <Ice/Instance.h> +#endif #include <functional> @@ -26,15 +26,24 @@ using namespace std; using namespace IceStorm; using namespace IceStormElection; +#ifdef QTSQL +using namespace IceSQL; +#else +using namespace Freeze; +#endif + namespace { void -halt(const Ice::CommunicatorPtr& com, const Freeze::DatabaseException& ex) +halt(const Ice::CommunicatorPtr& com, const DatabaseException& ex) { { Ice::Error error(com->getLogger()); error << "fatal exception: " << ex << "\n*** Aborting application ***"; +#ifdef __GNUC__ + error << "\n" << ex.ice_stackTrace(); +#endif } abort(); @@ -288,11 +297,8 @@ nameToIdentity(const InstancePtr& instance, const string& name) } TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) : - _instance(instance), - _connection(Freeze::createConnection(instance->communicator(), instance->serviceName())), - _llumap(_connection, "llu"), - _subscriberMap(_connection, "subscribers") + _databaseCache(new IceStorm::DatabaseCache(instance)) { try { @@ -314,17 +320,22 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) : _sync = _instance->nodeAdapter()->addWithUUID(_syncImpl); } + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + // Ensure that the llu counter is present in the log. - LLUMap::const_iterator ci = _llumap.find("_manager"); - if(ci == _llumap.end()) - { - LogUpdate empty = {0, 0}; - _llumap.put(LLUMap::value_type("_manager", empty)); - } + LLUWrapper llumap(_databaseCache, connection); + LogUpdate empty = {0, 0}; + llumap.put(empty); // Recreate each of the topics. - SubscriberMap::const_iterator p = _subscriberMap.begin(); - while(p != _subscriberMap.end()) + SubscriberMapWrapper subWrap(_databaseCache, connection); +#ifdef QTSQL + SubscriberMap subscriberMap = subWrap.getMap(); +#else + SubscriberMap& subscriberMap = subWrap.getMap(); +#endif + SubscriberMap::const_iterator p = subscriberMap.begin(); + while(p != subscriberMap.end()) { // This record has to be a place holder record, otherwise // there is a database bug. @@ -336,7 +347,7 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) : ++p; SubscriberRecordSeq content; - while(p != _subscriberMap.end() && p->first.topic == topic) + while(p != subscriberMap.end() && p->first.topic == topic) { content.push_back(p->second); ++p; @@ -381,28 +392,31 @@ TopicManagerImpl::create(const string& name) { try { + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); - Freeze::TransactionHolder txn(_connection); SubscriberRecordKey key; key.topic = id; SubscriberRecord rec; rec.link = false; rec.cost = 0; - _subscriberMap.put(SubscriberMap::value_type(key, rec)); - LLUMap::iterator ci = _llumap.find("_manager"); - assert(ci != _llumap.end()); - llu = ci->second; + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.put(key, rec); + + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); llu.iteration++; - ci.set(llu); + llumap.put(llu); txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -479,10 +493,14 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& cont { try { - Freeze::TransactionHolder txn(_connection); - _subscriberMap.clear(); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); - _llumap.put(LLUMap::value_type("_manager", llu)); + LLUWrapper llumap(_databaseCache, connection); + llumap.put(llu); + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + subscriberMap.clear(); for(TopicContentSeq::const_iterator p = content.begin(); p != content.end(); ++p) { @@ -491,24 +509,26 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& cont SubscriberRecord rec; rec.link = false; rec.cost = 0; - _subscriberMap.put(SubscriberMap::value_type(key, rec)); + + subscriberMap.put(key, rec); + for(SubscriberRecordSeq::const_iterator q = p->records.begin(); q != p->records.end(); ++q) { SubscriberRecordKey key; key.topic = p->id; key.id = q->id; - _subscriberMap.put(SubscriberMap::value_type(key, *q)); + + subscriberMap.put(key, *q); } } - txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -577,27 +597,37 @@ TopicManagerImpl::observerCreateTopic(const LogUpdate& llu, const string& name) { try { - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); + SubscriberRecordKey key; key.topic = id; SubscriberRecord rec; rec.link = false; rec.cost = 0; - SubscriberMap::const_iterator q = _subscriberMap.find(key); - if(q != _subscriberMap.end()) + + SubscriberMapWrapper subscriberMap(_databaseCache, connection); + try { + subscriberMap.find(key); throw ObserverInconsistencyException("topic exists: " + name); } - _subscriberMap.put(SubscriberMap::value_type(key, rec)); - _llumap.put(LLUMap::value_type("_manager", llu)); + catch(const NotFoundException&) + { + } + subscriberMap.put(key, rec); + + LLUWrapper llumap(_databaseCache, connection); + llumap.put(llu); + txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -664,34 +694,28 @@ TopicManagerImpl::getContent(LogUpdate& llu, TopicContentSeq& content) reap(); } - // Reads are not synchronized and therefore must use a separate - // connection. - const Freeze::ConnectionPtr connection = Freeze::createConnection(_instance->communicator(), - _instance->serviceName()); - const LLUMap llumap(connection, "llu"); + DatabaseConnectionPtr connection = _databaseCache->newConnection(); for(;;) { try { content.clear(); - Freeze::TransactionHolder txn(connection); for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { TopicContent rec = p->second->getContent(); content.push_back(rec); } - - LLUMap::const_iterator ci = llumap.find("_manager"); - assert(ci != llumap.end()); - llu = ci->second; + + LLUWrapper llumap(_databaseCache, connection); + llu = llumap.get(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -701,22 +725,20 @@ TopicManagerImpl::getContent(LogUpdate& llu, TopicContentSeq& content) LogUpdate TopicManagerImpl::getLastLogUpdate() const { - const Freeze::ConnectionPtr connection = Freeze::createConnection( - _instance->communicator(), _instance->serviceName()); - const LLUMap llumap(connection, "llu"); + DatabaseConnectionPtr connection = _databaseCache->newConnection(); for(;;) { try { - LLUMap::const_iterator ci = llumap.find("_manager"); - return ci->second; + LLUWrapper llumap(_databaseCache, connection); + return llumap.get(); } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -761,24 +783,26 @@ TopicManagerImpl::initMaster(const set<GroupNodeInfo>& slaves, const LogUpdate& { content.clear(); - Freeze::TransactionHolder txn(_connection); + DatabaseConnectionPtr connection = _databaseCache->getConnection(); + TransactionHolder txn(connection); + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { TopicContent rec = p->second->getContent(); content.push_back(rec); } - LLUMap::iterator ci = _llumap.find("_manager"); - ci.set(llu); + LLUWrapper llumap(_databaseCache, connection); + llumap.put(llu); txn.commit(); break; } - catch(const Freeze::DeadlockException&) + catch(const DeadlockException&) { continue; } - catch(const Freeze::DatabaseException& ex) + catch(const DatabaseException& ex) { halt(_instance->communicator(), ex); } @@ -868,7 +892,11 @@ TopicManagerImpl::installTopic(const string& name, const Ice::Identity& id, bool } // Create topic implementation - TopicImplPtr topicImpl = new TopicImpl(_instance, name, id, subscribers); +#ifdef QTSQL + TopicImplPtr topicImpl = new TopicImpl(_instance, name, id, subscribers, _databaseCache); +#else + TopicImplPtr topicImpl = new TopicImpl(_instance, name, id, subscribers, new IceStorm::DatabaseCache(_instance)); +#endif // The identity is the name of the Topic. _topics.insert(map<string, TopicImplPtr>::value_type(name, topicImpl)); diff --git a/cpp/src/IceStorm/TopicManagerI.h b/cpp/src/IceStorm/TopicManagerI.h index c465de938f9..ddca1751042 100644 --- a/cpp/src/IceStorm/TopicManagerI.h +++ b/cpp/src/IceStorm/TopicManagerI.h @@ -11,8 +11,8 @@ #define TOPIC_MANAGER_I_H #include <IceStorm/IceStorm.h> -#include <IceStorm/LLUMap.h> -#include <IceStorm/SubscriberMap.h> +#include <IceStorm/DatabaseCache.h> +#include <IceStorm/DatabaseWrapper.h> #include <IceStorm/Replica.h> #include <IceStorm/Election.h> @@ -77,10 +77,7 @@ private: const InstancePtr _instance; - // The connection and freeze maps. - const Freeze::ConnectionPtr _connection; - LLUMap _llumap; - SubscriberMap _subscriberMap; + DatabaseCachePtr _databaseCache; std::map<std::string, TopicImplPtr> _topics; diff --git a/cpp/test/IceGrid/replication/application.xml b/cpp/test/IceGrid/replication/application.xml index 34229533866..061ad77abbe 100644 --- a/cpp/test/IceGrid/replication/application.xml +++ b/cpp/test/IceGrid/replication/application.xml @@ -51,6 +51,8 @@ <property name="IceGrid.Registry.Trace.Locator" value="0"/> <property name="IceGrid.Registry.UserAccounts" value="${test.dir}/useraccounts.txt"/> <property name="Ice.Admin.Endpoints" value=""/> + <property name="IceGrid.SQL.DatabaseType" value="QSQLITE"/> + <property name="IceGrid.SQL.DatabaseName" value="${node.datadir}/servers/${server}/dbs/data/Registry.db"/> </server> </server-template> diff --git a/cpp/test/IceStorm/repgrid/application.xml b/cpp/test/IceStorm/repgrid/application.xml index 6b280c21d86..8258adf362a 100644 --- a/cpp/test/IceStorm/repgrid/application.xml +++ b/cpp/test/IceStorm/repgrid/application.xml @@ -14,6 +14,50 @@ <application name="Test" import-default-templates="true"> <!-- + This is the IceStorm-HA template, except we include + configuration for running with SQLite. + --> + <service-template id="IceStorm-HA-withsql"> + + <parameter name="instance-name" default="${application}.IceStorm"/> + <parameter name="node-id"/> + <parameter name="topic-manager-endpoints" default="default"/> + <parameter name="publish-endpoints" default="default"/> + <parameter name="node-endpoints" default="default"/> + <parameter name="flush-timeout" default="1000"/> + <parameter name="publish-replica-group"/> + <parameter name="topic-manager-replica-group"/> + + <service name="${instance-name}${node-id}" entry="IceStormService,34b:createIceStorm"> + + <dbenv name="${service}"/> + + <adapter name="${service}.TopicManager" + id="${instance-name}${node-id}.TopicManager" + endpoints="${topic-manager-endpoints}" + replica-group="${topic-manager-replica-group}"/> + + <adapter name="${service}.Publish" + id="${instance-name}${node-id}.Publish" + endpoints="${publish-endpoints}" + replica-group="${publish-replica-group}"/> + + <adapter name="${service}.Node" + id="${instance-name}${node-id}.Node" + endpoints="${node-endpoints}"/> + + <properties> + <property name="${service}.InstanceName" value="${instance-name}"/> + <property name="${service}.NodeId" value="${node-id}"/> + <property name="${service}.Flush.Timeout" value="${flush-timeout}"/> + <property name="${service}.SQL.DatabaseType" value="QSQLITE"/> + <property name="${service}.SQL.DatabaseName" value="db/${instance-name}${node-id}.db"/> + </properties> + </service> + + </service-template> + + <!-- This is the IceStorm-HA template, except we use a variable substitution for the icebox executable. --> @@ -29,7 +73,7 @@ <parameter name="topic-manager-replica-group"/> <icebox id="${instance-name}${node-id}" exe="${icebox.exe}" activation="on-demand"> - <service-instance template="IceStorm-HA" + <service-instance template="IceStorm-HA-withsql" instance-name="${instance-name}" node-id="${node-id}" topic-manager-endpoints="${topic-manager-endpoints}" @@ -55,11 +99,11 @@ topic-manager-replica-group="TopicManagerReplicaGroup"/> <icebox id="Test.IceStorm" exe="${icebox.exe}" activation="on-demand"> - <service-instance template="IceStorm-HA" + <service-instance template="IceStorm-HA-withsql" node-id="2" publish-replica-group="PublishReplicaGroup" topic-manager-replica-group="TopicManagerReplicaGroup"/> - <service-instance template="IceStorm-HA" + <service-instance template="IceStorm-HA-withsql" node-id="3" publish-replica-group="PublishReplicaGroup" topic-manager-replica-group="TopicManagerReplicaGroup"/> diff --git a/cpp/test/IceStorm/repgrid/run.py b/cpp/test/IceStorm/repgrid/run.py index b811ad6bd29..3802a5d1931 100755 --- a/cpp/test/IceStorm/repgrid/run.py +++ b/cpp/test/IceStorm/repgrid/run.py @@ -21,6 +21,12 @@ sys.path.append(os.path.join(path[0])) from scripts import * # +# Remove IceStorm databases possibly left from SQL run. +# +for filename in [os.path.join("db", f) for f in os.listdir("db") if f.endswith(".db")]: + os.remove(filename) + +# # Test client/server without on demand activation. # IceGridAdmin.iceGridTest("application.xml", "", '"icebox.exe=%s"' % TestUtil.getIceBox()) diff --git a/cs/src/Ice/Instance.cs b/cs/src/Ice/Instance.cs index 9cf476be5af..51d70d452fe 100644 --- a/cs/src/Ice/Instance.cs +++ b/cs/src/Ice/Instance.cs @@ -591,6 +591,15 @@ namespace IceInternal _initData.logger = logger; } + public void + setThreadHook(Ice.ThreadNotification threadHook) + { + // + // No locking, as it can only be called during plug-in loading + // + _initData.threadHook = threadHook; + } + // // Only for use by Ice.CommunicatorI // @@ -761,39 +770,6 @@ namespace IceInternal _retryQueue = new RetryQueue(this); - try - { - if(initializationData().properties.getProperty("Ice.ThreadPriority").Length > 0) - { - ThreadPriority priority = IceInternal.Util.stringToThreadPriority( - initializationData().properties.getProperty("Ice.ThreadPriority")); - _timer = new Timer(this, priority); - } - else - { - _timer = new Timer(this); - } - } - catch(System.Exception ex) - { - string s = "cannot create thread for timer:\n" + ex; - _initData.logger.error(s); - throw ex; - } - - try - { - _endpointHostResolver = new EndpointHostResolver(this); - } - catch(System.Exception ex) - { - string s = "cannot create thread for endpoint host resolver:\n" + ex; - _initData.logger.error(s); - throw ex; - } - - _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); - string[] facetFilter = _initData.properties.getPropertyAsList("Ice.Admin.Facets"); if(facetFilter.Length > 0) { @@ -817,10 +793,47 @@ namespace IceInternal // // Load plug-ins. // + Debug.Assert(_serverThreadPool == null); Ice.PluginManagerI pluginManagerImpl = (Ice.PluginManagerI)_pluginManager; pluginManagerImpl.loadPlugins(ref args); // + // Create threads. + // + try + { + if(initializationData().properties.getProperty("Ice.ThreadPriority").Length > 0) + { + ThreadPriority priority = IceInternal.Util.stringToThreadPriority( + initializationData().properties.getProperty("Ice.ThreadPriority")); + _timer = new Timer(this, priority); + } + else + { + _timer = new Timer(this); + } + } + catch(System.Exception ex) + { + string s = "cannot create thread for timer:\n" + ex; + _initData.logger.error(s); + throw ex; + } + + try + { + _endpointHostResolver = new EndpointHostResolver(this); + } + catch(System.Exception ex) + { + string s = "cannot create thread for endpoint host resolver:\n" + ex; + _initData.logger.error(s); + throw ex; + } + + _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); + + // // Get default router and locator proxies. Don't move this // initialization before the plug-in initialization!!! The proxies // might depend on endpoint factories to be installed by plug-ins. @@ -891,6 +904,16 @@ namespace IceInternal // Server thread pool initialization is lazy in serverThreadPool(). // + // + // An application can set Ice.InitPlugins=0 if it wants to postpone + // initialization until after it has interacted directly with the + // plug-ins. + // + if(_initData.properties.getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) + { + pluginManagerImpl.initializePlugins(); + } + // // This must be done last as this call creates the Ice.Admin object adapter // and eventually registers a process proxy with the Ice locator (allowing diff --git a/cs/src/Ice/Makefile b/cs/src/Ice/Makefile index b4cea247261..41225d56c48 100644 --- a/cs/src/Ice/Makefile +++ b/cs/src/Ice/Makefile @@ -96,6 +96,7 @@ SRCS = Acceptor.cs \ TcpConnector.cs \ TcpEndpointI.cs \ TcpTransceiver.cs \ + ThreadHookPlugin.cs \ ThreadPool.cs \ TieBase.cs \ Time.cs \ diff --git a/cs/src/Ice/Makefile.mak b/cs/src/Ice/Makefile.mak index 37440594fec..2b6e8efa997 100644 --- a/cs/src/Ice/Makefile.mak +++ b/cs/src/Ice/Makefile.mak @@ -96,6 +96,7 @@ SRCS = Acceptor.cs \ TcpConnector.cs \
TcpEndpointI.cs \
TcpTransceiver.cs \
+ ThreadHookPlugin.cs \
ThreadPool.cs \
TieBase.cs \
Time.cs \
diff --git a/cs/src/Ice/PluginManagerI.cs b/cs/src/Ice/PluginManagerI.cs index f84282e4eef..835b3213921 100644 --- a/cs/src/Ice/PluginManagerI.cs +++ b/cs/src/Ice/PluginManagerI.cs @@ -291,16 +291,6 @@ namespace Ice loadPlugin(name, val, ref cmdArgs); } } - - // - // An application can set Ice.InitPlugins=0 if it wants to postpone - // initialization until after it has interacted directly with the - // plug-ins. - // - if(properties.getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) - { - initializePlugins(); - } } private void loadPlugin(string name, string pluginSpec, ref string[] cmdArgs) diff --git a/cs/src/Ice/PropertyNames.cs b/cs/src/Ice/PropertyNames.cs index 6f82fe3c066..18bedbb4cc4 100644 --- a/cs/src/Ice/PropertyNames.cs +++ b/cs/src/Ice/PropertyNames.cs @@ -8,7 +8,7 @@ // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Sep 23 15:26:41 2009 +// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Sep 28 09:54:13 2009 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -369,6 +369,11 @@ namespace IceInternal new Property(@"^IceGrid\.Registry\.Trace\.Topic$", false, null), new Property(@"^IceGrid\.Registry\.Trace\.TopicManager$", false, null), new Property(@"^IceGrid\.Registry\.UserAccounts$", false, null), + new Property(@"^IceGrid\.SQL\.DatabaseType$", false, null), + new Property(@"^IceGrid\.SQL\.HostName$", false, null), + new Property(@"^IceGrid\.SQL\.DatabaseName$", false, null), + new Property(@"^IceGrid\.SQL\.UserName$", false, null), + new Property(@"^IceGrid\.SQL\.Password$", false, null), null }; diff --git a/cs/src/Ice/ThreadHookPlugin.cs b/cs/src/Ice/ThreadHookPlugin.cs new file mode 100644 index 00000000000..c767bb8c53b --- /dev/null +++ b/cs/src/Ice/ThreadHookPlugin.cs @@ -0,0 +1,59 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +namespace Ice +{ + /// <summary> + /// Class to support thread notification hooks. Applications using + /// thread notification hooks instantiate a ThreadHookPlugin with a + /// thread notification hook and return the instance from their + /// PluginFactory implementation. + /// </summary> + public class ThreadHookPlugin : Ice.Plugin + { + /// <summary> + /// Installs a custom logger for a communicator. + /// </summary> + /// <param name="communicator">The communicator using the thread notification hook.</param> + /// <param name="threadHook">The thread notification hook for the communicator.</param> + public + ThreadHookPlugin(Communicator communicator, ThreadNotification threadHook) + { + if(communicator == null) + { + PluginInitializationException ex = new PluginInitializationException(); + ex.reason = "Communicator cannot be null"; + throw ex; + } + + IceInternal.Instance instance = IceInternal.Util.getInstance(communicator); + instance.setThreadHook(threadHook); + } + + /// <summary> + /// Called by the Ice run time during communicator initialization. The derived class + /// can override this method to perform any initialization that might be required + /// by the thread notification hook. + /// </summary> + public void + initialize() + { + } + + /// <summary> + /// Called by the Ice run time when the communicator is destroyed. The derived class + /// can override this method to perform any finalization that might be required + /// by thread notification hook. + /// </summary> + public void + destroy() + { + } + } +} diff --git a/java/src/Ice/PluginManagerI.java b/java/src/Ice/PluginManagerI.java index 4d5bbdb9b0a..8da4b4636ee 100644 --- a/java/src/Ice/PluginManagerI.java +++ b/java/src/Ice/PluginManagerI.java @@ -254,16 +254,6 @@ public final class PluginManagerI implements PluginManager loadPlugin(name, value, cmdArgs); } } - - // - // An application can set Ice.InitPlugins=0 if it wants to postpone - // initialization until after it has interacted directly with the - // plug-ins. - // - if(properties.getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) - { - initializePlugins(); - } } private void diff --git a/java/src/Ice/ThreadHookPlugin.java b/java/src/Ice/ThreadHookPlugin.java new file mode 100644 index 00000000000..93b0916e027 --- /dev/null +++ b/java/src/Ice/ThreadHookPlugin.java @@ -0,0 +1,62 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 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. +// +// ********************************************************************** + +package Ice; + +/** + * Class to support thread notification hooks. Applications using thread + * notifications hooks instantiate a <code>ThreadHookPlugin</code> with + * a thread notification hook and return the instance from their + * {@link PluginFactory} implementation. + * + * @see PluginFactory + * @see Plugin + **/ +public class ThreadHookPlugin implements Ice.Plugin +{ + /** + * Installs a thread notification hook for a communicator. + * + * @param communicator The communicator using the thread notification hook. + * @param threadHook The thread notification hook for the communicator. + **/ + public + ThreadHookPlugin(Communicator communicator, ThreadNotification threadHook) + { + if(communicator == null) + { + PluginInitializationException ex = new PluginInitializationException(); + ex.reason = "Communicator cannot be null"; + throw ex; + } + + IceInternal.Instance instance = IceInternal.Util.getInstance(communicator); + instance.setThreadHook(threadHook); + } + + /** + * Called by the Ice run time during communicator initialization. The derived class + * can override this method to perform any initialization that might be required + * by a custom thread notification hook. + **/ + public void + initialize() + { + } + + /** + * Called by the Ice run time when the communicator is destroyed. The derived class + * can override this method to perform any finalization that might be required + * by a custom thread notification hook. + **/ + public void + destroy() + { + } +} diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index d97a5beef08..dc21c30cf2e 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -531,6 +531,15 @@ public final class Instance _initData.logger = logger; } + public void + setThreadHook(Ice.ThreadNotification threadHook) + { + // + // No locking, as it can only be called during plug-in loading + // + _initData.threadHook = threadHook; + } + public Class<?> findClass(String className) { @@ -712,34 +721,6 @@ public final class Instance _retryQueue = new RetryQueue(this); - try - { - _endpointHostResolver = new EndpointHostResolver(this); - } - catch(RuntimeException ex) - { - String s = "cannot create thread for endpoint host resolver:\n" + Ex.toString(ex); - _initData.logger.error(s); - throw ex; - } - - try - { - _timer = new Timer(this); - if(initializationData().properties.getProperty("Ice.ThreadPriority").length() > 0) - { - _timer.setPriority(Util.getThreadPriorityProperty(initializationData().properties, "Ice")); - } - } - catch(RuntimeException ex) - { - String s = "cannot create thread for timer:\n" + Ex.toString(ex); - _initData.logger.error(s); - throw ex; - } - - _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); - // // Add Process and Properties facets // @@ -790,10 +771,42 @@ public final class Instance // // Load plug-ins. // + assert(_serverThreadPool == null); Ice.PluginManagerI pluginManagerImpl = (Ice.PluginManagerI)_pluginManager; pluginManagerImpl.loadPlugins(args); // + // Create threads. + // + try + { + _timer = new Timer(this); + if(initializationData().properties.getProperty("Ice.ThreadPriority").length() > 0) + { + _timer.setPriority(Util.getThreadPriorityProperty(initializationData().properties, "Ice")); + } + } + catch(RuntimeException ex) + { + String s = "cannot create thread for timer:\n" + Ex.toString(ex); + _initData.logger.error(s); + throw ex; + } + + try + { + _endpointHostResolver = new EndpointHostResolver(this); + } + catch(RuntimeException ex) + { + String s = "cannot create thread for endpoint host resolver:\n" + Ex.toString(ex); + _initData.logger.error(s); + throw ex; + } + + _clientThreadPool = new ThreadPool(this, "Ice.ThreadPool.Client", 0); + + // // Get default router and locator proxies. Don't move this // initialization before the plug-in initialization!!! The proxies // might depend on endpoint factories to be installed by plug-ins. @@ -850,6 +863,16 @@ public final class Instance // // + // An application can set Ice.InitPlugins=0 if it wants to postpone + // initialization until after it has interacted directly with the + // plug-ins. + // + if(_initData.properties.getPropertyAsIntWithDefault("Ice.InitPlugins", 1) > 0) + { + pluginManagerImpl.initializePlugins(); + } + + // // This must be done last as this call creates the Ice.Admin object adapter // and eventually registers a process proxy with the Ice locator (allowing // remote clients to invoke on Ice.Admin facets as soon as it's registered). diff --git a/java/src/IceInternal/PropertyNames.java b/java/src/IceInternal/PropertyNames.java index f1883c96644..ad0f895e073 100644 --- a/java/src/IceInternal/PropertyNames.java +++ b/java/src/IceInternal/PropertyNames.java @@ -8,7 +8,7 @@ // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Sep 23 15:26:41 2009 +// Generated by makeprops.py from file ../config/PropertyNames.xml, Mon Sep 28 09:54:13 2009 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -369,6 +369,11 @@ public final class PropertyNames new Property("IceGrid\\.Registry\\.Trace\\.Topic", false, null), new Property("IceGrid\\.Registry\\.Trace\\.TopicManager", false, null), new Property("IceGrid\\.Registry\\.UserAccounts", false, null), + new Property("IceGrid\\.SQL\\.DatabaseType", false, null), + new Property("IceGrid\\.SQL\\.HostName", false, null), + new Property("IceGrid\\.SQL\\.DatabaseName", false, null), + new Property("IceGrid\\.SQL\\.UserName", false, null), + new Property("IceGrid\\.SQL\\.Password", false, null), null }; diff --git a/scripts/IceGridAdmin.py b/scripts/IceGridAdmin.py index 85f93226545..9b11b3dd94a 100644 --- a/scripts/IceGridAdmin.py +++ b/scripts/IceGridAdmin.py @@ -92,7 +92,7 @@ def startIceGridRegistry(testdir, dynamicRegistration = False): cleanDbDir(dataDir) print "starting icegrid " + name + "...", - cmd = command + \ + cmd = command + ' ' + TestUtil.getQtSqlOptions('IceGrid', dataDir) + \ r' --Ice.ProgramName=' + name + \ r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(iceGridPort + i) + '" ' + \ r' --IceGrid.Registry.Data=' + dataDir diff --git a/scripts/IceStormUtil.py b/scripts/IceStormUtil.py index a81894faade..a481a111372 100644 --- a/scripts/IceStormUtil.py +++ b/scripts/IceStormUtil.py @@ -25,7 +25,9 @@ origIceStormService = ' --IceBox.Service.IceStorm=IceStormService,' + TestUtil.g ' --IceBox.InheritProperties=1' + \ ' --Ice.Warn.Dispatch=0 --Ice.Warn.Connections=0' + \ ' --Ice.ServerIdleTime=0' + origIceStormProxy = '%s/TopicManager:default -p %d' + origIceStormReference = ' --IceStormAdmin.TopicManager.Default="%s"' class IceStormUtil(object): @@ -120,7 +122,12 @@ class Replicated(IceStormUtil): dbHome = os.path.join(self.testdir, "%d.%s" % (replica, dbDir)) self.dbHome.append(dbHome) TestUtil.cleanDbDir(dbHome) - self.iceStormDBEnv.append(" --Freeze.DbEnv.IceStorm.DbHome=%s" % dbHome) + + sqlOptions = TestUtil.getQtSqlOptions('IceStorm', dbHome) + if len(sqlOptions) == 0: + self.iceStormDBEnv.append(" --Freeze.DbEnv.IceStorm.DbHome=%s" % dbHome) + else: + self.iceStormDBEnv.append(" %s" % sqlOptions) self.procs.append(None) topicReplicaProxy = '%s/TopicManager:%s' % (instanceName, replicaTopicManagerEndpoints) @@ -215,7 +222,12 @@ class NonReplicated(IceStormUtil): self.dbHome = os.path.join(self.testdir, self.dbDir) TestUtil.cleanDbDir(self.dbHome) - self.iceStormDBEnv=" --Freeze.DbEnv.IceStorm.DbHome=" + self.dbHome + + sqlOptions = TestUtil.getQtSqlOptions('IceStorm', self.dbHome) + if len(sqlOptions) == 0: + self.iceStormDBEnv = " --Freeze.DbEnv.IceStorm.DbHome=" + self.dbHome + else: + self.iceStormDBEnv = " " + sqlOptions def clean(self): TestUtil.cleanDbDir(self.dbHome) diff --git a/scripts/TestUtil.py b/scripts/TestUtil.py index 1c6acdc378a..da661272a6d 100755 --- a/scripts/TestUtil.py +++ b/scripts/TestUtil.py @@ -26,6 +26,11 @@ tracefile = None printenv = False cross = [] watchDog = None +sqlType = None +sqlDbName = None +sqlHost = None +sqlUser = None +sqlPassword = None def isCygwin(): # The substring on sys.platform is required because some cygwin @@ -257,7 +262,12 @@ def run(tests, root = False): --x64 Binary distribution is 64-bit. --cross=lang Run cross language test. --script Generate a script to run the tests. - --env Print important environment variables + --env Print important environment variables. + --sql-type=<driver> Run IceStorm/IceGrid tests using QtSql with specified driver. + --sql-db=<db> Set SQL database name. + --sql-host=<host> Set SQL host name. + --sql-user=<user> Set SQL user name. + --sql-passwd=<passwd> Set SQL password. """ sys.exit(2) @@ -265,7 +275,8 @@ def run(tests, root = False): opts, args = getopt.getopt(sys.argv[1:], "lr:R:", ["start=", "start-after=", "filter=", "rfilter=", "all", "all-cross", "loop", "debug", "protocol=", "compress", "valgrind", "host=", "serialize", "continue", - "ipv6", "no-ipv6", "ice-home=", "cross=", "x64", "script", "env"]) + "ipv6", "no-ipv6", "ice-home=", "cross=", "x64", "script", "env", "sql-type=", + "sql-db=", "sql-host=", "sql-user=", "sql-passwd="]) except getopt.GetoptError: usage() @@ -317,7 +328,7 @@ def run(tests, root = False): sys.exit(1) if o in ( "--cross", "--protocol", "--host", "--debug", "--compress", "--valgrind", "--serialize", "--ipv6", \ - "--ice-home", "--x64", "--env"): + "--ice-home", "--x64", "--env", "--sql-type", "--sql-db", "--sql-host", "--sql-user", "--sql-passwd"): arg += " " + o if len(a) > 0: arg += " " + a @@ -611,6 +622,11 @@ class DriverConfig: overrides = None ipv6 = False x64 = False + sqlType = None + sqlDbName = None + sqlHost = None + sqlUser = None + sqlPassword = None def __init__(self, type = None): global protocol @@ -621,6 +637,11 @@ class DriverConfig: global valgrind global ipv6 global x64 + global sqlType + global sqlDbName + global sqlHost + global sqlUser + global sqlPassword self.lang = getDefaultMapping() self.protocol = protocol self.compress = compress @@ -631,6 +652,11 @@ class DriverConfig: self.type = type self.ipv6 = ipv6 self.x64 = x64 + self.sqlType = sqlType + self.sqlDbName = sqlDbName + self.sqlHost = sqlHost + self.sqlUser = sqlUser + self.sqlPassword = sqlPassword def argsToDict(argumentString, results): """Converts an argument string to dictionary""" @@ -797,6 +823,47 @@ def getDefaultCollocatedFile(): def isDebug(): return debug +def getQtSqlOptions(prefix, dataDir): + if sqlType == None: + return "" + + options = '--' + prefix+ '.SQL.DatabaseType=' + sqlType + + options += ' --' + prefix+ '.SQL.DatabaseName=' + if sqlDbName == None: + if sqlType == "QSQLITE": + options += dataDir + '/SQL.db' + elif sqlType == "QODBC": + options += 'testdsn' + else: + options += 'test' + else: + options += sqlDbName + + options += ' --' + prefix+ '.SQL.HostName=' + if sqlHost == None: + if sqlType == "QODBC": + options += '.\SQLExpress' + else: + options += 'localhost' + else: + options += sqlHost + + options += ' --' + prefix+ '.SQL.UserName=' + if sqlUser == None: + options += 'test' + else: + options += sqlUser + + options += ' --' + prefix+ '.SQL.Password=' + if sqlPassword != None: + options += sqlPassword + + if prefix == "IceStorm": + options += ' --Ice.Plugin.SQLThreadHook=IceStormService:createThreadHook' + + return options + import Expect def spawn(cmd, env=None, cwd=None, startReader=True, lang=None): # Start/Reset the watch dog thread @@ -1083,13 +1150,19 @@ def processCmdLine(): --x64 Binary distribution is 64-bit. --env Print important environment variables. --cross=lang Run cross language test. + --sql-type=<driver> Run IceStorm/IceGrid tests using QtSql with specified driver. + --sql-db=<db> Set SQL database name. + --sql-host=<host> Set SQL host name. + --sql-user=<user> Set SQL user name. + --sql-passwd=<passwd> Set SQL password. """ sys.exit(2) try: opts, args = getopt.getopt( sys.argv[1:], "", ["debug", "trace=", "protocol=", "compress", "valgrind", "host=", "serialize", "ipv6", \ - "ice-home=", "x64", "cross=", "env"]) + "ice-home=", "x64", "cross=", "env", "sql-type=", "sql-db=", "sql-host=", "sql-user=", + "sql-passwd="]) except getopt.GetoptError: usage() @@ -1157,6 +1230,21 @@ def processCmdLine(): sys.exit(1) global protocol protocol = a + elif o == "--sql-type": + global sqlType + sqlType = a + elif o == "--sql-db": + global sqlDbName + sqlDbName = a + elif o == "--sql-host": + global sqlHost + sqlHost = a + elif o == "--sql-user": + global sqlUser + sqlUser = a + elif o == "--sql-passwd": + global sqlPassword + sqlPassword = a if len(args) > 0: usage() |