summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2009-09-28 11:05:44 -0230
committerDwayne Boone <dwayne@zeroc.com>2009-09-28 11:05:44 -0230
commit7d20430028f05cc26c412465176a75ce4ea5af9e (patch)
tree593695acf366f7e3a7081d15af8f474683ce4af7
parentRemoved unused __checkTwoway(const char*) from Proxy (diff)
downloadice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.bz2
ice-7d20430028f05cc26c412465176a75ce4ea5af9e.tar.xz
ice-7d20430028f05cc26c412465176a75ce4ea5af9e.zip
Bug 3231 - alternative storage for IceGrid and IceStorm
-rw-r--r--CHANGES8
-rw-r--r--config/PropertyNames.xml5
-rw-r--r--cpp/config/Make.rules11
-rw-r--r--cpp/config/Make.rules.Darwin3
-rw-r--r--cpp/config/Make.rules.Linux2
-rw-r--r--cpp/config/Make.rules.SunOS2
-rw-r--r--cpp/config/Make.rules.mak3
-rw-r--r--cpp/demo/IceGrid/allocate/config.grid6
-rw-r--r--cpp/demo/IceGrid/icebox/config.grid6
-rw-r--r--cpp/demo/IceGrid/replication/config.master6
-rw-r--r--cpp/demo/IceGrid/replication/config.replica16
-rw-r--r--cpp/demo/IceGrid/replication/config.replica26
-rw-r--r--cpp/demo/IceGrid/secure/config.registry6
-rw-r--r--cpp/demo/IceGrid/sessionActivation/config.grid6
-rw-r--r--cpp/demo/IceGrid/simple/config.grid6
-rw-r--r--cpp/demo/IceStorm/clock/config.service7
-rw-r--r--cpp/demo/IceStorm/counter/config.service6
-rw-r--r--cpp/demo/IceStorm/replicated/.gitignore1
-rw-r--r--cpp/demo/IceStorm/replicated/Makefile2
-rw-r--r--cpp/demo/IceStorm/replicated/application.xml2
-rw-r--r--cpp/demo/IceStorm/replicated/config.grid6
-rw-r--r--cpp/demo/IceStorm/replicated2/config.s16
-rw-r--r--cpp/demo/IceStorm/replicated2/config.s26
-rw-r--r--cpp/demo/IceStorm/replicated2/config.s36
-rw-r--r--cpp/include/Ice/Initialize.h15
-rw-r--r--cpp/include/Ice/LoggerUtil.h1
-rw-r--r--cpp/src/Ice/Initialize.cpp22
-rw-r--r--cpp/src/Ice/Instance.cpp89
-rw-r--r--cpp/src/Ice/Instance.h1
-rw-r--r--cpp/src/Ice/PluginManagerI.cpp10
-rw-r--r--cpp/src/Ice/PropertyNames.cpp7
-rw-r--r--cpp/src/Ice/PropertyNames.h2
-rw-r--r--cpp/src/IceGrid/.depend35
-rw-r--r--cpp/src/IceGrid/Database.cpp517
-rw-r--r--cpp/src/IceGrid/Database.h11
-rw-r--r--cpp/src/IceGrid/DatabaseCache.cpp77
-rw-r--r--cpp/src/IceGrid/DatabaseCache.h68
-rw-r--r--cpp/src/IceGrid/DatabaseWrapper.h395
-rw-r--r--cpp/src/IceGrid/IceGridNode.cpp30
-rw-r--r--cpp/src/IceGrid/IceGridRegistry.cpp30
-rw-r--r--cpp/src/IceGrid/Makefile72
-rw-r--r--cpp/src/IceGrid/Makefile.mak64
-rw-r--r--cpp/src/IceGrid/SqlIdentityObjectInfoDict.cpp224
-rw-r--r--cpp/src/IceGrid/SqlIdentityObjectInfoDict.h47
-rw-r--r--cpp/src/IceGrid/SqlStringAdapterInfoDict.cpp228
-rw-r--r--cpp/src/IceGrid/SqlStringAdapterInfoDict.h47
-rw-r--r--cpp/src/IceGrid/SqlStringApplicationInfoDict.cpp343
-rw-r--r--cpp/src/IceGrid/SqlStringApplicationInfoDict.h46
-rw-r--r--cpp/src/IceGrid/Topics.h12
-rw-r--r--cpp/src/IceSQL/SqlTypes.cpp413
-rw-r--r--cpp/src/IceSQL/SqlTypes.h156
-rw-r--r--cpp/src/IceStorm/.depend11
-rw-r--r--cpp/src/IceStorm/.gitignore2
-rw-r--r--cpp/src/IceStorm/DatabaseCache.cpp78
-rw-r--r--cpp/src/IceStorm/DatabaseCache.h68
-rw-r--r--cpp/src/IceStorm/DatabaseWrapper.h218
-rw-r--r--cpp/src/IceStorm/Makefile63
-rw-r--r--cpp/src/IceStorm/Makefile.mak70
-rw-r--r--cpp/src/IceStorm/Service.cpp29
-rw-r--r--cpp/src/IceStorm/SqlLLU.cpp89
-rw-r--r--cpp/src/IceStorm/SqlLLU.h37
-rw-r--r--cpp/src/IceStorm/SqlSubscriberMap.cpp406
-rw-r--r--cpp/src/IceStorm/SqlSubscriberMap.h67
-rw-r--r--cpp/src/IceStorm/TopicI.cpp194
-rw-r--r--cpp/src/IceStorm/TopicI.h12
-rw-r--r--cpp/src/IceStorm/TopicManagerI.cpp158
-rw-r--r--cpp/src/IceStorm/TopicManagerI.h9
-rw-r--r--cpp/test/IceGrid/replication/application.xml2
-rw-r--r--cpp/test/IceStorm/repgrid/application.xml50
-rwxr-xr-xcpp/test/IceStorm/repgrid/run.py6
-rw-r--r--cs/src/Ice/Instance.cs89
-rw-r--r--cs/src/Ice/Makefile1
-rw-r--r--cs/src/Ice/Makefile.mak1
-rw-r--r--cs/src/Ice/PluginManagerI.cs10
-rw-r--r--cs/src/Ice/PropertyNames.cs7
-rw-r--r--cs/src/Ice/ThreadHookPlugin.cs59
-rw-r--r--java/src/Ice/PluginManagerI.java10
-rw-r--r--java/src/Ice/ThreadHookPlugin.java62
-rw-r--r--java/src/IceInternal/Instance.java79
-rw-r--r--java/src/IceInternal/PropertyNames.java7
-rw-r--r--scripts/IceGridAdmin.py2
-rw-r--r--scripts/IceStormUtil.py16
-rwxr-xr-xscripts/TestUtil.py96
83 files changed, 4540 insertions, 554 deletions
diff --git a/CHANGES b/CHANGES
index df4d6beb6c3..8556b8c4918 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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()