summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2002-06-28 19:20:18 +0000
committerBenoit Foucher <benoit@zeroc.com>2002-06-28 19:20:18 +0000
commit75ac12c02d537f38b03567e406cbeccf29226fe0 (patch)
tree4add4682e2aa8edd9c58f1a23ad3f0ccc8336d02 /cpp
parentReplaced invalid struct name Struct with Structure. (diff)
downloadice-75ac12c02d537f38b03567e406cbeccf29226fe0.tar.bz2
ice-75ac12c02d537f38b03567e406cbeccf29226fe0.tar.xz
ice-75ac12c02d537f38b03567e406cbeccf29226fe0.zip
Merged location branch.
Diffstat (limited to 'cpp')
-rwxr-xr-xcpp/allTests.py1
-rw-r--r--cpp/config/IcePackAdmin.py125
-rw-r--r--cpp/config/TestUtil.py29
-rw-r--r--cpp/doc/Makefile1
-rw-r--r--cpp/doc/Properties.sgml116
-rw-r--r--cpp/doc/ProxiesEndpoints.sgml3
-rw-r--r--cpp/include/Ice/Proxy.h13
-rw-r--r--cpp/slice/Ice/Locator.ice82
-rw-r--r--cpp/slice/Ice/LocatorF.ice22
-rw-r--r--cpp/slice/Ice/ObjectAdapter.ice37
-rw-r--r--cpp/slice/Ice/Router.ice6
-rw-r--r--cpp/slice/IcePack/Admin.ice251
-rw-r--r--cpp/src/Ice/.depend60
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp19
-rw-r--r--cpp/src/Ice/DefaultsAndOverrides.cpp2
-rw-r--r--cpp/src/Ice/DefaultsAndOverrides.h1
-rw-r--r--cpp/src/Ice/Instance.cpp43
-rw-r--r--cpp/src/Ice/Instance.h3
-rw-r--r--cpp/src/Ice/LocatorInfo.cpp283
-rw-r--r--cpp/src/Ice/LocatorInfo.h86
-rw-r--r--cpp/src/Ice/LocatorInfoF.h36
-rw-r--r--cpp/src/Ice/Makefile21
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp135
-rw-r--r--cpp/src/Ice/ObjectAdapterI.h7
-rw-r--r--cpp/src/Ice/Proxy.cpp150
-rw-r--r--cpp/src/Ice/ProxyFactory.cpp47
-rw-r--r--cpp/src/Ice/ProxyFactory.h1
-rw-r--r--cpp/src/Ice/Reference.cpp175
-rw-r--r--cpp/src/Ice/Reference.h15
-rw-r--r--cpp/src/Ice/ReferenceFactory.cpp134
-rw-r--r--cpp/src/Ice/ReferenceFactory.h10
-rw-r--r--cpp/src/Ice/TraceLevels.cpp5
-rw-r--r--cpp/src/Ice/TraceLevels.h3
-rw-r--r--cpp/src/IcePack/.depend22
-rw-r--r--cpp/src/IcePack/Activator.ice34
-rw-r--r--cpp/src/IcePack/ActivatorI.cpp (renamed from cpp/src/IcePack/Activator.cpp)160
-rw-r--r--cpp/src/IcePack/ActivatorI.h (renamed from cpp/src/IcePack/Activator.h)113
-rw-r--r--cpp/src/IcePack/AdapterManager.ice176
-rw-r--r--cpp/src/IcePack/AdapterManagerF.ice23
-rw-r--r--cpp/src/IcePack/AdapterManagerI.cpp200
-rw-r--r--cpp/src/IcePack/AdapterManagerI.h60
-rw-r--r--cpp/src/IcePack/AdminI.cpp127
-rw-r--r--cpp/src/IcePack/AdminI.h22
-rw-r--r--cpp/src/IcePack/Client.cpp11
-rw-r--r--cpp/src/IcePack/Grammar.y97
-rw-r--r--cpp/src/IcePack/LocatorI.cpp51
-rw-r--r--cpp/src/IcePack/LocatorI.h38
-rw-r--r--cpp/src/IcePack/LocatorRegistryI.cpp75
-rw-r--r--cpp/src/IcePack/LocatorRegistryI.h36
-rw-r--r--cpp/src/IcePack/Makefile49
-rw-r--r--cpp/src/IcePack/Parser.cpp253
-rw-r--r--cpp/src/IcePack/Parser.h15
-rw-r--r--cpp/src/IcePack/Scanner.l40
-rw-r--r--cpp/src/IcePack/Server.cpp151
-rw-r--r--cpp/src/IcePack/ServerManager.ice117
-rw-r--r--cpp/src/IcePack/ServerManagerF.ice23
-rw-r--r--cpp/src/IcePack/ServerManagerI.cpp313
-rw-r--r--cpp/src/IcePack/ServerManagerI.h65
-rw-r--r--cpp/src/IcePack/icepackS.dsp184
-rw-r--r--cpp/src/slice2cpp/Gen.cpp4
-rw-r--r--cpp/src/slice2java/Gen.cpp4
-rw-r--r--cpp/test/Ice/Makefile3
-rw-r--r--cpp/test/Ice/location/.depend6
-rw-r--r--cpp/test/Ice/location/AllTests.cpp108
-rw-r--r--cpp/test/Ice/location/Client.cpp58
-rw-r--r--cpp/test/Ice/location/Collocated.cpp61
-rw-r--r--cpp/test/Ice/location/Makefile50
-rw-r--r--cpp/test/Ice/location/Server.cpp80
-rw-r--r--cpp/test/Ice/location/ServerLocator.cpp54
-rw-r--r--cpp/test/Ice/location/ServerLocator.h53
-rw-r--r--cpp/test/Ice/location/Test.ice32
-rw-r--r--cpp/test/Ice/location/TestI.cpp73
-rw-r--r--cpp/test/Ice/location/TestI.h52
-rw-r--r--cpp/test/Ice/location/locationC.dsp161
-rw-r--r--cpp/test/Ice/location/locationCOL.dsp169
-rw-r--r--cpp/test/Ice/location/locationS.dsp169
-rwxr-xr-xcpp/test/Ice/location/run.py27
-rw-r--r--cpp/test/IcePack/simple/.depend14
-rw-r--r--cpp/test/IcePack/simple/AllTests.cpp2
-rw-r--r--cpp/test/IcePack/simple/Collocated.cpp2
-rw-r--r--cpp/test/IcePack/simple/Server.cpp2
-rwxr-xr-xcpp/test/IcePack/simple/run.py117
82 files changed, 5093 insertions, 585 deletions
diff --git a/cpp/allTests.py b/cpp/allTests.py
index cb5a737f31e..8366de436f5 100755
--- a/cpp/allTests.py
+++ b/cpp/allTests.py
@@ -35,6 +35,7 @@ tests = [ \
"Ice/objects", \
"Ice/faultTolerance", \
"Ice/locationForward", \
+ "Ice/location", \
"IceSSL/configuration", \
"IceSSL/loadPEM", \
"IceSSL/certificateAndKeyParsing", \
diff --git a/cpp/config/IcePackAdmin.py b/cpp/config/IcePackAdmin.py
new file mode 100644
index 00000000000..aabd56005fa
--- /dev/null
+++ b/cpp/config/IcePackAdmin.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2001
+# MutableRealms, Inc.
+# Huntsville, AL, USA
+#
+# All Rights Reserved
+#
+# **********************************************************************
+
+import sys, os, TestUtil
+
+icePackPort = "0";
+
+def startIcePack(toplevel, port):
+
+ global icePackPort
+
+ options = TestUtil.serverOptions.replace("TOPLEVELDIR", toplevel)
+
+ icePackPort = port
+
+ icePack = os.path.join(toplevel, "bin", "icepack")
+
+ print "starting icepack...",
+ command = icePack + options + ' --nowarn' + \
+ r' --IcePack.Locator.Endpoints="default -p ' + icePackPort + ' -t 5000" ' + \
+ r' --IcePack.LocatorRegistry.Endpoints=default' + \
+ r' --IcePack.Admin.Endpoints=default'
+
+ icePackPipe = os.popen(command)
+ TestUtil.getServerPid(icePackPipe)
+ TestUtil.getAdapterReady(icePackPipe)
+ TestUtil.getAdapterReady(icePackPipe)
+ print "ok"
+ return icePackPipe
+
+def shutdownIcePack(toplevel, icePackPipe):
+
+ global icePackPort
+ icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
+
+ options = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
+
+ print "shutting down icepack...",
+ command = icePackAdmin + options + \
+ r' "--Ice.Default.Locator=IcePack/locator:default -p ' + icePackPort + '" ' + \
+ r' -e "shutdown" '
+
+ icePackAdminPipe = os.popen(command)
+ icePackAdminStatus = icePackAdminPipe.close()
+ icePackPipe.close()
+ print "ok"
+
+ if icePackAdminStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
+
+def addServer(toplevel, name, server, serverPwd, serverOptions, serverAdapters):
+
+ global icePackPort
+ icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
+
+ options = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
+
+ command = icePackAdmin + options + \
+ r' "--Ice.Default.Locator=IcePack/locator:default -p ' + icePackPort + '" ' + \
+ r' -e "server add \"' + name + '\\" \\"' + server + '\\" ' + serverPwd + \
+ r' options { ' + serverOptions + ' } ' + \
+ r' adapters {' + serverAdapters + ' } \" '
+
+ icePackAdminPipe = os.popen(command)
+ icePackAdminStatus = icePackAdminPipe.close()
+ if icePackAdminStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
+def startServer(toplevel, name):
+ global icePackPort
+ icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
+
+ options = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
+
+ command = icePackAdmin + options + \
+ r' "--Ice.Default.Locator=IcePack/locator:default -p ' + icePackPort + '" ' + \
+ r' -e "server start \"' + name + '\\""'
+
+ icePackAdminPipe = os.popen(command)
+ icePackAdminStatus = icePackAdminPipe.close()
+ if icePackAdminStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
+def listAdapters(toplevel):
+ global icePackPort
+ icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
+
+ options = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
+
+ command = icePackAdmin + options + \
+ r' "--Ice.Default.Locator=IcePack/locator:default -p ' + icePackPort + '" ' + \
+ r' -e "adapter list"'
+
+ icePackAdminPipe = os.popen(command)
+ return icePackAdminPipe
+
+def removeAdapter(toplevel, name):
+
+ global icePackPort
+ icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
+
+ options = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
+
+ command = icePackAdmin + options + \
+ r' "--Ice.Default.Locator=IcePack/locator:default -p ' + icePackPort + '" ' + \
+ r' -e "adapter remove \"' + name + '\\""'
+
+ icePackAdminPipe = os.popen(command)
+ icePackAdminStatus = icePackAdminPipe.close()
+ if icePackAdminStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
diff --git a/cpp/config/TestUtil.py b/cpp/config/TestUtil.py
index 2ee25fc35e6..1631ae35fec 100644
--- a/cpp/config/TestUtil.py
+++ b/cpp/config/TestUtil.py
@@ -131,7 +131,7 @@ def getAdapterReady(serverPipe):
killServers()
sys.exit(1)
-def clientServerTest(toplevel, name):
+def clientServerTestWithOptions(toplevel, name, additionalServerOptions, additionalClientOptions):
testdir = os.path.join(toplevel, "test", name)
server = os.path.join(testdir, "server")
@@ -141,13 +141,13 @@ def clientServerTest(toplevel, name):
updatedClientOptions = clientOptions.replace("TOPLEVELDIR", toplevel)
print "starting server...",
- serverPipe = os.popen(server + updatedServerOptions)
+ serverPipe = os.popen(server + updatedServerOptions + additionalServerOptions)
getServerPid(serverPipe)
getAdapterReady(serverPipe)
print "ok"
print "starting client...",
- clientPipe = os.popen(client + updatedClientOptions)
+ clientPipe = os.popen(client + updatedClientOptions + additionalClientOptions)
print "ok"
for output in clientPipe.xreadlines():
@@ -160,7 +160,12 @@ def clientServerTest(toplevel, name):
killServers()
sys.exit(1)
-def mixedClientServerTest(toplevel, name):
+def clientServerTest(toplevel, name):
+
+ clientServerTestWithOptions(toplevel, name, "", "")
+
+
+def mixedClientServerTestWithOptions(toplevel, name, additionalServerOptions, additionalClientOptions):
testdir = os.path.join(toplevel, "test", name)
server = os.path.join(testdir, "server")
@@ -170,13 +175,13 @@ def mixedClientServerTest(toplevel, name):
updatedClientOptions = updatedServerOptions
print "starting server...",
- serverPipe = os.popen(server + updatedServerOptions)
+ serverPipe = os.popen(server + updatedServerOptions + additionalServerOptions)
getServerPid(serverPipe)
getAdapterReady(serverPipe)
print "ok"
print "starting client...",
- clientPipe = os.popen(client + updatedClientOptions)
+ clientPipe = os.popen(client + updatedClientOptions + additionalClientOptions)
getServerPid(clientPipe)
getAdapterReady(clientPipe)
print "ok"
@@ -191,7 +196,11 @@ def mixedClientServerTest(toplevel, name):
killServers()
sys.exit(1)
-def collocatedTest(toplevel, name):
+def mixedClientServerTest(toplevel, name):
+
+ mixedClientServerTestWithOptions(toplevel, name, "", "")
+
+def collocatedTestWithOptions(toplevel, name, additionalOptions):
testdir = os.path.join(toplevel, "test", name)
collocated = os.path.join(testdir, "collocated")
@@ -199,7 +208,7 @@ def collocatedTest(toplevel, name):
updatedCollocatedOptions = collocatedOptions.replace("TOPLEVELDIR", toplevel)
print "starting collocated...",
- collocatedPipe = os.popen(collocated + updatedCollocatedOptions)
+ collocatedPipe = os.popen(collocated + updatedCollocatedOptions + additionalOptions)
print "ok"
for output in collocatedPipe.xreadlines():
@@ -211,6 +220,10 @@ def collocatedTest(toplevel, name):
killServers()
sys.exit(1)
+def collocatedTest(toplevel, name):
+
+ collocatedTestWithOptions(toplevel, name, "")
+
def cleanDbDir(path):
files = os.listdir(path)
diff --git a/cpp/doc/Makefile b/cpp/doc/Makefile
index 22a33d7535b..879c890e011 100644
--- a/cpp/doc/Makefile
+++ b/cpp/doc/Makefile
@@ -22,6 +22,7 @@ SLICEFILES = ../slice/Ice/BuiltinSequences.ice \
../slice/Ice/Current.ice \
../slice/Ice/Identity.ice \
../slice/Ice/LocalException.ice \
+ ../slice/Ice/Locator.ice \
../slice/Ice/Logger.ice \
../slice/Ice/ObjectAdapter.ice \
../slice/Ice/ObjectFactory.ice \
diff --git a/cpp/doc/Properties.sgml b/cpp/doc/Properties.sgml
index 37ce1ceca6a..2a3ef3fc241 100644
--- a/cpp/doc/Properties.sgml
+++ b/cpp/doc/Properties.sgml
@@ -148,7 +148,7 @@ Ice.Adapter.<replaceable>name</replaceable>.Router=<replaceable>router</replacea
<section>
<title>Description</title>
<para>
-Specifies a router (as stingified proxy to the &Glacier; router
+Specifies a router (as stringified proxy to the &Glacier; router
control interface) for the object adapter with the name
<replaceable>name</replaceable>. By doing so, the object adapter can
receive callbacks from this router, using connections which are
@@ -162,6 +162,24 @@ router. </para></note>
</section>
</section>
+<section><title>Ice.Adapter.<replaceable>name</replaceable>.Locator</title>
+<section><title>Synopsis</title>
+<synopsis>
+Ice.Adapter.<replaceable>name</replaceable>.Locator=<replaceable>num</replaceable>
+</synopsis>
+</section>
+<section>
+<title>Description</title>
+<para>
+Specifies a locator (as stringified proxy to the &Ice; locator
+interface) for the object adapter with the name
+<replaceable>name</replaceable>. By doing so, the object adapter will
+register itself and its endpoints with the locator registry from this
+locator.
+</para>
+</section>
+</section>
+
<section><title>Ice.PrintAdapterReady</title>
<section><title>Synopsis</title>
<synopsis>
@@ -304,6 +322,25 @@ router.
</section>
</section>
+<section><title>Ice.Default.Locator</title>
+<section><title>Synopsis</title>
+<synopsis>
+Ice.Default.Locator=<replaceable>locator</replaceable>
+</synopsis>
+</section>
+<section>
+<title>Description</title>
+<para>
+Specifies a default locator (as stingified proxy to the &Ice; locator
+interface) which is to be used for all proxies and object adapters unless
+the locator is overwritten with a proxy's
+<literal>ice_locator()</literal> operation or with an object adapter
+<literal>Ice.Adapter.<replaceable>name</replaceable>.Locator</literal>
+property. The default value is no locator.
+</para>
+</section>
+</section>
+
<section><title>Ice.Override.Timeout</title>
<section><title>Synopsis</title>
<synopsis>
@@ -714,18 +751,87 @@ There are no default values for these properties.
<section><title>&IcePack; Properties</title>
<!-- ********************************************************************** -->
-<section><title>IcePack.Admin.Endpoints, IcePack.Forward.Endpoints</title>
+<section><title>IcePack.Locator.Endpoints,IcePack.Locator.Identity</title>
+<section><title>Synopsis</title>
+<synopsis>
+IcePack.Locator.Endpoints=<replaceable>endpoints</replaceable>
+IcePack.Locator.Identity=<replaceable>identity</replaceable>
+</synopsis>
+</section>
+<section>
+<title>Description</title>
+<para>
+Defines the endpoints and identity of the &IcePack; locator
+interface. The locator endpoints must be accessible to &Ice; clients
+that are using &IcePack; to locate objects.
+</para>
+<para>The default value for <literal>IcePack.Locator.Identity</literal>
+is <literal>IcePack/locator</literal>.
+</para>
+</section>
+
+</section>
+
+<section><title>IcePack.LocatorRegistry.Endpoints,IcePack.LocatorRegistry.Identity</title>
+<section><title>Synopsis</title>
+<synopsis>
+IcePack.LocatorRegistry.Endpoints=<replaceable>endpoints</replaceable>
+IcePack.LocatorRegistry.Identity=<replaceable>identity</replaceable>
+</synopsis>
+</section>
+<section>
+<title>Description</title>
+<para>
+Defines the endpoints and identity of the &IcePack; locator registry
+interface. The locator registry endpoints must be accessible to &Ice;
+servers that are using &IcePack; to register their object adapters.
+</para>
+<para>The default value for
+<literal>IcePack.LocatorRegistry.Identity</literal>
+is <literal>IcePack/locatorregistry</literal>.
+</para>
+</section>
+
+</section>
+
+<section><title>IcePack.Admin.Endpoints,IcePack.Admin.Identity</title>
<section><title>Synopsis</title>
<synopsis>
IcePack.Admin.Endpoints=<replaceable>endpoints</replaceable>
-IcePack.Forward.Endpoints=<replaceable>endpoints</replaceable>
+IcePack.Admin.Identity=<replaceable>identity</replaceable>
+</synopsis>
+</section>
+<section>
+<title>Description</title>
+<para>
+Defines the optional administrative endpoints and identity of the
+&IcePack; admin interface. The administrative endpoints must be
+accessible to clients which are using the &IcePack; administrative
+interface such as the &IcePack; administrative tool.
+</para>
+<para>The default value for IcePack.Admin.Identity is
+<literal>IcePack/admin</literal>.
+</para>
+<note><para>Allowing access to the &IcePack; admin interface is a
+security risk! If you don't specify the administrative endpoints the
+admin interface will be disabled.</para></note>
+</section>
+</section>
+
+<section><title>IcePack.Activation.WaitTime</title>
+<section><title>Synopsis</title>
+<synopsis>
+IcePack.Activation.WaitTime=<replaceable>num</replaceable>
</synopsis>
</section>
<section>
<title>Description</title>
<para>
-Defines the endpoints of the &IcePack; administrative interface and of
-the &IcePack; forwarder.
+Defines the interval in seconds that &IcePack; will wait for the
+server to register its adapters. If the server didn't register its
+adapters during this time interval and a client is waiting for the
+activation of one of the server object adapters, &IcePack; will return
+empty endpoints to the client. The default value is 10 seconds.
</para>
</section>
</section>
diff --git a/cpp/doc/ProxiesEndpoints.sgml b/cpp/doc/ProxiesEndpoints.sgml
index b06c48d38bf..b550b131e85 100644
--- a/cpp/doc/ProxiesEndpoints.sgml
+++ b/cpp/doc/ProxiesEndpoints.sgml
@@ -25,7 +25,10 @@ All Rights Reserved
<arg>-s</arg>
<arg>-c</arg>
</group>
+<group>
+<arg choice=plain> @ <replaceable>adapter_name</replaceable></arg>
<arg choice=plain> : <replaceable>endpoints</replaceable></arg>
+</group>
</cmdsynopsis>
</section>
diff --git a/cpp/include/Ice/Proxy.h b/cpp/include/Ice/Proxy.h
index 81d438c7391..48dd68a33ba 100644
--- a/cpp/include/Ice/Proxy.h
+++ b/cpp/include/Ice/Proxy.h
@@ -21,6 +21,7 @@
#include <Ice/ObjectAdapterF.h>
#include <Ice/ReferenceF.h>
//#include <Ice/RouterF.h> // Can't include RouterF.h here, otherwise we have cyclic includes
+//#include <Ice/LocatorF.h> // Can't include RouterF.h here, otherwise we have cyclic includes
#include <Ice/Current.h>
namespace IceProxy
@@ -30,6 +31,7 @@ namespace Ice
{
class Router;
+class Locator;
}
@@ -44,12 +46,19 @@ ICE_API void decRef(::IceProxy::Ice::Router*);
ICE_API void checkedCast(const ::Ice::ObjectPrx&, const ::std::string&, ProxyHandle< ::IceProxy::Ice::Router>&);
ICE_API void uncheckedCast(const ::Ice::ObjectPrx&, const ::std::string&, ProxyHandle< ::IceProxy::Ice::Router>&);
+ICE_API void incRef(::IceProxy::Ice::Locator*);
+ICE_API void decRef(::IceProxy::Ice::Locator*);
+
+ICE_API void checkedCast(const ::Ice::ObjectPrx&, const ::std::string&, ProxyHandle< ::IceProxy::Ice::Locator>&);
+ICE_API void uncheckedCast(const ::Ice::ObjectPrx&, const ::std::string&, ProxyHandle< ::IceProxy::Ice::Locator>&);
+
}
namespace Ice
{
typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Router> RouterPrx;
+typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Locator> LocatorPrx;
class LocalException;
class LocationForward;
@@ -90,6 +99,7 @@ public:
::Ice::ObjectPrx ice_compress(bool) const;
::Ice::ObjectPrx ice_timeout(int) const;
::Ice::ObjectPrx ice_router(const ::Ice::RouterPrx&) const;
+ ::Ice::ObjectPrx ice_locator(const ::Ice::LocatorPrx&) const;
::Ice::ObjectPrx ice_default() const;
void ice_flush(); // Flush batch messages
@@ -109,11 +119,12 @@ protected:
private:
- void setup(const ::IceInternal::ReferencePtr&);
+ void setup(const ::IceInternal::ReferencePtr&, const ::std::vector<int>&);
friend class ::IceInternal::ProxyFactory;
::IceInternal::ReferencePtr _reference;
::IceInternal::Handle< ::IceDelegate::Ice::Object> _delegate;
+ ::std::vector<int> _retryIntervals;
};
} }
diff --git a/cpp/slice/Ice/Locator.ice b/cpp/slice/Ice/Locator.ice
new file mode 100644
index 00000000000..61a943b8f4a
--- /dev/null
+++ b/cpp/slice/Ice/Locator.ice
@@ -0,0 +1,82 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_LOCATOR_ICE
+#define ICE_LOCATOR_ICE
+
+module Ice
+{
+
+interface LocatorRegistry;
+
+/**
+ *
+ * The &Ice; locator interface. This interface is used by clients to
+ * lookup adapters and by servers to get the locator registry.
+ *
+ * <note><para> The [Locator] interface is intended to be used by
+ * &Ice; internals and by locator implementations. Regular user code
+ * should not attempt to use any functionality of this interface
+ * directly.</para></note>
+ *
+ **/
+interface Locator
+{
+ /**
+ *
+ * Find an adapter by name and return the adapter proxy (a dummy
+ * direct proxy created with the adapter).
+ *
+ * @param name The adapter name.
+ *
+ * @return The adapter proxy or null if the adapter is not found.
+ *
+ **/
+ ["nonmutating"] Object* findAdapterByName(string name);
+
+ /**
+ *
+ * Get the locator registry.
+ *
+ * @return The locator registry.
+ *
+ **/
+ ["nonmutating"] LocatorRegistry* getRegistry();
+};
+
+/**
+ *
+ * The &Ice; locator registry interface. This interface is used by
+ * servers to register adapters with the locator.
+ *
+ * <note><para> The [LocatorRegistry] interface is intended to be used
+ * by &Ice; internals and by locator implementations. Regular user
+ * code should not attempt to use any functionality of this interface
+ * directly.</para></note>
+ *
+ **/
+interface LocatorRegistry
+{
+ /**
+ *
+ * Add the adapter and its endpoints to the locator registry.
+ *
+ * @param name The adapter name.
+ *
+ * @param proxy The adapter proxy (a dummy direct proxy created
+ * with the adapter).
+ *
+ */
+ void addAdapter(string name, Object* proxy);
+};
+
+};
+
+#endif
diff --git a/cpp/slice/Ice/LocatorF.ice b/cpp/slice/Ice/LocatorF.ice
new file mode 100644
index 00000000000..8902120dbfe
--- /dev/null
+++ b/cpp/slice/Ice/LocatorF.ice
@@ -0,0 +1,22 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_LOCATOR_F_ICE
+#define ICE_LOCATOR_F_ICE
+
+module Ice
+{
+
+interface Locator;
+interface LocatorRegistry;
+
+};
+
+#endif
diff --git a/cpp/slice/Ice/ObjectAdapter.ice b/cpp/slice/Ice/ObjectAdapter.ice
index 8861dd266c0..97ad3b2f372 100644
--- a/cpp/slice/Ice/ObjectAdapter.ice
+++ b/cpp/slice/Ice/ObjectAdapter.ice
@@ -14,6 +14,7 @@
#include <Ice/CommunicatorF.ice>
#include <Ice/ServantLocatorF.ice>
#include <Ice/RouterF.ice>
+#include <Ice/LocatorF.ice>
#include <Ice/Identity.ice>
module Ice
@@ -313,6 +314,26 @@ local interface ObjectAdapter
/**
*
+ * Create a "direct proxy" that matches this object adapter and
+ * the given identity. A direct proxy always contains the current
+ * adapter endpoints.
+ *
+ * <note><para> This operation is intended to be used by locator
+ * implementations. Regular user code should not attempt to use
+ * this operation.</para></note>
+ *
+ * @param identity The identity for which a proxy is to be created.
+ *
+ * @return A proxy that matches the given identity and this object
+ * adapter.
+ *
+ * @see Identity
+ *
+ **/
+ Object* createDirectProxy(Identity identity);
+
+ /**
+ *
* Create a "reverse proxy" that matches this object adapter and
* the given identity. A reverse proxy uses connections that have
* been established from a client to this object adapter.
@@ -353,6 +374,22 @@ local interface ObjectAdapter
*
**/
void addRouter(Router* router);
+
+ /**
+ * Set an &Ice; locator for this object adapter. By doing so, the
+ * object adapter will register itself with the locator registry
+ * when it's activated for the first time and the proxies created
+ * with the object adapter will contain the adapter name instead
+ * of its endpoints.
+ *
+ * @param locator The locator used by this object adapter.
+ *
+ * @see createDirectProxy
+ * @see Locator
+ * @see LocatorRegistry
+ *
+ **/
+ void setLocator(Locator* locator);
};
};
diff --git a/cpp/slice/Ice/Router.ice b/cpp/slice/Ice/Router.ice
index 95ef850d826..d08617fa175 100644
--- a/cpp/slice/Ice/Router.ice
+++ b/cpp/slice/Ice/Router.ice
@@ -20,9 +20,9 @@ module Ice
* [Communicator::setGlobalRouter], or with [ice_router] on specific
* proxies.
*
- * <note><para> The router interface is not intended to be used by
- * &Ice; internals and by router implementations. Regular user code
- * should not attempt to use any functionality of this interface
+ * <note><para> The router interface is intended to be used by &Ice;
+ * internals and by router implementations. Regular user code should
+ * not attempt to use any functionality of this interface
* directly.</para></note>
*
**/
diff --git a/cpp/slice/IcePack/Admin.ice b/cpp/slice/IcePack/Admin.ice
index 07c3adca84e..63407e66e77 100644
--- a/cpp/slice/IcePack/Admin.ice
+++ b/cpp/slice/IcePack/Admin.ice
@@ -11,8 +11,6 @@
#ifndef ICE_PACK_ADMIN_ICE
#define ICE_PACK_ADMIN_ICE
-#include <Ice/Identity.ice>
-
/**
*
* The &Ice; module for object location and activation.
@@ -23,54 +21,132 @@ module IcePack
/**
*
+ * This exception is raised if an adapter already exists.
+ *
+ **/
+exception AdapterExistsException
+{
+};
+
+/**
+ *
+ * This exception is raised if an adapter doesn't exist.
+ *
+ **/
+exception AdapterNotExistException
+{
+};
+
+/**
+ *
+ * A sequence of adapter names.
+ *
+ **/
+sequence<string> AdapterNames;
+
+/**
+ *
+ * This exception is raised if a server already exists.
+ *
+ **/
+exception ServerExistsException
+{
+};
+
+/**
+ *
+ * This exception is raised if a server doesn't exist.
+ *
+ **/
+exception ServerNotExistException
+{
+};
+
+/**
+ *
+ * This exception is raised if an operation on a server failed because
+ * the operation requires the server to be inactive.
+ *
+ **/
+exception ServerNotInactiveException
+{
+};
+
+/**
+ *
* A vector of strings representing command line arguments.
*
**/
sequence<string> Args;
+
/**
*
- * Data describing a server and one or more objects implemented by that
- * server.
+ * An enumeration representing the state of the server.
*
**/
+enum ServerState
+{
+ Inactive,
+ Activating,
+ Active,
+ Deactivating,
+ Destroyed
+};
+
struct ServerDescription
{
/**
*
+ * Server name.
* The server object or object template. Any non-administrative
* &IcePack; request that matches the identity of [obj] will be
* forwarded to [obj].
*
**/
- Object* obj;
+ string name;
/**
*
- * The optional server host name. If none is given, no automatic
- * activation will be performed.
- *
- * @see path
+ * The optional server adapter names. If a client makes a request
+ * to locate an adapter from the server, the server will be
+ * automatically started if it's not already active. If empty, no
+ * automatic activation of the server will be performed.
*
**/
- string host;
+ AdapterNames adapters;
/**
*
* The optional server path. If none is given, no automatic
- * activation will be performed.
+ * activation will be performed. This path can be an absolute or
+ * relative path (be aware of security risks if you use a relative
+ * path).
*
- * @see host
* @see args
+ * @see pwd
*
**/
string path;
/**
*
+ * The optional server working directory path. The current or
+ * working directory of the server will be changed to this path
+ * when the server is started.
+ *
+ * @see path
+ * @see args
+ *
+ **/
+ string pwd;
+
+ /**
+ *
* The optional server arguments.
*
* @see path
+ * @see pwd
*
**/
Args args;
@@ -78,12 +154,10 @@ struct ServerDescription
/**
*
- * A dictionary of server descriptions. The dictionary key is the &Ice;
- * Object identity, and the value is the corresponding server
- * description.
+ * A sequence of server names.
*
**/
-dictionary<Ice::Identity, ServerDescription> ServerDescriptions;
+sequence<string> ServerNames;
/**
*
@@ -96,56 +170,161 @@ class Admin
{
/**
*
- * All server descriptions.
+ * Add a server and the adapters implemented by that server to
+ * &IcePack;.
+ *
+ * @param description The server's description.
+ *
+ * @throws ServerExistsException Raised if a server with the same
+ * name already exists.
+ *
+ * @throws AdapterExistsException Raised if an adapter with the
+ * same name already exists.
+ *
+ * @see removeServer
*
**/
- ServerDescriptions _serverDescriptions;
+ void addServer(ServerDescription description)
+ throws ServerExistsException, AdapterExistsException;
/**
*
- * Add a server and objects implemented by that server to &IcePack;.
+ * Get a server description.
*
- * @param description The server's description.
+ * @param name Must match the name of [ServerDescription::name].
+ *
+ * @return The server description.
+ *
+ * @throws ServerNotExistException Raised if the server is not
+ * found.
+ *
+ * @see getServerState
+ * @see getAllServerNames
+ *
+ **/
+ ["nonmutating"] ServerDescription getServerDescription(string name)
+ throws ServerNotExistException;
+
+ /**
+ *
+ * Get a server state.
+ *
+ * @param name Must match the name of [ServerDescription::name].
+ *
+ * @return The server state.
+ *
+ * @throws ServerNotExistException Raised if the server is not
+ * found.
+ *
+ * @see getServerDescription
+ * @see getAllServerNames
+ *
+ **/
+ ["nonmutating"] ServerState getServerState(string name)
+ throws ServerNotExistException;
+
+ /**
+ *
+ * Start a server.
+ *
+ * @param name Must match the name of [ServerDescription::name].
+ *
+ * @return True if the server was successfully started, false
+ * otherwise.
+ *
+ * @throws ServerNotExistException Raised if the server is not
+ * found.
+ *
+ **/
+ bool startServer(string name)
+ throws ServerNotExistException;
+
+ /**
+ *
+ * Remove a server and the adapters implemented by that server
+ * from &IcePack;. The server needs to be inactive for this
+ * operation to succeed.
+ *
+ * @param name Must match the name of the
+ * [ServerDescription::name].
+ *
+ * @throws ServerNotExistException Raised if the server is not
+ * found.
+ *
+ * @throws SeverNotInactiveException Raised if the server is not
+ * in the inactive state.
+ *
+ * @see addServer
+ *
+ **/
+ void removeServer(string name)
+ throws ServerNotExistException, ServerNotInactiveException;
+
+ /**
+ *
+ * Get all the server names registered with &IcePack;.
+ *
+ * @return The server names.
+ *
+ * @see getServerDescription
+ * @see getServerState
+ *
+ **/
+ ["nonmutating"] ServerNames getAllServerNames();
+
+ /**
+ *
+ * Add an adapter with a list of endpoints to &IcePack;.
+ *
+ * @param name The adapter's name.
+ *
+ * @param endpoints The list of endpoints for the adapter.
+ *
+ * @throws AdapterExistsException Raised if an adapter with the
+ * same name already exists.
*
- * @see remove
+ * @see removeAdapter
*
**/
- void add(ServerDescription description);
+ void addAdapterWithEndpoints(string name, string endpoints)
+ throws AdapterExistsException;
/**
*
- * Remove a server and objects implemented by that server from &IcePack;.
+ * Remove an adapter from &IcePack;.
*
- * @param identity Must match the identity of the
- * [ServerDescription::object].
+ * @param name The adapter name.
*
- * @see add
+ * @throws AdapterNotExistException Raised if the adapter is not
+ * found.
*
**/
- void remove(Ice::Identity identity);
+ void removeAdapter(string name)
+ throws AdapterNotExistException;
/**
*
- * Find a server and objects implemented by that server from &IcePack;.
+ * Get the list of endpoints for an adapter.
*
- * @param identity Must match the identity of the
- * [ServerDescription::object].
+ * @param name The adapter name.
*
- * @return The server description, or null if no description was found.
+ * @return The stringified adapter endpoints.
*
- * @see add
+ * @throws AdapterNotExistException Raised if the adapter is not
+ * found.
*
**/
- ServerDescription find(Ice::Identity identity);
+ ["nonmutating"] string getAdapterEndpoints(string name)
+ throws AdapterNotExistException;
/**
*
- * Get all server descriptions in &IcePack;.
+ * Get all the adapter names registered with &IcePack;.
*
- * @return The descriptions of all servers.
+ * @return The adapter names.
*
**/
- ServerDescriptions getAll();
+ ["nonmutating"] AdapterNames getAllAdapterNames();
/**
*
diff --git a/cpp/src/Ice/.depend b/cpp/src/Ice/.depend
index a269e6483fa..c83ee6e9894 100644
--- a/cpp/src/Ice/.depend
+++ b/cpp/src/Ice/.depend
@@ -1,5 +1,5 @@
Initialize.o: Initialize.cpp ../Ice/CommunicatorI.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../Ice/ThreadPoolF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Communicator.h ../../include/Ice/LoggerF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../Ice/PropertiesI.h ../../include/Ice/Properties.h ../../include/Ice/LocalException.h
-Application.o: Application.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h
+Application.o: Application.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h
Exception.o: Exception.cpp ../../include/Ice/Exception.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/LocalException.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Identity.h ../Ice/Network.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/IdentityUtil.h ../../include/Ice/Plugin.h
LocalException.o: LocalException.cpp ../../include/Ice/LocalException.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Identity.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
Properties.o: Properties.cpp ../../include/Ice/Properties.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h
@@ -10,55 +10,57 @@ LoggerI.o: LoggerI.cpp ../Ice/LoggerI.h ../../include/IceUtil/Mutex.h ../../incl
SysLoggerI.o: SysLoggerI.cpp ../Ice/SysLoggerI.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/Logger.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h
Stream.o: Stream.cpp ../../include/Ice/Stream.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h
BuiltinSequences.o: BuiltinSequences.cpp ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h
-BasicStream.o: BasicStream.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Object.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../Ice/ProxyFactory.h ../../include/Ice/ObjectFactory.h ../Ice/ObjectFactoryManager.h ../../include/Ice/UserExceptionFactory.h ../Ice/UserExceptionFactoryManager.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h
+BasicStream.o: BasicStream.cpp ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Object.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../Ice/ProxyFactory.h ../../include/Ice/ObjectFactory.h ../Ice/ObjectFactoryManager.h ../../include/Ice/UserExceptionFactory.h ../Ice/UserExceptionFactoryManager.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h
DefaultsAndOverrides.o: DefaultsAndOverrides.cpp ../Ice/DefaultsAndOverrides.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/DefaultsAndOverridesF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../Ice/Network.h
TraceLevels.o: TraceLevels.cpp ../Ice/TraceLevels.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/TraceLevelsF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
-TraceUtil.o: TraceUtil.cpp ../Ice/TraceUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/TraceLevelsF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/InstanceF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Object.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../Ice/TraceLevels.h ../../include/Ice/Logger.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Protocol.h ../../include/Ice/IdentityUtil.h
-Instance.o: Instance.cpp ../Ice/Instance.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../Ice/DefaultsAndOverrides.h ../Ice/RouterInfo.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/RoutingTableF.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../Ice/ProxyFactory.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../Ice/EventHandlerF.h ../Ice/ConnectionFactory.h ../Ice/AcceptorF.h ../Ice/TransceiverF.h ../Ice/EventHandler.h ../Ice/ObjectFactoryManager.h ../Ice/UserExceptionFactoryManager.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../Ice/LoggerI.h ../../include/Ice/Logger.h ../Ice/Network.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/TcpEndpoint.h ../Ice/Endpoint.h ../Ice/ConnectorF.h ../../include/Ice/EndpointFactory.h ../Ice/UdpEndpoint.h ../Ice/PluginManagerI.h ../../include/Ice/Plugin.h ../../include/Ice/DynamicLibraryF.h ../../include/Ice/Initialize.h ../Ice/SysLoggerI.h
+TraceUtil.o: TraceUtil.cpp ../Ice/TraceUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/TraceLevelsF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/InstanceF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Object.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../Ice/TraceLevels.h ../../include/Ice/Logger.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Protocol.h ../../include/Ice/IdentityUtil.h
+Instance.o: Instance.cpp ../Ice/Instance.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../Ice/DefaultsAndOverrides.h ../Ice/RouterInfo.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/RoutingTableF.h ../Ice/LocatorInfo.h ../../include/Ice/LocatorF.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../Ice/ProxyFactory.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../Ice/EventHandlerF.h ../Ice/ConnectionFactory.h ../Ice/AcceptorF.h ../Ice/TransceiverF.h ../Ice/EventHandler.h ../Ice/ObjectFactoryManager.h ../Ice/UserExceptionFactoryManager.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalException.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../Ice/LoggerI.h ../../include/Ice/Logger.h ../Ice/Network.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/TcpEndpoint.h ../Ice/Endpoint.h ../Ice/ConnectorF.h ../../include/Ice/EndpointFactory.h ../Ice/UdpEndpoint.h ../Ice/PluginManagerI.h ../../include/Ice/Plugin.h ../../include/Ice/DynamicLibraryF.h ../../include/Ice/Communicator.h ../../include/Ice/Initialize.h ../Ice/SysLoggerI.h
Communicator.o: Communicator.cpp ../../include/Ice/Communicator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LoggerF.h ../../include/Ice/PropertiesF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
-CommunicatorI.o: CommunicatorI.cpp ../Ice/CommunicatorI.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../Ice/ThreadPoolF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Communicator.h ../../include/Ice/LoggerF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../Ice/Instance.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/Properties.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../Ice/ProxyFactory.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../Ice/EventHandlerF.h ../Ice/ObjectFactoryManager.h ../Ice/UserExceptionFactoryManager.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LocalException.h
+CommunicatorI.o: CommunicatorI.cpp ../Ice/CommunicatorI.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../Ice/ThreadPoolF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Communicator.h ../../include/Ice/LoggerF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../Ice/Instance.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/Properties.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../../include/Ice/LocatorF.h ../Ice/ProxyFactory.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../Ice/EventHandlerF.h ../Ice/ObjectFactoryManager.h ../Ice/UserExceptionFactoryManager.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LocalException.h ../Ice/DefaultsAndOverrides.h
ObjectFactory.o: ObjectFactory.cpp ../../include/Ice/ObjectFactory.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
ObjectFactoryManager.o: ObjectFactoryManager.cpp ../Ice/ObjectFactoryManager.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/ObjectFactoryManagerF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
-ObjectAdapter.o: ObjectAdapter.cpp ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
-ObjectAdapterI.o: ObjectAdapterI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../Ice/ObjectAdapterI.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../../include/Ice/ServantLocator.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/ProxyFactory.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/ConnectionFactory.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/LoggerUtil.h
-ObjectAdapterFactory.o: ObjectAdapterFactory.cpp ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../../include/IceUtil/RecMutex.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../Ice/Instance.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
+ObjectAdapter.o: ObjectAdapter.cpp ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+ObjectAdapterI.o: ObjectAdapterI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../Ice/ObjectAdapterI.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/LocatorInfoF.h ../../include/Ice/ServantLocator.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/ProxyFactory.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/ConnectionFactory.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../Ice/LocatorInfo.h ../../include/Ice/Locator.h ../../include/Ice/LoggerUtil.h
+ObjectAdapterFactory.o: ObjectAdapterFactory.cpp ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/LocatorInfoF.h ../../include/IceUtil/RecMutex.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../Ice/Instance.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
ServantLocator.o: ServantLocator.cpp ../../include/Ice/ServantLocator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
UserExceptionFactory.o: UserExceptionFactory.cpp ../../include/Ice/UserExceptionFactory.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h
UserExceptionFactoryManager.o: UserExceptionFactoryManager.cpp ../Ice/UserExceptionFactoryManager.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
Endpoint.o: Endpoint.cpp ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h
EndpointFactory.o: EndpointFactory.cpp ../../include/Ice/EndpointFactory.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/EndpointFactoryF.h
-EndpointFactoryManager.o: EndpointFactoryManager.cpp ../Ice/EndpointFactoryManager.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/EndpointFactoryF.h ../Ice/EndpointFactoryManagerF.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/UnknownEndpoint.h ../../include/Ice/EndpointFactory.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
-TcpEndpoint.o: TcpEndpoint.cpp ../Ice/TcpEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../Ice/Network.h ../Ice/TcpAcceptor.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Acceptor.h ../Ice/TcpConnector.h ../Ice/Connector.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
-UdpEndpoint.o: UdpEndpoint.cpp ../Ice/UdpEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../Ice/Network.h ../Ice/UdpTransceiver.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
-UnknownEndpoint.o: UnknownEndpoint.cpp ../Ice/UnknownEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
-Reference.o: Reference.cpp ../Ice/Reference.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ReferenceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../Ice/ReferenceFactoryF.h ../../include/Ice/EndpointF.h ../../include/Ice/InstanceF.h ../../include/Ice/RouterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactory.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/IdentityUtil.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Router.h
-ReferenceFactory.o: ReferenceFactory.cpp ../Ice/ReferenceFactory.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/ReferenceFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../Ice/Reference.h ../../include/Ice/ReferenceF.h ../../include/Ice/EndpointF.h ../../include/Ice/InstanceF.h ../../include/Ice/RouterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/RouterInfoF.h ../Ice/ProxyFactory.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/IdentityUtil.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h
+EndpointFactoryManager.o: EndpointFactoryManager.cpp ../Ice/EndpointFactoryManager.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/EndpointFactoryF.h ../Ice/EndpointFactoryManagerF.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/UnknownEndpoint.h ../../include/Ice/EndpointFactory.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
+TcpEndpoint.o: TcpEndpoint.cpp ../Ice/TcpEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../Ice/Network.h ../Ice/TcpAcceptor.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Acceptor.h ../Ice/TcpConnector.h ../Ice/Connector.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
+UdpEndpoint.o: UdpEndpoint.cpp ../Ice/UdpEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../Ice/Network.h ../Ice/UdpTransceiver.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/DefaultsAndOverrides.h
+UnknownEndpoint.o: UnknownEndpoint.cpp ../Ice/UnknownEndpoint.h ../Ice/Endpoint.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/EndpointF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/EndpointFactory.h ../../include/Ice/EndpointFactoryF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
+Reference.o: Reference.cpp ../Ice/Reference.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ReferenceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../Ice/ReferenceFactoryF.h ../../include/Ice/EndpointF.h ../../include/Ice/InstanceF.h ../../include/Ice/RouterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocatorF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactory.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/IdentityUtil.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Router.h ../Ice/LocatorInfo.h ../../include/Ice/Locator.h
+ReferenceFactory.o: ReferenceFactory.cpp ../Ice/ReferenceFactory.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/ReferenceFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../Ice/Reference.h ../../include/Ice/ReferenceF.h ../../include/Ice/EndpointF.h ../../include/Ice/InstanceF.h ../../include/Ice/RouterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocatorF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ProxyFactory.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/IdentityUtil.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointFactoryF.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../Ice/LocatorInfo.h
Identity.o: Identity.cpp ../../include/Ice/Identity.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
IdentityUtil.o: IdentityUtil.cpp ../../include/Ice/IdentityUtil.h ../../include/Ice/Identity.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h
Current.o: Current.cpp ../../include/Ice/Current.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Identity.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
Router.o: Router.cpp ../../include/Ice/Router.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
RouterInfo.o: RouterInfo.cpp ../Ice/RouterInfo.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/RouterInfoF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/RouterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Router.h ../../include/Ice/RoutingTable.h ../../include/Ice/LocalException.h
RoutingTable.o: RoutingTable.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h
-Connection.o: Connection.cpp ../Ice/Connection.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/Ice/ConnectionF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ConnectionFactoryF.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointF.h ../Ice/ThreadPoolF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../Ice/TraceUtil.h ../Ice/DefaultsAndOverrides.h ../Ice/Transceiver.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/RouterF.h ../Ice/Endpoint.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/LocalException.h ../Ice/Protocol.h
-ConnectionFactory.o: ConnectionFactory.cpp ../Ice/ConnectionFactory.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/Ice/ConnectionFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ConnectionF.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointF.h ../Ice/AcceptorF.h ../Ice/TransceiverF.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/ThreadPoolF.h ../Ice/Connection.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/Instance.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../Ice/TraceLevels.h ../Ice/DefaultsAndOverrides.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../Ice/Transceiver.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Acceptor.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../../include/Ice/ObjectAdapter.h ../Ice/Reference.h ../Ice/Endpoint.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/LocalException.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
+Connection.o: Connection.cpp ../Ice/Connection.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/Ice/ConnectionF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ConnectionFactoryF.h ../../include/Ice/InstanceF.h ../Ice/TransceiverF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointF.h ../Ice/ThreadPoolF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../Ice/TraceUtil.h ../Ice/DefaultsAndOverrides.h ../Ice/Transceiver.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../Ice/Endpoint.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../../include/Ice/LocalException.h ../Ice/Protocol.h
+ConnectionFactory.o: ConnectionFactory.cpp ../Ice/ConnectionFactory.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Lock.h ../../include/Ice/ConnectionFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ConnectionF.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointF.h ../Ice/AcceptorF.h ../Ice/TransceiverF.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/ThreadPoolF.h ../Ice/Connection.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/Instance.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../Ice/TraceLevels.h ../Ice/DefaultsAndOverrides.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../Ice/Transceiver.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Acceptor.h ../Ice/ThreadPool.h ../../include/IceUtil/Thread.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../Ice/Reference.h ../Ice/Endpoint.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/LocalException.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
LocalObject.o: LocalObject.cpp ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/StreamF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h
Object.o: Object.cpp ../../include/Ice/Object.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/StreamF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/InstanceF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
-ProxyFactory.o: ProxyFactory.cpp ../Ice/ProxyFactory.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../../include/Ice/ReferenceF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../../include/Ice/RouterF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h
-Proxy.o: Proxy.cpp ../../include/Ice/Proxy.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Handle.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../Ice/ProxyFactory.h ../../include/Ice/InstanceF.h ../../include/Ice/Object.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../../include/IceUtil/RecMutex.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../Ice/RouterInfoF.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Instance.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../Ice/TraceLevels.h ../Ice/ConnectionFactory.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/Connection.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../../include/Ice/LocalException.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
-Outgoing.o: Outgoing.cpp ../../include/Ice/Outgoing.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/ConnectionF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ReferenceF.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../Ice/Connection.h ../../include/IceUtil/RecMutex.h ../../include/Ice/ConnectionFactoryF.h ../Ice/TransceiverF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/EndpointF.h ../Ice/ThreadPoolF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/RouterInfoF.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
-Incoming.o: Incoming.cpp ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/InstanceF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/ServantLocator.h ../../include/Ice/LocalException.h
-Direct.o: Direct.cpp ../../include/Ice/Direct.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/ServantLocator.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../Ice/RouterInfoF.h ../../include/Ice/LocalException.h
+ProxyFactory.o: ProxyFactory.cpp ../Ice/ProxyFactory.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../../include/Ice/ReferenceF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../Ice/ReferenceFactory.h ../Ice/Reference.h ../../include/Ice/RouterF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocatorF.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h
+Proxy.o: Proxy.cpp ../../include/IceUtil/Thread.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Config.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Handle.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../Ice/ProxyFactory.h ../../include/Ice/InstanceF.h ../../include/Ice/Object.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/ObjectAdapterFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/LocatorInfoF.h ../../include/IceUtil/RecMutex.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../Ice/RouterInfoF.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Instance.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/ThreadPoolF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../Ice/TraceLevels.h ../Ice/ConnectionFactory.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/Connection.h ../Ice/RouterInfo.h ../../include/Ice/RoutingTableF.h ../Ice/LocatorInfo.h ../../include/Ice/LocalException.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h
+Outgoing.o: Outgoing.cpp ../../include/Ice/Outgoing.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/ConnectionF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ReferenceF.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../Ice/Connection.h ../../include/IceUtil/RecMutex.h ../../include/Ice/ConnectionFactoryF.h ../Ice/TransceiverF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/EndpointF.h ../Ice/ThreadPoolF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/EventHandler.h ../Ice/EventHandlerF.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocatorF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
+Incoming.o: Incoming.cpp ../../include/Ice/Incoming.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/InstanceF.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/LocalException.h
+Direct.o: Direct.cpp ../../include/Ice/Direct.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/CommunicatorF.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../Ice/Reference.h ../Ice/ReferenceFactoryF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../../include/Ice/LocalException.h
Network.o: Network.cpp ../../include/IceUtil/Mutex.h ../../include/IceUtil/Config.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/Network.h ../../include/Ice/Config.h ../../include/Ice/LocalException.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Identity.h
-ThreadPool.o: ThreadPool.cpp ../Ice/ThreadPool.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Handle.h ../Ice/ThreadPoolF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../Ice/EventHandlerF.h ../Ice/EventHandler.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../Ice/Protocol.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/RouterF.h
-EventHandler.o: EventHandler.cpp ../Ice/EventHandler.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/EventHandlerF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/ThreadPoolF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
+ThreadPool.o: ThreadPool.cpp ../Ice/ThreadPool.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/IceUtil/Thread.h ../../include/IceUtil/Handle.h ../Ice/ThreadPoolF.h ../../include/Ice/Handle.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../Ice/EventHandlerF.h ../Ice/EventHandler.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/Properties.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../Ice/Protocol.h ../Ice/ObjectAdapterFactory.h ../Ice/ObjectAdapterI.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/RouterF.h ../../include/Ice/LocatorF.h
+EventHandler.o: EventHandler.cpp ../Ice/EventHandler.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/EventHandlerF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/ThreadPoolF.h ../../include/Ice/BasicStream.h ../../include/Ice/ObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h
Connector.o: Connector.cpp ../Ice/Connector.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/ConnectorF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../Ice/TransceiverF.h
Acceptor.o: Acceptor.cpp ../Ice/Acceptor.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/AcceptorF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../Ice/TransceiverF.h
Transceiver.o: Transceiver.cpp ../Ice/Transceiver.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../Ice/TransceiverF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h
-TcpConnector.o: TcpConnector.cpp ../Ice/TcpConnector.h ../Ice/TransceiverF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../Ice/Network.h
-TcpAcceptor.o: TcpAcceptor.cpp ../Ice/TcpAcceptor.h ../Ice/TransceiverF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../Ice/Network.h
-TcpTransceiver.o: TcpTransceiver.cpp ../Ice/TcpTransceiver.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Buffer.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h
-UdpTransceiver.o: UdpTransceiver.cpp ../Ice/UdpTransceiver.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Buffer.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h
+TcpConnector.o: TcpConnector.cpp ../Ice/TcpConnector.h ../Ice/TransceiverF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../Ice/Network.h
+TcpAcceptor.o: TcpAcceptor.cpp ../Ice/TcpAcceptor.h ../Ice/TransceiverF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/InstanceF.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/TcpTransceiver.h ../Ice/Transceiver.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../Ice/Network.h
+TcpTransceiver.o: TcpTransceiver.cpp ../Ice/TcpTransceiver.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Buffer.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h
+UdpTransceiver.o: UdpTransceiver.cpp ../Ice/UdpTransceiver.h ../../include/Ice/InstanceF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../Ice/TraceLevelsF.h ../../include/Ice/LoggerF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Buffer.h ../Ice/Network.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h
DynamicLibrary.o: DynamicLibrary.cpp ../../include/Ice/DynamicLibrary.h ../../include/Ice/DynamicLibraryF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/IceUtil/Shared.h
Plugin.o: Plugin.cpp ../../include/Ice/Plugin.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Stream.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/BuiltinSequences.h
-PluginManagerI.o: PluginManagerI.cpp ../Ice/PluginManagerI.h ../../include/Ice/Plugin.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/InstanceF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/DynamicLibraryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/DynamicLibrary.h ../../include/Ice/Properties.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Initialize.h
-ProtocolPluginFacade.o: ProtocolPluginFacade.cpp ../../include/Ice/ProtocolPluginFacade.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ProtocolPluginFacadeF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointFactoryF.h ../../include/Ice/InstanceF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointF.h ../Ice/TraceLevels.h ../../include/Ice/Initialize.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/DefaultsAndOverrides.h
+PluginManagerI.o: PluginManagerI.cpp ../Ice/PluginManagerI.h ../../include/Ice/Plugin.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/InstanceF.h ../../include/Ice/CommunicatorF.h ../../include/Ice/DynamicLibraryF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/DynamicLibrary.h ../../include/Ice/Properties.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../../include/Ice/LoggerUtil.h ../../include/Ice/Initialize.h
+ProtocolPluginFacade.o: ProtocolPluginFacade.cpp ../../include/Ice/ProtocolPluginFacade.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/Ice/ProtocolPluginFacadeF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/EndpointFactoryF.h ../../include/Ice/InstanceF.h ../Ice/Instance.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/RecMutex.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/LocatorInfoF.h ../Ice/ReferenceFactoryF.h ../../include/Ice/ProxyFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/EndpointFactoryManager.h ../../include/Ice/EndpointF.h ../Ice/TraceLevels.h ../../include/Ice/Initialize.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/Ice/ConnectionF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../Ice/DefaultsAndOverrides.h
+Locator.o: Locator.cpp ../../include/Ice/Locator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+LocatorInfo.o: LocatorInfo.cpp ../Ice/LocatorInfo.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../Ice/LocatorInfoF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/LocatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Locator.h ../../include/Ice/LocalException.h ../Ice/Instance.h ../../include/IceUtil/RecMutex.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LoggerF.h ../Ice/TraceLevelsF.h ../Ice/DefaultsAndOverridesF.h ../Ice/RouterInfoF.h ../Ice/ReferenceFactoryF.h ../Ice/ThreadPoolF.h ../../include/Ice/ConnectionFactoryF.h ../Ice/ObjectFactoryManagerF.h ../Ice/UserExceptionFactoryManagerF.h ../../include/Ice/ObjectAdapterFactoryF.h ../Ice/EndpointFactoryManagerF.h ../../include/Ice/PluginF.h ../Ice/TraceLevels.h ../../include/Ice/LoggerUtil.h ../Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Reference.h ../../include/Ice/RouterF.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../../include/Ice/IdentityUtil.h
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp
index 03777f69253..abaa3c614c2 100644
--- a/cpp/src/Ice/CommunicatorI.cpp
+++ b/cpp/src/Ice/CommunicatorI.cpp
@@ -19,6 +19,7 @@
#include <Ice/ObjectAdapterFactory.h>
#include <Ice/LoggerUtil.h>
#include <Ice/LocalException.h>
+#include <Ice/DefaultsAndOverrides.h>
using namespace std;
using namespace Ice;
@@ -34,6 +35,7 @@ Ice::CommunicatorI::destroy()
_instance->objectAdapterFactory()->shutdown();
_instance->destroy();
_instance = 0;
+
}
}
@@ -92,18 +94,19 @@ Ice::CommunicatorI::createObjectAdapter(const string& name)
{
throw CommunicatorDestroyedException(__FILE__, __LINE__);
}
-
+
ObjectAdapterPtr adapter = createObjectAdapterFromProperty(name, "Ice.Adapter." + name + ".Endpoints");
-
+
string router = _instance->properties()->getProperty("Ice.Adapter." + name + ".Router");
if(!router.empty())
{
adapter->addRouter(RouterPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(router)));
}
- if(!_serverThreadPool) // Lazy initialization of _serverThreadPool.
+ string locator = _instance->properties()->getProperty("Ice.Adapter." + name + ".Locator");
+ if(!locator.empty())
{
- _serverThreadPool = _instance->serverThreadPool();
+ adapter->setLocator(LocatorPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(locator)));
}
return adapter;
@@ -131,9 +134,15 @@ Ice::CommunicatorI::createObjectAdapterWithEndpoints(const string& name, const s
{
throw CommunicatorDestroyedException(__FILE__, __LINE__);
}
-
+
ObjectAdapterPtr adapter = _instance->objectAdapterFactory()->createObjectAdapter(name, endpts);
+ string locator = _instance->defaultsAndOverrides()->defaultLocator;
+ if(!locator.empty())
+ {
+ adapter->setLocator(LocatorPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(locator)));
+ }
+
if(!_serverThreadPool) // Lazy initialization of _serverThreadPool.
{
_serverThreadPool = _instance->serverThreadPool();
diff --git a/cpp/src/Ice/DefaultsAndOverrides.cpp b/cpp/src/Ice/DefaultsAndOverrides.cpp
index f04d9f2cb87..31f3972ea6f 100644
--- a/cpp/src/Ice/DefaultsAndOverrides.cpp
+++ b/cpp/src/Ice/DefaultsAndOverrides.cpp
@@ -50,4 +50,6 @@ IceInternal::DefaultsAndOverrides::DefaultsAndOverrides(const PropertiesPtr& pro
const_cast<bool&>(overrideComppress) = true;
const_cast<bool&>(overrideComppressValue) = atoi(value.c_str());
}
+
+ const_cast<string&>(defaultLocator) = properties->getProperty("Ice.Default.Locator");
}
diff --git a/cpp/src/Ice/DefaultsAndOverrides.h b/cpp/src/Ice/DefaultsAndOverrides.h
index 38e39c8e2a0..6376a27a978 100644
--- a/cpp/src/Ice/DefaultsAndOverrides.h
+++ b/cpp/src/Ice/DefaultsAndOverrides.h
@@ -27,6 +27,7 @@ public:
std::string defaultHost;
std::string defaultProtocol;
std::string defaultRouter;
+ std::string defaultLocator;
bool overrideTimeout;
Ice::Int overrideTimeoutValue;
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index 62bc82a4486..fd3e2a06c1c 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -12,6 +12,7 @@
#include <Ice/TraceLevels.h>
#include <Ice/DefaultsAndOverrides.h>
#include <Ice/RouterInfo.h>
+#include <Ice/LocatorInfo.h>
#include <Ice/ReferenceFactory.h>
#include <Ice/ProxyFactory.h>
#include <Ice/ThreadPool.h>
@@ -28,6 +29,7 @@
#include <Ice/TcpEndpoint.h>
#include <Ice/UdpEndpoint.h>
#include <Ice/PluginManagerI.h>
+#include <Ice/Communicator.h>
#include <Ice/Initialize.h>
#ifndef _WIN32
@@ -121,6 +123,13 @@ IceInternal::Instance::routerManager()
return _routerManager;
}
+LocatorManagerPtr
+IceInternal::Instance::locatorManager()
+{
+ IceUtil::RecMutex::Lock sync(*this);
+ return _locatorManager;
+}
+
ReferenceFactoryPtr
IceInternal::Instance::referenceFactory()
{
@@ -308,6 +317,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, int& argc,
_routerManager = new RouterManager;
+ _locatorManager = new LocatorManager;
+
_referenceFactory = new ReferenceFactory(this);
_proxyFactory = new ProxyFactory(this);
@@ -320,12 +331,6 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, int& argc,
_pluginManager = new PluginManagerI(this);
- if(!_defaultsAndOverrides->defaultRouter.empty())
- {
- _referenceFactory->setDefaultRouter(
- RouterPrx::uncheckedCast(_proxyFactory->stringToProxy(_defaultsAndOverrides->defaultRouter)));
- }
-
_outgoingConnectionFactory = new OutgoingConnectionFactory(this);
_servantFactoryManager = new ObjectFactoryManager();
@@ -357,6 +362,7 @@ IceInternal::Instance::~Instance()
assert(!_clientThreadPool);
assert(!_serverThreadPool);
assert(!_routerManager);
+ assert(!_locatorManager);
assert(!_endpointFactoryManager);
assert(!_pluginManager);
@@ -405,6 +411,23 @@ IceInternal::Instance::finishSetup(int& argc, char* argv[])
assert(pluginManagerImpl);
pluginManagerImpl->loadPlugins(argc, argv);
+ //
+ // 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.
+ //
+ if(!_defaultsAndOverrides->defaultRouter.empty())
+ {
+ _referenceFactory->setDefaultRouter(
+ RouterPrx::uncheckedCast(_proxyFactory->stringToProxy(_defaultsAndOverrides->defaultRouter)));
+ }
+
+ if(!_defaultsAndOverrides->defaultLocator.empty())
+ {
+ _referenceFactory->setDefaultLocator(
+ LocatorPrx::uncheckedCast(_proxyFactory->stringToProxy(_defaultsAndOverrides->defaultLocator)));
+ }
+
#ifndef _WIN32
//
// daemon() must be called after any plug-ins have been
@@ -520,12 +543,18 @@ IceInternal::Instance::destroy()
_routerManager = 0;
}
+ if(_locatorManager)
+ {
+ _locatorManager->destroy();
+ _locatorManager = 0;
+ }
+
if(_endpointFactoryManager)
{
_endpointFactoryManager->destroy();
_endpointFactoryManager = 0;
}
-
+
//
// We destroy the thread pool outside the thread
// synchronization.
diff --git a/cpp/src/Ice/Instance.h b/cpp/src/Ice/Instance.h
index 7cc4ec3ff0b..ed858f50b59 100644
--- a/cpp/src/Ice/Instance.h
+++ b/cpp/src/Ice/Instance.h
@@ -21,6 +21,7 @@
#include <Ice/TraceLevelsF.h>
#include <Ice/DefaultsAndOverridesF.h>
#include <Ice/RouterInfoF.h>
+#include <Ice/LocatorInfoF.h>
#include <Ice/ReferenceFactoryF.h>
#include <Ice/ProxyFactoryF.h>
#include <Ice/ThreadPoolF.h>
@@ -53,6 +54,7 @@ public:
TraceLevelsPtr traceLevels();
DefaultsAndOverridesPtr defaultsAndOverrides();
RouterManagerPtr routerManager();
+ LocatorManagerPtr locatorManager();
ReferenceFactoryPtr referenceFactory();
ProxyFactoryPtr proxyFactory();
OutgoingConnectionFactoryPtr outgoingConnectionFactory();
@@ -78,6 +80,7 @@ private:
TraceLevelsPtr _traceLevels; // Immutable, not reset by destroy().
DefaultsAndOverridesPtr _defaultsAndOverrides; // Immutable, not reset by destroy().
RouterManagerPtr _routerManager;
+ LocatorManagerPtr _locatorManager;
ReferenceFactoryPtr _referenceFactory;
ProxyFactoryPtr _proxyFactory;
OutgoingConnectionFactoryPtr _outgoingConnectionFactory;
diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp
new file mode 100644
index 00000000000..c302835d88d
--- /dev/null
+++ b/cpp/src/Ice/LocatorInfo.cpp
@@ -0,0 +1,283 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/LocatorInfo.h>
+#include <Ice/Locator.h>
+#include <Ice/LocalException.h>
+#include <Ice/Instance.h>
+#include <Ice/TraceLevels.h>
+#include <Ice/LoggerUtil.h>
+#include <Ice/Endpoint.h>
+#include <Ice/Reference.h>
+#include <Ice/Functional.h>
+#include <Ice/IdentityUtil.h>
+
+#include <iterator>
+
+using namespace std;
+using namespace Ice;
+using namespace IceInternal;
+
+void IceInternal::incRef(LocatorManager* p) { p->__incRef(); }
+void IceInternal::decRef(LocatorManager* p) { p->__decRef(); }
+
+void IceInternal::incRef(LocatorInfo* p) { p->__incRef(); }
+void IceInternal::decRef(LocatorInfo* p) { p->__decRef(); }
+
+void IceInternal::incRef(LocatorAdapterTable* p) { p->__incRef(); }
+void IceInternal::decRef(LocatorAdapterTable* p) { p->__decRef(); }
+
+IceInternal::LocatorManager::LocatorManager() :
+ _tableHint(_table.end())
+{
+}
+
+void
+IceInternal::LocatorManager::destroy()
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ _table.clear();
+ _tableHint = _table.end();
+
+ _adapterTables.clear();
+}
+
+LocatorInfoPtr
+IceInternal::LocatorManager::get(const LocatorPrx& locator)
+{
+ if (!locator)
+ {
+ return 0;
+ }
+
+ //
+ // TODO: reap un-used locator info objects?
+ //
+
+ IceUtil::Mutex::Lock sync(*this);
+
+ map<LocatorPrx, LocatorInfoPtr>::iterator p = _table.end();
+
+ if (_tableHint != _table.end())
+ {
+ if (_tableHint->first == locator)
+ {
+ p = _tableHint;
+ }
+ }
+
+ if (p == _table.end())
+ {
+ p = _table.find(locator);
+ }
+
+ if (p == _table.end())
+ {
+ //
+ // Rely on locator identity for the adapter table. We want to
+ // have only one table per locator (not one per locator
+ // proxy).
+ //
+ map<Identity, LocatorAdapterTablePtr>::iterator t = _adapterTables.find(locator->ice_getIdentity());
+ if(t == _adapterTables.end())
+ {
+ t = _adapterTables.insert(_adapterTables.begin(),
+ make_pair(locator->ice_getIdentity(), new LocatorAdapterTable()));
+ }
+
+ _tableHint = _table.insert(_tableHint, make_pair(locator, new LocatorInfo(locator, t->second)));
+ }
+ else
+ {
+ _tableHint = p;
+ }
+
+ return _tableHint->second;
+}
+
+IceInternal::LocatorAdapterTable::LocatorAdapterTable()
+{
+}
+
+bool
+IceInternal::LocatorAdapterTable::get(const string& adapter, ::std::vector<EndpointPtr>& endpoints) const
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ std::map<std::string, std::vector<EndpointPtr> >::const_iterator p = _adapterEndpointsMap.find(adapter);
+
+ if (p != _adapterEndpointsMap.end())
+ {
+ endpoints = p->second;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+void
+IceInternal::LocatorAdapterTable::add(const string& adapter, const ::std::vector<EndpointPtr>& endpoints)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ _adapterEndpointsMap.insert(make_pair(adapter, endpoints));
+}
+
+void
+IceInternal::LocatorAdapterTable::remove(const string& adapter)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ bool removed = _adapterEndpointsMap.erase(adapter) > 0;
+ assert(removed);
+}
+
+
+IceInternal::LocatorInfo::LocatorInfo(const LocatorPrx& locator, const LocatorAdapterTablePtr& adapterTable) :
+ _locator(locator),
+ _adapterTable(adapterTable)
+{
+ assert(_locator);
+ assert(_adapterTable);
+}
+
+bool
+IceInternal::LocatorInfo::operator==(const LocatorInfo& rhs) const
+{
+ return _locator == rhs._locator;
+}
+
+bool
+IceInternal::LocatorInfo::operator!=(const LocatorInfo& rhs) const
+{
+ return _locator != rhs._locator;
+}
+
+bool
+IceInternal::LocatorInfo::operator<(const LocatorInfo& rhs) const
+{
+ return _locator < rhs._locator;
+}
+
+LocatorPrx
+IceInternal::LocatorInfo::getLocator()
+{
+ //
+ // No mutex lock necessary, _locator is immutable.
+ //
+ return _locator;
+}
+
+LocatorRegistryPrx
+IceInternal::LocatorInfo::getLocatorRegistry()
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ if (!_locatorRegistry) // Lazy initialization.
+ {
+ _locatorRegistry = _locator->getRegistry();
+ }
+
+ return _locatorRegistry;
+}
+
+bool
+IceInternal::LocatorInfo::getEndpoints(const ReferencePtr& ref, ::std::vector<EndpointPtr>& endpoints) const
+{
+ bool cached = false;
+
+ if(!ref->adapterId.empty())
+ {
+ if(!_adapterTable->get(ref->adapterId, endpoints))
+ {
+ //
+ // Search the adapter in the location service if we didn't
+ // find it in the cache.
+ //
+ try
+ {
+ ObjectPrx object = _locator->findAdapterByName(ref->adapterId);
+ if (object)
+ {
+ endpoints = object->__reference()->endpoints;
+ }
+ }
+ catch(LocalException&)
+ {
+ //
+ // Ignore. The proxy will most likely get empty
+ // endpoints and raise a NoEndpointException().
+ //
+ }
+ }
+ else
+ {
+ cached = true;
+ }
+
+ if(endpoints.size() > 0)
+ {
+ if (ref->instance->traceLevels()->location >= 1)
+ {
+ Trace out(ref->instance->logger(), ref->instance->traceLevels()->locationCat);
+ if(cached)
+ out << "found object in local locator table\n";
+ else
+ out << "found object in locator\n";
+ out << "identity = " << identityToString(ref->identity) << "\n";
+ out << "adapter = " << ref->adapterId << "\n";
+ const char* sep = endpoints.size() > 1 ? ":" : "";
+ ostringstream o;
+ transform(endpoints.begin(), endpoints.end(), ostream_iterator<string>(o,sep),
+ ::Ice::constMemFun(&Endpoint::toString));
+ out << "endpoints = " << o.str();
+ }
+ }
+ }
+
+ return cached;
+}
+
+void
+IceInternal::LocatorInfo::addEndpoints(const ReferencePtr& ref, const ::std::vector<EndpointPtr>& endpoints)
+{
+ assert(!endpoints.empty());
+
+ if (!ref->adapterId.empty())
+ {
+ _adapterTable->add(ref->adapterId, endpoints);
+
+ if (ref->instance->traceLevels()->location >= 2)
+ {
+ Trace out(ref->instance->logger(), ref->instance->traceLevels()->locationCat);
+ out << "added adapter to local locator table\n";
+ out << "adapter = " << ref->adapterId;
+ }
+ }
+}
+
+void
+IceInternal::LocatorInfo::removeEndpoints(const ReferencePtr& ref)
+{
+ if (!ref->adapterId.empty())
+ {
+ _adapterTable->remove(ref->adapterId);
+
+ if (ref->instance->traceLevels()->location >= 2)
+ {
+ Trace out(ref->instance->logger(), ref->instance->traceLevels()->locationCat);
+ out << "removed adapter from local locator table\n";
+ out << "adapter = " << ref->adapterId;
+ }
+ }
+}
diff --git a/cpp/src/Ice/LocatorInfo.h b/cpp/src/Ice/LocatorInfo.h
new file mode 100644
index 00000000000..9bee858982f
--- /dev/null
+++ b/cpp/src/Ice/LocatorInfo.h
@@ -0,0 +1,86 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_LOCATOR_INFO_H
+#define ICE_LOCATOR_INFO_H
+
+#include <IceUtil/Shared.h>
+#include <IceUtil/Mutex.h>
+#include <Ice/LocatorInfoF.h>
+#include <Ice/LocatorF.h>
+#include <Ice/ProxyF.h>
+#include <Ice/EndpointF.h>
+
+namespace IceInternal
+{
+
+class LocatorManager : public ::IceUtil::Shared, public ::IceUtil::Mutex
+{
+public:
+
+ LocatorManager();
+
+ void destroy();
+
+ //
+ // Returns locator info for a given locator. Automatically creates
+ // the locator info if it doesn't exist yet.
+ //
+ LocatorInfoPtr get(const ::Ice::LocatorPrx&);
+
+private:
+
+ std::map< ::Ice::LocatorPrx, LocatorInfoPtr> _table;
+ std::map< ::Ice::LocatorPrx, LocatorInfoPtr>::iterator _tableHint;
+
+ std::map< ::Ice::Identity, LocatorAdapterTablePtr> _adapterTables;
+};
+
+class LocatorAdapterTable : public ::IceUtil::Shared, public ::IceUtil::Mutex
+{
+public:
+ LocatorAdapterTable();
+
+ bool get(const std::string&, ::std::vector<EndpointPtr>&) const;
+ void add(const std::string&, const ::std::vector<EndpointPtr>&);
+ void remove(const std::string&);
+
+private:
+
+ std::map<std::string, std::vector<EndpointPtr> > _adapterEndpointsMap;
+};
+
+class LocatorInfo : public ::IceUtil::Shared, public ::IceUtil::Mutex
+{
+public:
+
+ LocatorInfo(const ::Ice::LocatorPrx&, const LocatorAdapterTablePtr&);
+
+ bool operator==(const LocatorInfo&) const;
+ bool operator!=(const LocatorInfo&) const;
+ bool operator<(const LocatorInfo&) const;
+
+ ::Ice::LocatorPrx getLocator();
+ ::Ice::LocatorRegistryPrx getLocatorRegistry();
+
+ bool getEndpoints(const ReferencePtr&, ::std::vector<EndpointPtr>&) const;
+ void addEndpoints(const ReferencePtr&, const ::std::vector<EndpointPtr>&);
+ void removeEndpoints(const ReferencePtr&);
+
+private:
+
+ ::Ice::LocatorPrx _locator;
+ ::Ice::LocatorRegistryPrx _locatorRegistry;
+ LocatorAdapterTablePtr _adapterTable;
+};
+
+}
+
+#endif
diff --git a/cpp/src/Ice/LocatorInfoF.h b/cpp/src/Ice/LocatorInfoF.h
new file mode 100644
index 00000000000..9c5121b0b28
--- /dev/null
+++ b/cpp/src/Ice/LocatorInfoF.h
@@ -0,0 +1,36 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_LOCATOR_INFO_F_H
+#define ICE_LOCATOR_INFO_F_H
+
+#include <Ice/Handle.h>
+
+namespace IceInternal
+{
+
+class LocatorManager;
+void incRef(LocatorManager*);
+void decRef(LocatorManager*);
+typedef Handle<LocatorManager> LocatorManagerPtr;
+
+class LocatorInfo;
+void incRef(LocatorInfo*);
+void decRef(LocatorInfo*);
+typedef Handle<LocatorInfo> LocatorInfoPtr;
+
+class LocatorAdapterTable;
+void incRef(LocatorAdapterTable*);
+void decRef(LocatorAdapterTable*);
+typedef Handle<LocatorAdapterTable> LocatorAdapterTablePtr;
+
+}
+
+#endif
diff --git a/cpp/src/Ice/Makefile b/cpp/src/Ice/Makefile
index 064f1047c83..b3547436339 100644
--- a/cpp/src/Ice/Makefile
+++ b/cpp/src/Ice/Makefile
@@ -81,7 +81,9 @@ OBJS = Initialize.o \
DynamicLibrary.o \
Plugin.o \
PluginManagerI.o \
- ProtocolPluginFacade.o
+ ProtocolPluginFacade.o \
+ Locator.o \
+ LocatorInfo.o
SRCS = $(OBJS:.o=.cpp)
@@ -300,4 +302,21 @@ $(HDIR)/PluginF.h: $(SDIR)/PluginF.ice $(SLICE2CPP)
clean::
rm -f $(HDIR)/PluginF.h
+$(HDIR)/Locator.h Locator.cpp: $(SDIR)/Locator.ice $(SLICE2CPP)
+ rm -f $(HDIR)/Locator.h Locator.cpp
+ $(SLICECMD) $(SDIR)/Locator.ice
+ mv Locator.h $(HDIR)
+
+clean::
+ rm -f $(HDIR)/Locator.h Locator.cpp
+
+$(HDIR)/LocatorF.h: $(SDIR)/LocatorF.ice $(SLICE2CPP)
+ rm -f $(HDIR)/LocatorF.h LocatorF.cpp
+ $(SLICECMD) $(SDIR)/LocatorF.ice
+ mv LocatorF.h $(HDIR)
+ rm -f LocatorF.cpp
+
+clean::
+ rm -f $(HDIR)/LocatorF.h
+
include .depend
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 0a496e35d0f..7803a432408 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -22,6 +22,8 @@
#include <Ice/LocalException.h>
#include <Ice/Properties.h>
#include <Ice/Functional.h>
+#include <Ice/LocatorInfo.h>
+#include <Ice/Locator.h>
#include <Ice/LoggerUtil.h>
#ifdef _WIN32
@@ -62,6 +64,23 @@ Ice::ObjectAdapterI::activate()
{
throw ObjectAdapterDeactivatedException(__FILE__, __LINE__);
}
+
+ if(!_printAdapterReadyDone)
+ {
+ if(_locatorInfo)
+ {
+ Identity ident;
+ ident.name = "dummy";
+
+ //
+ // TODO: This might throw if we can't connect to the
+ // locator. Shall we raise a special exception for the
+ // activate operation instead of a non obvious network
+ // exception?
+ //
+ _locatorInfo->getLocatorRegistry()->addAdapter(_name, newDirectProxy(ident));
+ }
+ }
for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
Ice::voidMemFun(&IncomingConnectionFactory::activate));
@@ -72,7 +91,7 @@ Ice::ObjectAdapterI::activate()
{
cout << _name << " ready" << endl;
}
-
+
_printAdapterReadyDone = true;
}
}
@@ -86,11 +105,11 @@ Ice::ObjectAdapterI::hold()
{
throw ObjectAdapterDeactivatedException(__FILE__, __LINE__);
}
-
+
for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
Ice::voidMemFun(&IncomingConnectionFactory::hold));
}
-
+
void
Ice::ObjectAdapterI::deactivate()
{
@@ -99,20 +118,20 @@ Ice::ObjectAdapterI::deactivate()
if(!_instance)
{
//
- // Ignore deactivation requests if the Object Adapter has
- // already been deactivated.
+ // Ignore deactivation requests if the Object Adapter has
+ // already been deactivated.
//
return;
}
-
+
for_each(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(),
Ice::voidMemFun(&IncomingConnectionFactory::destroy));
_instance->outgoingConnectionFactory()->removeAdapter(this);
-
+
_activeServantMap.clear();
_activeServantMapHint = _activeServantMap.end();
-
+
for_each(_locatorMap.begin(), _locatorMap.end(),
Ice::secondVoidMemFun<string, ServantLocator>(&ServantLocator::deactivate));
_locatorMap.clear();
@@ -316,6 +335,19 @@ Ice::ObjectAdapterI::createProxy(const Identity& ident)
}
ObjectPrx
+Ice::ObjectAdapterI::createDirectProxy(const Identity& ident)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ if(!_instance)
+ {
+ throw ObjectAdapterDeactivatedException(__FILE__, __LINE__);
+ }
+
+ return newDirectProxy(ident);
+}
+
+ObjectPrx
Ice::ObjectAdapterI::createReverseProxy(const Identity& ident)
{
IceUtil::Mutex::Lock sync(*this);
@@ -329,8 +361,8 @@ Ice::ObjectAdapterI::createReverseProxy(const Identity& ident)
// Create a reference and return a reverse proxy for this reference.
//
vector<EndpointPtr> endpoints;
- ReferencePtr ref = _instance->referenceFactory()->create(ident, "", Reference::ModeTwoway, false, false,
- endpoints, endpoints, 0, this);
+ ReferencePtr ref = _instance->referenceFactory()->create(ident, "", Reference::ModeTwoway, false, false,"",
+ endpoints, 0, 0, this);
return _instance->proxyFactory()->referenceToProxy(ref);
}
@@ -374,6 +406,40 @@ Ice::ObjectAdapterI::addRouter(const RouterPrx& router)
// callbacks.
//
_instance->outgoingConnectionFactory()->setRouter(routerInfo->getRouter());
+
+ //
+ // Creates proxies with endpoints instead of the adapter name
+ // when there is a router.
+ //
+ _useEndpointsInProxy = true;
+ }
+}
+
+void
+Ice::ObjectAdapterI::setLocator(const LocatorPrx& locator)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ if(!_instance)
+ {
+ throw ObjectAdapterDeactivatedException(__FILE__, __LINE__);
+ }
+
+ _locatorInfo = _instance->locatorManager()->get(locator);
+ if(_locatorInfo)
+ {
+ //
+ // If a locator is set, we create proxies with adapter names in
+ // the reference instead of endpoints. If it's not set, we create
+ // proxies with endpoints if there's at least one incoming
+ // connection factory or router endpoints.
+ //
+ _useEndpointsInProxy = false;
+ }
+ else
+ {
+ IceUtil::Mutex::Lock routerEndpointsSync(_routerEndpointsMutex);
+ _useEndpointsInProxy = !_incomingConnectionFactories.empty() || !_routerEndpoints.empty();
}
}
@@ -452,6 +518,14 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const string& n
}
__setNoDelete(false);
+ //
+ // Create proxies with the adapter endpoints only if there's
+ // incoming connection factories. If there's no incoming
+ // connection factories we will create proxies with the adapter
+ // name in the reference (to allow collocation to work).
+ //
+ _useEndpointsInProxy = !_incomingConnectionFactories.empty();
+
//
// Object Adapters without incoming connection factories are
// permissible, as such Object Adapters can still be used with a
@@ -477,15 +551,38 @@ Ice::ObjectAdapterI::~ObjectAdapterI()
ObjectPrx
Ice::ObjectAdapterI::newProxy(const Identity& ident) const
{
+ if(_useEndpointsInProxy)
+ {
+ return newDirectProxy(ident);
+ }
+ else
+ {
+ //
+ // Create a reference with the adapter id.
+ //
+ vector<EndpointPtr> endpoints;
+ ReferencePtr ref = _instance->referenceFactory()->create(ident, "", Reference::ModeTwoway, false, false, _name,
+ endpoints, 0, 0, 0);
+
+ //
+ // Return a proxy for the reference.
+ //
+ return _instance->proxyFactory()->referenceToProxy(ref);
+ }
+}
+
+ObjectPrx
+Ice::ObjectAdapterI::newDirectProxy(const Identity& ident) const
+{
vector<EndpointPtr> endpoints;
- //
+ //
// First we add all endpoints from all incoming connection
// factories.
//
transform(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(), back_inserter(endpoints),
Ice::constMemFun(&IncomingConnectionFactory::endpoint));
-
+
//
// Now we also add the endpoints of the router's server proxy, if
// any. This way, object references created by this object adapter
@@ -499,9 +596,10 @@ Ice::ObjectAdapterI::newProxy(const Identity& ident) const
//
// Create a reference and return a proxy for this reference.
//
- ReferencePtr ref = _instance->referenceFactory()->create(ident, "", Reference::ModeTwoway, false, false,
- endpoints, endpoints, 0, 0);
+ ReferencePtr ref = _instance->referenceFactory()->create(ident, "", Reference::ModeTwoway, false, false, "",
+ endpoints, 0, 0, 0);
return _instance->proxyFactory()->referenceToProxy(ref);
+
}
bool
@@ -510,6 +608,15 @@ Ice::ObjectAdapterI::isLocal(const ObjectPrx& proxy) const
ReferencePtr ref = proxy->__reference();
vector<EndpointPtr>::const_iterator p;
+ if(!ref->adapterId.empty())
+ {
+ //
+ // Proxy is local if the reference adapter id matches this
+ // adapter name.
+ //
+ return ref->adapterId == _name;
+ }
+
//
// Proxies which have at least one endpoint in common with the
// endpoints used by this object adapter's incoming connection
diff --git a/cpp/src/Ice/ObjectAdapterI.h b/cpp/src/Ice/ObjectAdapterI.h
index e9378be1c67..4dd2ebf5c54 100644
--- a/cpp/src/Ice/ObjectAdapterI.h
+++ b/cpp/src/Ice/ObjectAdapterI.h
@@ -22,6 +22,7 @@
#include <Ice/ObjectF.h>
#include <Ice/Exception.h>
#include <Ice/EndpointF.h>
+#include <Ice/LocatorInfoF.h>
#include <list>
namespace Ice
@@ -54,10 +55,13 @@ public:
virtual ObjectPtr proxyToServant(const ObjectPrx&);
virtual ObjectPrx createProxy(const Identity&);
+ virtual ObjectPrx createDirectProxy(const Identity&);
virtual ObjectPrx createReverseProxy(const Identity&);
virtual void addRouter(const RouterPrx&);
+ virtual void setLocator(const LocatorPrx&);
+
std::list< ::IceInternal::ConnectionPtr> getIncomingConnections() const;
private:
@@ -67,11 +71,13 @@ private:
friend class ::IceInternal::ObjectAdapterFactory;
ObjectPrx newProxy(const Identity&) const;
+ ObjectPrx newDirectProxy(const Identity&) const;
bool isLocal(const ObjectPrx&) const;
::IceInternal::InstancePtr _instance;
bool _printAdapterReadyDone;
std::string _name;
+ bool _useEndpointsInProxy;
ObjectDict _activeServantMap;
ObjectDict::iterator _activeServantMapHint;
std::map<std::string, ServantLocatorPtr> _locatorMap;
@@ -79,6 +85,7 @@ private:
std::vector< ::IceInternal::IncomingConnectionFactoryPtr> _incomingConnectionFactories;
std::vector< ::IceInternal::EndpointPtr> _routerEndpoints;
IceUtil::Mutex _routerEndpointsMutex;
+ ::IceInternal::LocatorInfoPtr _locatorInfo;
};
}
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index 319c12aa623..ee704a8b569 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -8,6 +8,8 @@
//
// **********************************************************************
+#include <IceUtil/Thread.h>
+
#include <Ice/Proxy.h>
#include <Ice/ProxyFactory.h>
#include <Ice/Object.h>
@@ -23,6 +25,7 @@
#include <Ice/ConnectionFactory.h>
#include <Ice/Connection.h>
#include <Ice/RouterInfo.h>
+#include <Ice/LocatorInfo.h>
#include <Ice/BasicStream.h>
#include <Ice/LocalException.h>
#include <Ice/Functional.h>
@@ -290,7 +293,7 @@ IceProxy::Ice::Object::ice_newIdentity(const Identity& newIdentity) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(_reference->changeIdentity(newIdentity));
+ proxy->setup(_reference->changeIdentity(newIdentity), _retryIntervals);
return proxy;
}
}
@@ -311,7 +314,7 @@ IceProxy::Ice::Object::ice_newFacet(const string& newFacet) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(_reference->changeFacet(newFacet));
+ proxy->setup(_reference->changeFacet(newFacet), _retryIntervals);
return proxy;
}
}
@@ -327,7 +330,7 @@ IceProxy::Ice::Object::ice_twoway() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -343,7 +346,7 @@ IceProxy::Ice::Object::ice_oneway() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -359,7 +362,7 @@ IceProxy::Ice::Object::ice_batchOneway() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -375,7 +378,7 @@ IceProxy::Ice::Object::ice_datagram() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -391,7 +394,7 @@ IceProxy::Ice::Object::ice_batchDatagram() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -407,7 +410,7 @@ IceProxy::Ice::Object::ice_secure(bool b) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -423,7 +426,7 @@ IceProxy::Ice::Object::ice_compress(bool b) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -439,7 +442,7 @@ IceProxy::Ice::Object::ice_timeout(int t) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -455,7 +458,7 @@ IceProxy::Ice::Object::ice_router(const RouterPrx& router) const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -471,7 +474,7 @@ IceProxy::Ice::Object::ice_default() const
else
{
ObjectPrx proxy(new ::IceProxy::Ice::Object());
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
}
@@ -495,11 +498,13 @@ IceProxy::Ice::Object::__copyFrom(const ObjectPrx& from)
ReferencePtr ref;
Handle< ::IceDelegateD::Ice::Object> delegateD;
Handle< ::IceDelegateM::Ice::Object> delegateM;
+ vector<int> retryIntervals;
{
IceUtil::Mutex::Lock sync(*from.get());
ref = from->_reference;
+ retryIntervals = from->_retryIntervals;
delegateD = dynamic_cast< ::IceDelegateD::Ice::Object*>(from->_delegate.get());
delegateM = dynamic_cast< ::IceDelegateM::Ice::Object*>(from->_delegate.get());
}
@@ -510,7 +515,8 @@ IceProxy::Ice::Object::__copyFrom(const ObjectPrx& from)
//
_reference = ref;
-
+ _retryIntervals = retryIntervals;
+
if(delegateD)
{
Handle< ::IceDelegateD::Ice::Object> delegate = __createDelegateD();
@@ -532,8 +538,6 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt)
_delegate = 0;
- static const int max = 1; // TODO: Make number of retries configurable
-
try
{
ex.ice_throw();
@@ -544,7 +548,6 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt)
// We always retry on a close connection exception, as this
// indicates graceful server shutdown.
//
- // TODO: configurable timeout before we try again?
}
catch(const SocketException&)
{
@@ -561,8 +564,8 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt)
TraceLevelsPtr traceLevels = _reference->instance->traceLevels();
LoggerPtr logger = _reference->instance->logger();
-
- if(cnt > max)
+
+ if(cnt > (int)_retryIntervals.size())
{
if(traceLevels->retry >= 1)
{
@@ -575,13 +578,22 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt)
if(traceLevels->retry >= 1)
{
Trace out(logger, traceLevels->retryCat);
- out << "re-trying operation call because of exception\n" << ex;
+ out << "re-trying operation call";
+ if(cnt > 0 && _retryIntervals[cnt - 1] > 0)
+ {
+ out << " in " << _retryIntervals[cnt - 1] << " (ms)";
+ }
+ out << " because of exception\n" << ex;
}
- //
- // Reset the endpoints to the original endpoints upon retry
- //
- _reference = _reference->changeEndpoints(_reference->origEndpoints);
+ if(cnt > 0)
+ {
+ //
+ // Sleep before retrying. TODO: is it safe to sleep here
+ // with the mutex locked?
+ //
+ IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(_retryIntervals[cnt - 1]));
+ }
}
void
@@ -596,6 +608,7 @@ IceProxy::Ice::Object::__locationForward(const LocationForward& ex)
throw LocationForwardIdentityException(__FILE__, __LINE__);
}
+ _reference = _reference->changeAdapterId(ex._prx->_reference->adapterId);
_reference = _reference->changeEndpoints(ex._prx->_reference->endpoints);
/*
@@ -668,13 +681,14 @@ IceProxy::Ice::Object::__createDelegateD()
}
void
-IceProxy::Ice::Object::setup(const ReferencePtr& ref)
+IceProxy::Ice::Object::setup(const ReferencePtr& ref, const vector<int>& retryIntervals)
{
//
// No need to synchronize "*this", as this operation is only
// called upon initialization.
//
_reference = ref;
+ _retryIntervals = retryIntervals;
}
IceDelegateM::Ice::Object::~Object()
@@ -856,31 +870,73 @@ IceDelegateM::Ice::Object::setup(const ReferencePtr& ref)
}
else
{
- vector<EndpointPtr> endpoints;
- if(__reference->routerInfo)
- {
- //
- // If we route, we send everything to the router's client
- // proxy endpoints.
- //
- ObjectPrx proxy = __reference->routerInfo->getClientProxy();
- endpoints = filterEndpoints(proxy->__reference()->endpoints);
- }
- else
- {
- endpoints = filterEndpoints(__reference->endpoints);
- }
-
- if(endpoints.empty())
+ while(true)
{
- throw NoEndpointException(__FILE__, __LINE__);
+ vector<EndpointPtr> endpoints;
+ bool cached = false;
+ if(__reference->routerInfo)
+ {
+ //
+ // If we route, we send everything to the router's client
+ // proxy endpoints.
+ //
+ ObjectPrx proxy = ref->routerInfo->getClientProxy();
+ endpoints = proxy->__reference()->endpoints;
+ }
+ else if(!__reference->endpoints.empty())
+ {
+ endpoints = __reference->endpoints;
+ }
+ else if(__reference->locatorInfo)
+ {
+ cached = __reference->locatorInfo->getEndpoints(__reference, endpoints);
+ }
+
+
+ vector<EndpointPtr> filteredEndpoints = filterEndpoints(endpoints);
+ if(filteredEndpoints.empty())
+ {
+ throw NoEndpointException(__FILE__, __LINE__);
+ }
+
+ try
+ {
+ OutgoingConnectionFactoryPtr factory = __reference->instance->outgoingConnectionFactory();
+ __connection = factory->create(filteredEndpoints);
+ assert(__connection);
+ __connection->incProxyUsageCount();
+ }
+ catch(const LocalException& ex)
+ {
+ if(cached)
+ {
+ TraceLevelsPtr traceLevels = __reference->instance->traceLevels();
+ LoggerPtr logger = __reference->instance->logger();
+
+ if(traceLevels->retry >= 1)
+ {
+ Trace out(logger, traceLevels->retryCat);
+ out << "connection to cached endpoint failed, removing endpoint from cache\n"
+ << "and trying one more time\n" << ex;
+ }
+
+ assert(__reference->locatorInfo);
+ __reference->locatorInfo->removeEndpoints(__reference);
+ continue;
+ }
+ else
+ {
+ throw;
+ }
+ }
+
+ if(__reference->locatorInfo && !cached)
+ {
+ __reference->locatorInfo->addEndpoints(__reference, endpoints);
+ }
+ break;
}
-
- OutgoingConnectionFactoryPtr factory = __reference->instance->outgoingConnectionFactory();
- __connection = factory->create(endpoints);
- assert(__connection);
- __connection->incProxyUsageCount();
-
+
//
// If we have a router, set the object adapter for this router
// (if any) to the new connection, so that callbacks from the
diff --git a/cpp/src/Ice/ProxyFactory.cpp b/cpp/src/Ice/ProxyFactory.cpp
index e51b56c8a58..93d7d9af484 100644
--- a/cpp/src/Ice/ProxyFactory.cpp
+++ b/cpp/src/Ice/ProxyFactory.cpp
@@ -13,6 +13,7 @@
#include <Ice/Proxy.h>
#include <Ice/ReferenceFactory.h>
#include <Ice/BasicStream.h>
+#include <Ice/Properties.h>
using namespace std;
using namespace Ice;
@@ -85,13 +86,57 @@ ObjectPrx
IceInternal::ProxyFactory::referenceToProxy(const ReferencePtr& ref) const
{
ObjectPrx proxy = new ::IceProxy::Ice::Object;
- proxy->setup(ref);
+ proxy->setup(ref, _retryIntervals);
return proxy;
}
IceInternal::ProxyFactory::ProxyFactory(const InstancePtr& instance) :
_instance(instance)
{
+ string str = _instance->properties()->getPropertyWithDefault("Ice.RetryIntervals", "0");
+
+ string::size_type beg;
+ string::size_type end = 0;
+
+ while(true)
+ {
+ static const string delim = " \t";
+
+ beg = str.find_first_not_of(delim, end);
+ if(beg == string::npos)
+ {
+ if(_retryIntervals.empty())
+ {
+ _retryIntervals.push_back(0);
+ }
+ break;
+ }
+
+ end = str.find_first_of(delim, beg);
+ if(end == string::npos)
+ {
+ end = str.length();
+ }
+
+ if(beg == end)
+ {
+ break;
+ }
+
+ string value = str.substr(beg, end - beg);
+
+ int v = atoi(value.c_str());
+
+ //
+ // If -1 is the first value, no retry and wait intervals.
+ //
+ if(v == -1 && _retryIntervals.empty())
+ {
+ break;
+ }
+
+ _retryIntervals.push_back(v > 0 ? v : 0);
+ }
}
IceInternal::ProxyFactory::~ProxyFactory()
diff --git a/cpp/src/Ice/ProxyFactory.h b/cpp/src/Ice/ProxyFactory.h
index 1154d5e767a..4c637d7c135 100644
--- a/cpp/src/Ice/ProxyFactory.h
+++ b/cpp/src/Ice/ProxyFactory.h
@@ -42,6 +42,7 @@ private:
friend class Instance;
InstancePtr _instance;
+ ::std::vector<int> _retryIntervals;
};
}
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 80fd1237773..c6946409552 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -17,6 +17,8 @@
#include <Ice/BasicStream.h>
#include <Ice/RouterInfo.h>
#include <Ice/Router.h>
+#include <Ice/LocatorInfo.h>
+#include <Ice/Locator.h>
using namespace std;
using namespace Ice;
@@ -58,7 +60,7 @@ IceInternal::Reference::operator==(const Reference& r) const
return false;
}
- if(origEndpoints != r.origEndpoints)
+ if(adapterId != r.adapterId)
{
return false;
}
@@ -73,6 +75,11 @@ IceInternal::Reference::operator==(const Reference& r) const
return false;
}
+ if(locatorInfo != r.locatorInfo)
+ {
+ return false;
+ }
+
if(reverseAdapter != r.reverseAdapter)
{
return false;
@@ -139,12 +146,12 @@ IceInternal::Reference::operator<(const Reference& r) const
{
return false;
}
-
- if(origEndpoints < r.origEndpoints)
+
+ if(adapterId < r.adapterId)
{
return true;
}
- else if(r.origEndpoints < origEndpoints)
+ else if(r.adapterId < adapterId)
{
return false;
}
@@ -167,6 +174,15 @@ IceInternal::Reference::operator<(const Reference& r) const
return false;
}
+ if(locatorInfo < r.locatorInfo)
+ {
+ return true;
+ }
+ else if(r.locatorInfo < locatorInfo)
+ {
+ return false;
+ }
+
if(reverseAdapter < r.reverseAdapter)
{
return true;
@@ -194,28 +210,24 @@ IceInternal::Reference::streamWrite(BasicStream* s) const
s->write(secure);
s->write(compress);
-
- vector<EndpointPtr>::const_iterator p;
- s->writeSize(Ice::Int(origEndpoints.size()));
- for(p = origEndpoints.begin(); p != origEndpoints.end(); ++p)
- {
- (*p)->streamWrite(s);
- }
+ s->writeSize(Ice::Int(endpoints.size()));
- if(endpoints == origEndpoints)
+ if(!endpoints.empty())
{
- s->write(true);
- }
- else
- {
- s->write(false);
- s->writeSize(Ice::Int(endpoints.size()));
+ assert(adapterId.empty());
+
+ vector<EndpointPtr>::const_iterator p;
+
for(p = endpoints.begin(); p != endpoints.end(); ++p)
{
(*p)->streamWrite(s);
}
}
+ else
+ {
+ s->write(adapterId);
+ }
}
string
@@ -270,25 +282,25 @@ IceInternal::Reference::toString() const
if(compress)
{
- s << " -s";
+ s << " -c";
}
- vector<EndpointPtr>::const_iterator p;
-
- for(p = origEndpoints.begin(); p != origEndpoints.end(); ++p)
- {
- s << ':' << (*p)->toString();
- }
-
- if(endpoints != origEndpoints)
+ if(!endpoints.empty())
{
- s << ':';
+ assert(adapterId.empty());
+
+ vector<EndpointPtr>::const_iterator p;
+
for(p = endpoints.begin(); p != endpoints.end(); ++p)
{
s << ':' << (*p)->toString();
}
}
-
+ else if(!adapterId.empty())
+ {
+ s << " @ " << adapterId;
+ }
+
return s.str();
}
@@ -301,9 +313,8 @@ IceInternal::Reference::changeIdentity(const Identity& newIdentity) const
}
else
{
- return instance->referenceFactory()->create(newIdentity, facet, mode, secure, compress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(newIdentity, facet, mode, secure, compress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -316,9 +327,8 @@ IceInternal::Reference::changeFacet(const string& newFacet) const
}
else
{
- return instance->referenceFactory()->create(identity, newFacet, mode, secure, compress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, newFacet, mode, secure, compress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -330,12 +340,6 @@ IceInternal::Reference::changeTimeout(int timeout) const
//
vector<EndpointPtr>::const_iterator p;
- vector<EndpointPtr> newOrigEndpoints;
- for(p = origEndpoints.begin(); p != origEndpoints.end(); ++p)
- {
- newOrigEndpoints.push_back((*p)->timeout(timeout));
- }
-
vector<EndpointPtr> newEndpoints;
for(p = endpoints.begin(); p != endpoints.end(); ++p)
{
@@ -362,9 +366,19 @@ IceInternal::Reference::changeTimeout(int timeout) const
}
}
- return instance->referenceFactory()->create(identity, facet, mode, secure, compress,
- newOrigEndpoints, newEndpoints,
- newRouterInfo, reverseAdapter);
+ //
+ // If we have a locator, we also change the timeout settings on the
+ // locator.
+ //
+ LocatorInfoPtr newLocatorInfo;
+ if(locatorInfo)
+ {
+ LocatorPrx newLocator = LocatorPrx::uncheckedCast(locatorInfo->getLocator()->ice_timeout(timeout));
+ newLocatorInfo = instance->locatorManager()->get(newLocator);
+ }
+
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
+ newEndpoints, newRouterInfo, newLocatorInfo, reverseAdapter);
}
ReferencePtr
@@ -376,9 +390,8 @@ IceInternal::Reference::changeMode(Mode newMode) const
}
else
{
- return instance->referenceFactory()->create(identity, facet, newMode, secure, compress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, facet, newMode, secure, compress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -391,9 +404,8 @@ IceInternal::Reference::changeSecure(bool newSecure) const
}
else
{
- return instance->referenceFactory()->create(identity, facet, mode, newSecure, compress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, facet, mode, newSecure, compress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -406,9 +418,22 @@ IceInternal::Reference::changeCompress(bool newCompress) const
}
else
{
- return instance->referenceFactory()->create(identity, facet, mode, secure, newCompress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, facet, mode, secure, newCompress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
+ }
+}
+
+ReferencePtr
+IceInternal::Reference::changeAdapterId(const string& newAdapterId) const
+{
+ if(newAdapterId == adapterId)
+ {
+ return ReferencePtr(const_cast<Reference*>(this));
+ }
+ else
+ {
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, newAdapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -421,9 +446,8 @@ IceInternal::Reference::changeEndpoints(const vector<EndpointPtr>& newEndpoints)
}
else
{
- return instance->referenceFactory()->create(identity, facet, mode, secure, compress,
- origEndpoints, newEndpoints,
- routerInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
+ newEndpoints, routerInfo, locatorInfo, reverseAdapter);
}
}
@@ -438,18 +462,32 @@ IceInternal::Reference::changeRouter(const RouterPrx& newRouter) const
}
else
{
- return instance->referenceFactory()->create(identity, facet, mode, secure, compress,
- origEndpoints, endpoints,
- newRouterInfo, reverseAdapter);
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
+ endpoints, newRouterInfo, locatorInfo, reverseAdapter);
+ }
+}
+
+ReferencePtr
+IceInternal::Reference::changeLocator(const LocatorPrx& newLocator) const
+{
+ LocatorInfoPtr newLocatorInfo = instance->locatorManager()->get(newLocator);
+
+ if(newLocatorInfo == locatorInfo)
+ {
+ return ReferencePtr(const_cast<Reference*>(this));
+ }
+ else
+ {
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
+ endpoints, routerInfo, newLocatorInfo, reverseAdapter);
}
}
ReferencePtr
IceInternal::Reference::changeDefault() const
{
- return instance->referenceFactory()->create(identity, "", ModeTwoway, false, false,
- origEndpoints, origEndpoints,
- 0, 0);
+ return instance->referenceFactory()->create(identity, "", ModeTwoway, false, false, adapterId,
+ endpoints, 0, 0, 0);
}
IceInternal::Reference::Reference(const InstancePtr& inst,
@@ -458,9 +496,10 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
Mode md,
bool sec,
bool com,
- const vector<EndpointPtr>& origEndpts,
+ const string& adptid,
const vector<EndpointPtr>& endpts,
const RouterInfoPtr& rtrInfo,
+ const LocatorInfoPtr& locInfo,
const ObjectAdapterPtr& rvAdapter) :
instance(inst),
identity(ident),
@@ -468,14 +507,20 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
mode(md),
secure(sec),
compress(com),
- origEndpoints(origEndpts),
+ adapterId(adptid),
endpoints(endpts),
routerInfo(rtrInfo),
+ locatorInfo(locInfo),
reverseAdapter(rvAdapter),
hashValue(0)
{
- Int h = 0;
+ //
+ // It's either adapter id or endpoints, it can't be both.
+ //
+ assert(!(!adapterId.empty() && !endpoints.empty()));
+ Int h = 0;
+
string::const_iterator p;
for(p = identity.name.begin(); p != identity.name.end(); ++p)
diff --git a/cpp/src/Ice/Reference.h b/cpp/src/Ice/Reference.h
index 1c64e87c3d2..d748da757b8 100644
--- a/cpp/src/Ice/Reference.h
+++ b/cpp/src/Ice/Reference.h
@@ -17,7 +17,9 @@
#include <Ice/EndpointF.h>
#include <Ice/InstanceF.h>
#include <Ice/RouterF.h>
+#include <Ice/LocatorF.h>
#include <Ice/RouterInfoF.h>
+#include <Ice/LocatorInfoF.h>
#include <Ice/ObjectAdapterF.h>
#include <Ice/Identity.h>
@@ -63,9 +65,10 @@ public:
const Mode mode;
const bool secure;
const bool compress;
- const std::vector<EndpointPtr> origEndpoints; // Original endpoints.
- const std::vector<EndpointPtr> endpoints; // Actual endpoints, changed by a location forwards.
+ const std::string adapterId;
+ const std::vector<EndpointPtr> endpoints;
const RouterInfoPtr routerInfo; // Null if no router is used.
+ const LocatorInfoPtr locatorInfo; // Null if no locator is used.
const Ice::ObjectAdapterPtr reverseAdapter; // For reverse communications using the adapter's incoming connections.
const Ice::Int hashValue;
@@ -79,15 +82,17 @@ public:
ReferencePtr changeMode(Mode) const;
ReferencePtr changeSecure(bool) const;
ReferencePtr changeCompress(bool) const;
+ ReferencePtr changeAdapterId(const std::string&) const;
ReferencePtr changeEndpoints(const std::vector<EndpointPtr>&) const;
ReferencePtr changeRouter(const ::Ice::RouterPrx&) const;
+ ReferencePtr changeLocator(const ::Ice::LocatorPrx&) const;
ReferencePtr changeDefault() const;
private:
- Reference(const InstancePtr&, const Ice::Identity&, const std::string&, Mode, bool, bool,
- const std::vector<EndpointPtr>&, const std::vector<EndpointPtr>&,
- const RouterInfoPtr&, const Ice::ObjectAdapterPtr&);
+ Reference(const InstancePtr&, const Ice::Identity&, const std::string&, Mode, bool, bool, const std::string&,
+ const std::vector<EndpointPtr>&, const RouterInfoPtr&, const LocatorInfoPtr&,
+ const Ice::ObjectAdapterPtr&);
friend class ReferenceFactory;
};
diff --git a/cpp/src/Ice/ReferenceFactory.cpp b/cpp/src/Ice/ReferenceFactory.cpp
index aff3f9193b8..97b1fbfb267 100644
--- a/cpp/src/Ice/ReferenceFactory.cpp
+++ b/cpp/src/Ice/ReferenceFactory.cpp
@@ -16,6 +16,7 @@
#include <Ice/Endpoint.h>
#include <Ice/EndpointFactoryManager.h>
#include <Ice/RouterInfo.h>
+#include <Ice/LocatorInfo.h>
using namespace std;
using namespace Ice;
@@ -30,9 +31,10 @@ IceInternal::ReferenceFactory::create(const Identity& ident,
Reference::Mode mode,
bool secure,
bool compress,
- const vector<EndpointPtr>& origEndpoints,
+ const string& adapter,
const vector<EndpointPtr>& endpoints,
const RouterInfoPtr& routerInfo,
+ const LocatorInfoPtr& locatorInfo,
const ObjectAdapterPtr& reverseAdapter)
{
Mutex::Lock sync(*this);
@@ -45,9 +47,8 @@ IceInternal::ReferenceFactory::create(const Identity& ident,
//
// Create new reference
//
- ReferencePtr ref = new Reference(_instance, ident, facet, mode, secure, compress,
- origEndpoints, endpoints,
- routerInfo, reverseAdapter);
+ ReferencePtr ref = new Reference(_instance, ident, facet, mode, secure, compress, adapter,
+ endpoints, routerInfo, locatorInfo, reverseAdapter);
//
// If we already have an equivalent reference, use such equivalent
@@ -118,7 +119,7 @@ IceInternal::ReferenceFactory::create(const string& str)
throw ProxyParseException(__FILE__, __LINE__);
}
- end = s.find_first_of(delim + ":", beg);
+ end = s.find_first_of(delim + ":@", beg);
if(end == string::npos)
{
end = s.length();
@@ -134,6 +135,7 @@ IceInternal::ReferenceFactory::create(const string& str)
Reference::Mode mode = Reference::ModeTwoway;
bool secure = false;
bool compress = false;
+ string adapter;
while(true)
{
@@ -143,12 +145,12 @@ IceInternal::ReferenceFactory::create(const string& str)
break;
}
- if(s[beg] == ':')
+ if(s[beg] == ':' || s[beg] == '@')
{
break;
}
- end = s.find_first_of(delim + ":", beg);
+ end = s.find_first_of(delim + ":@", beg);
if(end == string::npos)
{
end = s.length();
@@ -170,7 +172,7 @@ IceInternal::ReferenceFactory::create(const string& str)
if(argumentBeg != string::npos && str[argumentBeg] != '-')
{
beg = argumentBeg;
- end = str.find_first_of(delim + ":", beg);
+ end = str.find_first_of(delim + ":@", beg);
if(end == string::npos)
{
end = str.length();
@@ -271,56 +273,53 @@ IceInternal::ReferenceFactory::create(const string& str)
}
}
- vector<EndpointPtr> origEndpoints;
vector<EndpointPtr> endpoints;
-
- bool orig = true;
- while(end < s.length() && s[end] == ':')
+ if(beg != string::npos)
{
- beg = end + 1;
-
- end = s.find(':', beg);
- if(end == string::npos)
+ if(s[beg] == ':')
{
- end = s.length();
+ end = beg;
+
+ while (end < s.length() && s[end] == ':')
+ {
+ beg = end + 1;
+
+ end = s.find(':', beg);
+ if (end == string::npos)
+ {
+ end = s.length();
+ }
+
+ string es = s.substr(beg, end - beg);
+ EndpointPtr endp = _instance->endpointFactoryManager()->create(es);
+ endpoints.push_back(endp);
+ }
}
-
- if(beg == end) // "::"
+ else if(s[beg] == '@')
{
- if(!orig)
+ beg = str.find_first_not_of(delim, beg + 1);
+ if (beg == string::npos)
+ {
+ beg = end + 1;
+ }
+
+ end = str.find_first_of(delim, beg);
+ if (end == string::npos)
+ {
+ end = str.length();
+ }
+
+ adapter = str.substr(beg, end - beg);
+ if(adapter.empty())
{
throw ProxyParseException(__FILE__, __LINE__);
}
-
- orig = false;
- continue;
- }
-
- string es = s.substr(beg, end - beg);
- EndpointPtr endp = _instance->endpointFactoryManager()->create(es);
-
- if(orig)
- {
- origEndpoints.push_back(endp);
- }
- else
- {
- endpoints.push_back(endp);
}
}
- if(orig)
- {
- endpoints = origEndpoints;
- }
-
- if(!origEndpoints.size() || !endpoints.size())
- {
- throw ProxyParseException(__FILE__, __LINE__);
- }
-
RouterInfoPtr routerInfo = _instance->routerManager()->get(getDefaultRouter());
- return create(ident, facet, mode, secure, compress, origEndpoints, endpoints, routerInfo, 0);
+ LocatorInfoPtr locatorInfo = _instance->locatorManager()->get(getDefaultLocator());
+ return create(ident, facet, mode, secure, compress, adapter, endpoints, routerInfo, locatorInfo, 0);
}
ReferencePtr
@@ -348,37 +347,29 @@ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s)
bool compress;
s->read(compress);
- vector<EndpointPtr> origEndpoints;
vector<EndpointPtr> endpoints;
+ string adapterId;
Ice::Int sz;
s->readSize(sz);
- origEndpoints.reserve(sz);
- while(sz--)
- {
- EndpointPtr endpoint = _instance->endpointFactoryManager()->read(s);
- origEndpoints.push_back(endpoint);
- }
-
- bool same;
- s->read(same);
- if(same) // origEndpoints == endpoints
- {
- endpoints = origEndpoints;
- }
- else
+
+ if(sz > 0)
{
- s->readSize(sz);
endpoints.reserve(sz);
while(sz--)
{
- EndpointPtr endpoint = _instance->endpointFactoryManager()->read(s);
+ EndpointPtr endpoint = _instance->endpointFactoryManager()->read(s);
endpoints.push_back(endpoint);
}
}
+ else
+ {
+ s->read(adapterId);
+ }
RouterInfoPtr routerInfo = _instance->routerManager()->get(getDefaultRouter());
- return create(ident, facet, mode, secure, compress, origEndpoints, endpoints, routerInfo, 0);
+ LocatorInfoPtr locatorInfo = _instance->locatorManager()->get(getDefaultLocator());
+ return create(ident, facet, mode, secure, compress, adapterId, endpoints, routerInfo, locatorInfo, 0);
}
void
@@ -395,6 +386,20 @@ IceInternal::ReferenceFactory::getDefaultRouter() const
return _defaultRouter;
}
+void
+IceInternal::ReferenceFactory::setDefaultLocator(const LocatorPrx& defaultLocator)
+{
+ IceUtil::Mutex::Lock sync(*this);
+ _defaultLocator = defaultLocator;
+}
+
+LocatorPrx
+IceInternal::ReferenceFactory::getDefaultLocator() const
+{
+ IceUtil::Mutex::Lock sync(*this);
+ return _defaultLocator;
+}
+
IceInternal::ReferenceFactory::ReferenceFactory(const InstancePtr& instance) :
_instance(instance),
_referencesHint(_references.end()),
@@ -414,6 +419,7 @@ IceInternal::ReferenceFactory::destroy()
_instance = 0;
_defaultRouter = 0;
+ _defaultLocator = 0;
_references.clear();
_referencesHint = _references.end();
}
diff --git a/cpp/src/Ice/ReferenceFactory.h b/cpp/src/Ice/ReferenceFactory.h
index cd7bd723c26..b7e49f76415 100644
--- a/cpp/src/Ice/ReferenceFactory.h
+++ b/cpp/src/Ice/ReferenceFactory.h
@@ -24,15 +24,18 @@ class ReferenceFactory : public ::IceUtil::Shared, public ::IceUtil::Mutex
{
public:
- ReferencePtr create(const Ice::Identity&, const std::string&, Reference::Mode, bool, bool,
- const std::vector<EndpointPtr>&, const std::vector<EndpointPtr>&,
- const RouterInfoPtr&, const Ice::ObjectAdapterPtr&);
+ ReferencePtr create(const Ice::Identity&, const std::string&, Reference::Mode, bool, bool, const std::string&,
+ const std::vector<EndpointPtr>&, const RouterInfoPtr&, const LocatorInfoPtr&,
+ const Ice::ObjectAdapterPtr&);
ReferencePtr create(const std::string&);
ReferencePtr create(const Ice::Identity&, BasicStream*);
void setDefaultRouter(const ::Ice::RouterPrx&);
Ice::RouterPrx getDefaultRouter() const;
+ void setDefaultLocator(const ::Ice::LocatorPrx&);
+ Ice::LocatorPrx getDefaultLocator() const;
+
private:
ReferenceFactory(const InstancePtr&);
@@ -41,6 +44,7 @@ private:
InstancePtr _instance;
Ice::RouterPrx _defaultRouter;
+ Ice::LocatorPrx _defaultLocator;
std::set<ReferencePtr> _references;
std::set<ReferencePtr>::iterator _referencesHint;
int _evict;
diff --git a/cpp/src/Ice/TraceLevels.cpp b/cpp/src/Ice/TraceLevels.cpp
index 3829a494f65..c5574699b29 100644
--- a/cpp/src/Ice/TraceLevels.cpp
+++ b/cpp/src/Ice/TraceLevels.cpp
@@ -24,10 +24,13 @@ IceInternal::TraceLevels::TraceLevels(const PropertiesPtr& properties) :
protocol(0),
protocolCat("Protocol"),
retry(0),
- retryCat("Retry")
+ retryCat("Retry"),
+ location(0),
+ locationCat("Location")
{
const string keyBase = "Ice.Trace.";
const_cast<int&>(network) = properties->getPropertyAsInt(keyBase + networkCat);
const_cast<int&>(protocol) = properties->getPropertyAsInt(keyBase + protocolCat);
const_cast<int&>(retry) = properties->getPropertyAsInt(keyBase + retryCat);
+ const_cast<int&>(location) = properties->getPropertyAsInt(keyBase + locationCat);
}
diff --git a/cpp/src/Ice/TraceLevels.h b/cpp/src/Ice/TraceLevels.h
index ea2cec28fb9..c761141e3fc 100644
--- a/cpp/src/Ice/TraceLevels.h
+++ b/cpp/src/Ice/TraceLevels.h
@@ -32,6 +32,9 @@ public:
const int retry;
const char* retryCat;
+
+ const int location;
+ const char* locationCat;
};
}
diff --git a/cpp/src/IcePack/.depend b/cpp/src/IcePack/.depend
index 57fcf10e836..552d55aa8a6 100644
--- a/cpp/src/IcePack/.depend
+++ b/cpp/src/IcePack/.depend
@@ -1,9 +1,15 @@
Admin.o: Admin.cpp ../../include/IcePack/Admin.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
-Grammar.o: Grammar.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
-Scanner.o: Scanner.cpp ../../include/IceUtil/Config.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h ../IcePack/Grammar.h
-Parser.o: Parser.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
-Client.o: Client.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
-Server.o: Server.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdminI.h ../../include/IcePack/Admin.h ../IcePack/Forward.h ../../include/IcePack/AdminF.h ../IcePack/Activator.h ../../include/IceUtil/Thread.h
-Forward.o: Forward.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Forward.h ../../include/IcePack/AdminF.h ../IcePack/Activator.h ../../include/IceUtil/Thread.h ../../include/IcePack/Admin.h
-AdminI.o: AdminI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdminI.h ../../include/IcePack/Admin.h
-Activator.o: Activator.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Activator.h ../../include/IceUtil/Thread.h ../../include/IcePack/Admin.h
+ServerManager.o: ServerManager.cpp ../IcePack/ServerManager.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/IcePack/Admin.h ../IcePack/AdapterManager.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+AdapterManager.o: AdapterManager.cpp ../IcePack/AdapterManager.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/IcePack/Admin.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+Activator.o: Activator.cpp ../IcePack/Activator.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../IcePack/ServerManagerF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+Grammar.o: Grammar.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
+Scanner.o: Scanner.cpp ../../include/IceUtil/Config.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h ../IcePack/Grammar.h
+Parser.o: Parser.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
+Client.o: Client.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/Parser.h ../../include/IcePack/Admin.h
+Server.o: Server.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/LocatorI.h ../../include/Ice/Locator.h ../IcePack/AdapterManagerF.h ../IcePack/LocatorRegistryI.h ../IcePack/ServerManagerI.h ../IcePack/ServerManager.h ../../include/IcePack/Admin.h ../IcePack/AdapterManager.h ../IcePack/Activator.h ../IcePack/ServerManagerF.h ../IcePack/AdapterManagerI.h ../IcePack/AdminI.h ../IcePack/ActivatorI.h ../../include/IceUtil/Thread.h
+AdapterManagerI.o: AdapterManagerI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdapterManagerI.h ../IcePack/AdapterManager.h ../../include/IcePack/Admin.h ../IcePack/ServerManager.h
+ServerManagerI.o: ServerManagerI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/Functional.h ../../include/IceUtil/Functional.h ../IcePack/ServerManagerI.h ../IcePack/ServerManager.h ../../include/IcePack/Admin.h ../IcePack/AdapterManager.h ../IcePack/Activator.h ../IcePack/ServerManagerF.h
+LocatorI.o: LocatorI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdapterManager.h ../../include/IcePack/Admin.h ../IcePack/LocatorI.h ../../include/Ice/Locator.h ../IcePack/AdapterManagerF.h
+LocatorRegistryI.o: LocatorRegistryI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdapterManager.h ../../include/IcePack/Admin.h ../IcePack/LocatorRegistryI.h ../../include/Ice/Locator.h ../IcePack/AdapterManagerF.h
+AdminI.o: AdminI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/AdminI.h ../../include/IcePack/Admin.h ../IcePack/ServerManagerF.h ../IcePack/AdapterManagerF.h ../IcePack/ServerManager.h ../IcePack/AdapterManager.h
+ActivatorI.o: ActivatorI.cpp ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/IceUtil/Time.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/PluginF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/LocatorF.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../IcePack/ActivatorI.h ../../include/IceUtil/Thread.h ../IcePack/Activator.h ../IcePack/ServerManagerF.h ../../include/IcePack/Admin.h ../IcePack/ServerManager.h ../IcePack/AdapterManager.h
diff --git a/cpp/src/IcePack/Activator.ice b/cpp/src/IcePack/Activator.ice
new file mode 100644
index 00000000000..cc31bd68497
--- /dev/null
+++ b/cpp/src/IcePack/Activator.ice
@@ -0,0 +1,34 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_ACTIVATOR_ICE
+#define ICE_PACK_ACTIVATOR_ICE
+
+#include <IcePack/ServerManagerF.ice>
+
+module IcePack
+{
+
+interface Activator
+{
+ /**
+ *
+ * Activate a server.
+ *
+ * @param server The server to activate.
+ *
+ **/
+ bool activate(Server* server);
+};
+
+};
+
+#endif
+
diff --git a/cpp/src/IcePack/Activator.cpp b/cpp/src/IcePack/ActivatorI.cpp
index 9abc223b39e..1a522510090 100644
--- a/cpp/src/IcePack/Activator.cpp
+++ b/cpp/src/IcePack/ActivatorI.cpp
@@ -13,17 +13,19 @@
#endif
#include <Ice/Ice.h>
-#include <IcePack/Activator.h>
+#include <IcePack/ActivatorI.h>
#include <IcePack/Admin.h>
+#include <IcePack/ServerManager.h>
#include <fcntl.h>
using namespace std;
using namespace Ice;
using namespace IcePack;
-IcePack::Activator::Activator(const CommunicatorPtr& communicator) :
+IcePack::ActivatorI::ActivatorI(const CommunicatorPtr& communicator, const vector<string>& defaultArgs) :
_communicator(communicator),
- _destroy(false)
+ _destroy(false),
+ _defaultArgs(defaultArgs)
{
int fds[2];
if(pipe(fds) != 0)
@@ -39,30 +41,30 @@ IcePack::Activator::Activator(const CommunicatorPtr& communicator) :
fcntl(_fdIntrRead, F_SETFL, flags);
}
-IcePack::Activator::~Activator()
+IcePack::ActivatorI::~ActivatorI()
{
assert(_destroy);
close(_fdIntrRead);
close(_fdIntrWrite);
- for(map<string, Process>::iterator p = _processes.begin(); p != _processes.end(); ++p)
+ for(vector<Process>::iterator p = _processes.begin(); p != _processes.end(); ++p)
{
- close(p->second.fd);
+ close(p->fd);
}
}
void
-IcePack::Activator::run()
+IcePack::ActivatorI::run()
{
try
{
terminationListener();
}
- catch(const LocalException& ex)
+ catch(const Exception& ex)
{
Error out(_communicator->getLogger());
out << "exception in process termination listener:\n" << ex;
}
- catch (...)
+ catch(...)
{
Error out(_communicator->getLogger());
out << "unknown exception in process termination listener";
@@ -70,7 +72,7 @@ IcePack::Activator::run()
}
void
-IcePack::Activator::destroy()
+IcePack::ActivatorI::destroy()
{
IceUtil::Mutex::Lock sync(*this);
@@ -84,7 +86,7 @@ IcePack::Activator::destroy()
}
bool
-IcePack::Activator::activate(const ServerDescription& desc)
+IcePack::ActivatorI::activate(const ServerPrx& server, const ::Ice::Current&)
{
IceUtil::Mutex::Lock sync(*this);
@@ -93,6 +95,8 @@ IcePack::Activator::activate(const ServerDescription& desc)
return false;
}
+ ServerDescription desc = server->getServerDescription();
+
string path = desc.path;
if(path.empty())
{
@@ -113,14 +117,6 @@ IcePack::Activator::activate(const ServerDescription& desc)
}
//
- // Do nothing if the process exists.
- //
- if(_processes.count(path))
- {
- return false;
- }
-
- //
// Process does not exist, activate and create.
//
int fds[2];
@@ -153,12 +149,53 @@ IcePack::Activator::activate(const ServerDescription& desc)
}
}
- int argc = desc.args.size() + 2;
+ //
+ // Change working directory.
+ //
+ string pwd = desc.pwd;
+ if(!pwd.empty())
+ {
+ string::size_type pos;
+ while((pos = pwd.find("//")) != string::npos)
+ {
+ pwd.erase(pos, 1);
+ }
+ while((pos = pwd.find("/./")) != string::npos)
+ {
+ pwd.erase(pos, 2);
+ }
+
+ if(chdir(pwd.c_str()) == -1)
+ {
+ //
+ // Send any errors to the parent process, using the write
+ // end of the pipe.
+ //
+ SystemException ex(__FILE__, __LINE__);
+ ex.error = getSystemErrno();
+ ostringstream s;
+ s << "can't change working directory to `" << pwd << "':\n" << ex;
+ write(fds[1], s.str().c_str(), s.str().length());
+ close(fds[1]);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ //
+ // Compute arguments.
+ //
+ int argc = desc.args.size() + _defaultArgs.size() + 2;
char** argv = static_cast<char**>(malloc(argc * sizeof(char*)));
argv[0] = strdup(path.c_str());
- for(unsigned int i = 0; i < desc.args.size(); ++i)
+ unsigned int i = 0;
+ vector<string>::const_iterator q;
+ for(q = desc.args.begin(); q != desc.args.end(); ++q, ++i)
{
- argv[i + 1] = strdup(desc.args[i].c_str());
+ argv[i + 1] = strdup(q->c_str());
+ }
+ for(q = _defaultArgs.begin(); q != _defaultArgs.end(); ++q, ++i)
+ {
+ argv[i + 1] = strdup(q->c_str());
}
argv[argc - 1] = 0;
@@ -184,12 +221,13 @@ IcePack::Activator::activate(const ServerDescription& desc)
Process process;
process.pid = pid;
process.fd = fds[0];
- _processes[path] = process;
-
+ process.server = server;
+ _processes.push_back(process);
+
int flags = fcntl(process.fd, F_GETFL);
flags |= O_NONBLOCK;
fcntl(process.fd, F_SETFL, flags);
-
+
setInterrupt();
}
@@ -197,7 +235,7 @@ IcePack::Activator::activate(const ServerDescription& desc)
}
void
-IcePack::Activator::terminationListener()
+IcePack::ActivatorI::terminationListener()
{
while(true)
{
@@ -214,9 +252,9 @@ IcePack::Activator::terminationListener()
return;
}
- for(map<string, Process>::iterator p = _processes.begin(); p != _processes.end(); ++p)
+ for(vector<Process>::iterator p = _processes.begin(); p != _processes.end(); ++p)
{
- int fd = p->second.fd;
+ int fd = p->fd;
FD_SET(fd, &fdSet);
if(maxFd < fd)
{
@@ -254,48 +292,68 @@ IcePack::Activator::terminationListener()
return;
}
- map<string, Process>::iterator p = _processes.begin();
+ vector<Process>::iterator p = _processes.begin();
while(p != _processes.end())
{
- int fd = p->second.fd;
+ int fd = p->fd;
if(FD_ISSET(fd, &fdSet))
{
char s[16];
- int ret = read(fd, &s, 16);
+ int ret;
+ string message;
+
+ //
+ // Read the message over the pipe.
+ //
+ while((ret = read(fd, &s, 16)) > 0)
+ {
+ message.append(s, ret);
+ }
+
if(ret == -1)
{
- SystemException ex(__FILE__, __LINE__);
- ex.error = getSystemErrno();
- throw ex;
+ if(errno != EAGAIN || message.empty())
+ {
+ SystemException ex(__FILE__, __LINE__);
+ ex.error = getSystemErrno();
+ throw ex;
+ }
+
+ ++p;
}
else if(ret == 0)
{
+ ServerPrx server = p->server;
+
//
// If the pipe was closed, the process has
// terminated.
//
- map<string, Process>::iterator q = p;
- ++p;
- _processes.erase(q);
+ p = _processes.erase(p);
close(fd);
- }
- else
- {
+
//
- // Other messages that are sent down the pipe
- // are interpreted as error messages and
- // logged as error.
+ // Notify the server it has terminated.
//
- string err;
- do
+ try
+ {
+ server->terminationCallback();
+ }
+ catch(const Ice::ObjectAdapterDeactivatedException&)
{
- err.append(s, ret);
- ret = read(fd, &s, 16);
+ //
+ // Expected when IcePack is shutdown.
+ //
}
- while(ret != 0);
+ }
+ //
+ // Log the received message.
+ //
+ if(!message.empty())
+ {
Error out(_communicator->getLogger());
- out << err;
+ out << message;
}
}
else
@@ -308,7 +366,7 @@ IcePack::Activator::terminationListener()
}
void
-IcePack::Activator::clearInterrupt()
+IcePack::ActivatorI::clearInterrupt()
{
char s[32]; // Clear up to 32 interrupts at once.
while(read(_fdIntrRead, s, 32) == 32)
@@ -317,7 +375,7 @@ IcePack::Activator::clearInterrupt()
}
void
-IcePack::Activator::setInterrupt()
+IcePack::ActivatorI::setInterrupt()
{
char c = 0;
write(_fdIntrWrite, &c, 1);
diff --git a/cpp/src/IcePack/Activator.h b/cpp/src/IcePack/ActivatorI.h
index c5bb6943c1b..540653ee79c 100644
--- a/cpp/src/IcePack/Activator.h
+++ b/cpp/src/IcePack/ActivatorI.h
@@ -1,55 +1,58 @@
-// **********************************************************************
-//
-// Copyright (c) 2001
-// MutableRealms, Inc.
-// Huntsville, AL, USA
-//
-// All Rights Reserved
-//
-// **********************************************************************
-
-#ifndef ICE_PACK_ACTIVATOR_H
-#define ICE_PACK_ACTIVATOR_H
-
-#include <IceUtil/Thread.h>
-
-namespace IcePack
-{
-
-struct ServerDescription;
-
-class Activator : public IceUtil::Thread, public IceUtil::Mutex
-{
-public:
-
- Activator(const Ice::CommunicatorPtr&);
- virtual ~Activator();
-
- virtual void run();
- void destroy();
- bool activate(const IcePack::ServerDescription&);
-
-private:
-
- void terminationListener();
- void clearInterrupt();
- void setInterrupt();
-
- struct Process
- {
- pid_t pid;
- int fd;
- };
-
- Ice::CommunicatorPtr _communicator;
- std::map<std::string, Process> _processes;
- bool _destroy;
- int _fdIntrRead;
- int _fdIntrWrite;
-};
-
-typedef IceUtil::Handle<Activator> ActivatorPtr;
-
-}
-
-#endif
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_ACTIVATOR_H
+#define ICE_PACK_ACTIVATOR_H
+
+#include <IceUtil/Thread.h>
+#include <IcePack/Activator.h>
+#include <IcePack/ServerManagerF.h>
+
+namespace IcePack
+{
+
+class ActivatorI : public Activator, public IceUtil::Thread, public IceUtil::Mutex
+{
+public:
+
+ ActivatorI(const Ice::CommunicatorPtr&, const std::vector<std::string>&);
+ virtual ~ActivatorI();
+
+ virtual void run();
+ void destroy();
+
+ virtual bool activate(const ::IcePack::ServerPrx&, const ::Ice::Current&);
+
+private:
+
+ void terminationListener();
+ void clearInterrupt();
+ void setInterrupt();
+
+ struct Process
+ {
+ pid_t pid;
+ int fd;
+ ServerPrx server;
+ };
+
+ Ice::CommunicatorPtr _communicator;
+ std::vector<Process> _processes;
+ bool _destroy;
+ int _fdIntrRead;
+ int _fdIntrWrite;
+ std::vector<std::string> _defaultArgs;
+};
+
+typedef IceUtil::Handle<ActivatorI> ActivatorIPtr;
+
+}
+
+#endif
diff --git a/cpp/src/IcePack/AdapterManager.ice b/cpp/src/IcePack/AdapterManager.ice
new file mode 100644
index 00000000000..301a6b06972
--- /dev/null
+++ b/cpp/src/IcePack/AdapterManager.ice
@@ -0,0 +1,176 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_ADAPTER_MANAGER_ICE
+#define ICE_PACK_ADAPTER_MANAGER_ICE
+
+#include <IcePack/Admin.ice>
+
+module IcePack
+{
+
+/**
+ *
+ * Forward declaration.
+ *
+ */
+class Server;
+
+/**
+ *
+ * This exception is raised if the activation of an adapter exceed the
+ * time specified by the <literal>IcePack.Activation.WaitTime</literal>
+ * configuration variable.
+ *
+ **/
+exception AdapterActivationTimeoutException
+{
+ string message;
+};
+
+struct AdapterDescription
+{
+ /**
+ *
+ * Adapter name.
+ *
+ **/
+ string name;
+
+ /**
+ *
+ * Server proxy to which this adapter is associated to. If null,
+ * no automatic activation of the server will be performed.
+ *
+ **/
+ Server* server;
+};
+
+class Adapter
+{
+ /**
+ *
+ * Adapter description.
+ *
+ * @return The adapter description.
+ *
+ **/
+ AdapterDescription getAdapterDescription();
+
+ /**
+ *
+ * Get a proxy for this adapter.
+ *
+ * @param activate If true and if the adapter is registered with a
+ * server, the server will be started if the adapter status is
+ * inactive. If false, no activation will be performed and the
+ * last known direct proxy will be returned.
+ *
+ * @return A direct proxy for the adapter.
+ *
+ * @throws ActivationTimeoutException Raised if the time needed to
+ * activate the adapter exceeded the time specified by the
+ * <literal>IcePack.Activation.WaitTime</literal> configuration
+ * variable.
+ *
+ **/
+ Object* getDirectProxy(bool activate)
+ throws AdapterActivationTimeoutException;
+
+ /**
+ *
+ * Set the active proxy created from the adapter.
+ *
+ **/
+ void setDirectProxy(Object* proxy);
+
+ /**
+ *
+ * Mark the adapter as active.
+ *
+ **/
+ void markAsActive();
+
+ /**
+ *
+ * Mark the adapter as inactive.
+ *
+ **/
+ void markAsInactive();
+
+ /**
+ *
+ * The description of this objet adapter.
+ *
+ */
+ AdapterDescription _description;
+
+ /**
+ *
+ * A direct proxy created from the adapter.
+ *
+ */
+ Object* _proxy;
+
+ /**
+ *
+ * The state of the adapter, true if active false otherwise.
+ *
+ */
+ bool _active;
+};
+
+/**
+ *
+ * A sequence of adapter proxies.
+ *
+ **/
+sequence<Adapter*> Adapters;
+
+class AdapterManager
+{
+ /**
+ *
+ * Create an adapter.
+ *
+ **/
+ Adapter* create(AdapterDescription description)
+ throws AdapterExistsException;
+
+ /**
+ *
+ * Find an adapter and return its proxy.
+ *
+ * @param name Name of the adapter.
+ *
+ * @return Adapter proxy.
+ *
+ **/
+ Adapter* findByName(string name);
+
+ /**
+ *
+ * Remove an adapter.
+ *
+ **/
+ void remove(string name)
+ throws AdapterNotExistException;
+
+ /**
+ *
+ * Get all adapter names.
+ *
+ **/
+ AdapterNames getAll();
+};
+
+};
+
+#endif
diff --git a/cpp/src/IcePack/AdapterManagerF.ice b/cpp/src/IcePack/AdapterManagerF.ice
new file mode 100644
index 00000000000..21c01c24752
--- /dev/null
+++ b/cpp/src/IcePack/AdapterManagerF.ice
@@ -0,0 +1,23 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_ADAPTER_MANAGER_F_ICE
+#define ICE_PACK_ADAPTER_MANAGER_F_ICE
+
+module IcePack
+{
+
+class Adapter;
+interface AdapterManager;
+
+};
+
+#endif
+
diff --git a/cpp/src/IcePack/AdapterManagerI.cpp b/cpp/src/IcePack/AdapterManagerI.cpp
new file mode 100644
index 00000000000..8b5eccfeec6
--- /dev/null
+++ b/cpp/src/IcePack/AdapterManagerI.cpp
@@ -0,0 +1,200 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <IcePack/AdapterManagerI.h>
+#include <IcePack/ServerManager.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IcePack;
+
+IcePack::AdapterI::AdapterI(Int waitTime) :
+ _waitTime(waitTime)
+{
+}
+
+IcePack::AdapterI::~AdapterI()
+{
+}
+
+AdapterDescription
+IcePack::AdapterI::getAdapterDescription(const Current&)
+{
+ return _description;
+}
+
+ObjectPrx
+IcePack::AdapterI::getDirectProxy(bool activate, const Current&)
+{
+ ::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+
+ if(!activate || !_description.server || _active)
+ {
+ return _proxy;
+ }
+
+ //
+ // If there's a server associated to this adapter, try to start
+ // the server and wait for the adapter state to change.
+ //
+ if(_description.server && _description.server->start())
+ {
+ //
+ // Wait for this adapter to be marked as active or the
+ // activation timeout.
+ //
+ while(!_active)
+ {
+ bool notify = timedWait(IceUtil::Time::seconds(_waitTime));
+ if(!notify)
+ {
+ throw AdapterActivationTimeoutException();
+ }
+ }
+ }
+
+ return _proxy;
+}
+
+void
+IcePack::AdapterI::setDirectProxy(const ObjectPrx& proxy, const Current&)
+{
+ ::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+ _proxy = proxy;
+}
+
+void
+IcePack::AdapterI::markAsActive(const Current&)
+{
+ ::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+ _active = true;
+ notifyAll();
+}
+
+void
+IcePack::AdapterI::markAsInactive(const Current&)
+{
+ ::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+ _active = false;
+ notifyAll();
+}
+
+class AdapterNameToAdapter
+{
+public:
+
+ AdapterNameToAdapter(const ObjectAdapterPtr& adapter) :
+ _adapter(adapter)
+ {
+ }
+
+ AdapterPrx
+ operator()(const string& name)
+ {
+ Identity ident;
+ ident.category = "adapter";
+ ident.name = name;
+ return AdapterPrx::uncheckedCast(_adapter->createProxy(ident));
+ }
+
+private:
+
+ ObjectAdapterPtr _adapter;
+};
+
+IcePack::AdapterManagerI::AdapterManagerI(const ObjectAdapterPtr& adapter) :
+ _adapter(adapter)
+{
+ Ice::PropertiesPtr properties = adapter->getCommunicator()->getProperties();
+ _waitTime = properties->getPropertyAsIntWithDefault("IcePack.Activation.WaitTime", 10);
+}
+
+AdapterPrx
+IcePack::AdapterManagerI::create(const AdapterDescription& description, const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ AdapterPrx adapter = AdapterNameToAdapter(_adapter)(description.name);
+ try
+ {
+ adapter->ice_ping();
+
+ //
+ // The adapter already exists.
+ //
+ throw AdapterExistsException();
+ }
+ catch(const ObjectNotExistException&)
+ {
+ }
+
+ AdapterPtr adapterI = new AdapterI(_waitTime);
+ adapterI->_description = description;
+ adapterI->_active = false;
+ adapterI->_proxy = 0;
+
+ //
+ // Add this adapter name to our adapter names internal set.
+ //
+ _adapterNames.insert(description.name);
+
+ return AdapterPrx::uncheckedCast(_adapter->add(adapterI, adapter->ice_getIdentity()));
+}
+
+AdapterPrx
+IcePack::AdapterManagerI::findByName(const string& name, const Current&)
+{
+ AdapterPrx adapter = AdapterNameToAdapter(_adapter)(name);
+ try
+ {
+ adapter->ice_ping();
+ return adapter;
+ }
+ catch(const ObjectNotExistException&)
+ {
+ return 0;
+ }
+}
+
+void
+IcePack::AdapterManagerI::remove(const string& name, const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ AdapterPrx adapter = AdapterNameToAdapter(_adapter)(name);
+ try
+ {
+ adapter->ice_ping();
+ }
+ catch(const ObjectNotExistException&)
+ {
+ throw AdapterNotExistException();
+ }
+
+ _adapter->remove(adapter->ice_getIdentity());
+
+ //
+ // Remove the adapter name from our internal name set.
+ //
+ _adapterNames.erase(_adapterNames.find(name));
+}
+
+AdapterNames
+IcePack::AdapterManagerI::getAll(const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ AdapterNames names;
+ names.reserve(_adapterNames.size());
+ copy(_adapterNames.begin(), _adapterNames.end(), back_inserter(names));
+
+ return names;
+}
diff --git a/cpp/src/IcePack/AdapterManagerI.h b/cpp/src/IcePack/AdapterManagerI.h
new file mode 100644
index 00000000000..c4e6ab15352
--- /dev/null
+++ b/cpp/src/IcePack/AdapterManagerI.h
@@ -0,0 +1,60 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_ADAPTER_MANAGER_I_H
+#define ICE_PACK_ADAPTER_MANAGER_I_H
+
+#include <IceUtil/Mutex.h>
+#include <IceUtil/Monitor.h>
+#include <IcePack/AdapterManager.h>
+#include <set>
+
+namespace IcePack
+{
+
+class AdapterI : public Adapter, public IceUtil::Monitor< ::IceUtil::Mutex>
+{
+public:
+
+ AdapterI(::Ice::Int);
+ virtual ~AdapterI();
+
+ virtual AdapterDescription getAdapterDescription(const ::Ice::Current&);
+ virtual ::Ice::ObjectPrx getDirectProxy(bool, const ::Ice::Current&);
+ virtual void setDirectProxy(const ::Ice::ObjectPrx&,const ::Ice::Current&);
+ virtual void markAsActive(const ::Ice::Current&);
+ virtual void markAsInactive(const ::Ice::Current&);
+
+private:
+
+ ::Ice::Int _waitTime;
+};
+
+class AdapterManagerI : public AdapterManager, public IceUtil::Mutex
+{
+public:
+
+ AdapterManagerI(const Ice::ObjectAdapterPtr&);
+
+ virtual AdapterPrx create(const AdapterDescription&, const ::Ice::Current&);
+ virtual AdapterPrx findByName(const ::std::string&, const ::Ice::Current&);
+ virtual void remove(const ::std::string&, const ::Ice::Current&);
+ virtual AdapterNames getAll(const ::Ice::Current&);
+
+private:
+
+ ::Ice::ObjectAdapterPtr _adapter;
+ ::std::set< ::std::string> _adapterNames;
+ ::Ice::Int _waitTime;
+};
+
+}
+
+#endif
diff --git a/cpp/src/IcePack/AdminI.cpp b/cpp/src/IcePack/AdminI.cpp
index f9cd01dc2a8..fd6ff00c17c 100644
--- a/cpp/src/IcePack/AdminI.cpp
+++ b/cpp/src/IcePack/AdminI.cpp
@@ -10,58 +10,139 @@
#include <Ice/Ice.h>
#include <IcePack/AdminI.h>
+#include <IcePack/ServerManager.h>
+#include <IcePack/AdapterManager.h>
using namespace std;
using namespace Ice;
using namespace IcePack;
-IcePack::AdminI::AdminI(const CommunicatorPtr& communicator) :
- _communicator(communicator)
+IcePack::AdminI::AdminI(const CommunicatorPtr& communicator, const ServerManagerPrx& serverManager,
+ const AdapterManagerPrx& adapterManager) :
+ _communicator(communicator),
+ _serverManager(serverManager),
+ _adapterManager(adapterManager)
{
}
void
-IcePack::AdminI::add(const ServerDescription& desc, const Ice::Current&)
+IcePack::AdminI::addServer(const ServerDescription& desc, const Current&)
{
- IceUtil::Mutex::Lock sync(*this);
+ _serverManager->create(desc);
+}
- if(desc.obj)
+ServerDescription
+IcePack::AdminI::getServerDescription(const string& name, const Current&)
+{
+ ServerPrx server = _serverManager->findByName(name);
+ if(server)
{
- _serverDescriptions[desc.obj->ice_getIdentity()] = desc;
+ try
+ {
+ return server->getServerDescription();
+ }
+ catch(const ObjectNotExistException&)
+ {
+ }
}
+ throw ServerNotExistException();
}
-void
-IcePack::AdminI::remove(const Identity& ident, const Ice::Current&)
+ServerState
+IcePack::AdminI::getServerState(const string& name, const Current&)
{
- IceUtil::Mutex::Lock sync(*this);
- _serverDescriptions.erase(ident);
+ ServerPrx server = _serverManager->findByName(name);
+ if(server)
+ {
+ try
+ {
+ return server->getState();
+ }
+ catch(const ObjectNotExistException&)
+ {
+ }
+ }
+ throw ServerNotExistException();
}
-ServerDescription
-IcePack::AdminI::find(const Identity& ident, const Ice::Current&)
+bool
+IcePack::AdminI::startServer(const string& name, const Current&)
{
- IceUtil::Mutex::Lock sync(*this);
-
- ServerDescriptions::iterator p = _serverDescriptions.find(ident);
- if(p != _serverDescriptions.end())
+ ServerPrx server = _serverManager->findByName(name);
+ if(server)
{
- return p->second;
+ try
+ {
+ return server->start();
+ }
+ catch(const ObjectNotExistException&)
+ {
+ }
}
- else
+ throw ServerNotExistException();
+}
+
+void
+IcePack::AdminI::removeServer(const string& name, const Current&)
+{
+ _serverManager->remove(name);
+}
+
+ServerNames
+IcePack::AdminI::getAllServerNames(const Current&)
+{
+ return _serverManager->getAll();
+}
+
+void
+IcePack::AdminI::addAdapterWithEndpoints(const string& name, const string& endpoints, const Current&)
+{
+ AdapterDescription desc;
+ desc.name = name;
+
+ //
+ // Create the adapter.
+ //
+ AdapterPrx adapter = _adapterManager->create(desc);
+
+ //
+ // Set the adapter direct proxy.
+ //
+ ObjectPrx object = _communicator->stringToProxy("dummy:" + endpoints);
+ adapter->setDirectProxy(object);
+}
+
+void
+IcePack::AdminI::removeAdapter(const string& name, const Current&)
+{
+ _adapterManager->remove(name);
+}
+
+string
+IcePack::AdminI::getAdapterEndpoints(const string& name, const Current&)
+{
+ AdapterPrx adapter = _adapterManager->findByName(name);
+ if(adapter)
{
- return ServerDescription();
+ try
+ {
+ return _communicator->proxyToString(adapter->getDirectProxy(false));
+ }
+ catch(const ObjectNotExistException&)
+ {
+ }
}
+ throw AdapterNotExistException();
}
-ServerDescriptions
-IcePack::AdminI::getAll(const Ice::Current&)
+AdapterNames
+IcePack::AdminI::getAllAdapterNames(const Current&)
{
- return _serverDescriptions;
+ return _adapterManager->getAll();
}
void
-IcePack::AdminI::shutdown(const Ice::Current&)
+IcePack::AdminI::shutdown(const Current&)
{
_communicator->shutdown();
}
diff --git a/cpp/src/IcePack/AdminI.h b/cpp/src/IcePack/AdminI.h
index 6c000d2cbcc..77b57fc299f 100644
--- a/cpp/src/IcePack/AdminI.h
+++ b/cpp/src/IcePack/AdminI.h
@@ -12,6 +12,8 @@
#define ICE_PACK_ADMIN_I_H
#include <IcePack/Admin.h>
+#include <IcePack/ServerManagerF.h>
+#include <IcePack/AdapterManagerF.h>
namespace IcePack
{
@@ -20,17 +22,27 @@ class AdminI : public Admin, public IceUtil::Mutex
{
public:
- AdminI(const Ice::CommunicatorPtr&);
+ AdminI(const Ice::CommunicatorPtr&, const ServerManagerPrx&, const AdapterManagerPrx&);
+
+ virtual void addServer(const ServerDescription&, const Ice::Current&);
+ virtual ServerDescription getServerDescription(const ::std::string&, const Ice::Current&);
+ virtual ServerState getServerState(const ::std::string&, const Ice::Current&);
+ virtual bool startServer(const ::std::string&, const Ice::Current&);
+ virtual void removeServer(const ::std::string&, const Ice::Current&);
+ virtual ServerNames getAllServerNames(const Ice::Current&);
+
+ virtual void addAdapterWithEndpoints(const ::std::string&, const ::std::string&, const ::Ice::Current&);
+ virtual void removeAdapter(const ::std::string&, const ::Ice::Current&);
+ virtual ::std::string getAdapterEndpoints(const ::std::string&, const ::Ice::Current&);
+ virtual AdapterNames getAllAdapterNames(const ::Ice::Current&);
- virtual void add(const ServerDescription&, const Ice::Current&);
- virtual void remove(const Ice::Identity&, const Ice::Current&);
- virtual ServerDescription find(const Ice::Identity&, const Ice::Current&);
- virtual ServerDescriptions getAll(const Ice::Current&);
virtual void shutdown(const Ice::Current&);
private:
Ice::CommunicatorPtr _communicator;
+ ServerManagerPrx _serverManager;
+ AdapterManagerPrx _adapterManager;
};
}
diff --git a/cpp/src/IcePack/Client.cpp b/cpp/src/IcePack/Client.cpp
index fe379cae26e..8b1be751591 100644
--- a/cpp/src/IcePack/Client.cpp
+++ b/cpp/src/IcePack/Client.cpp
@@ -142,19 +142,12 @@ Client::run(int argc, char* argv[])
return EXIT_FAILURE;
}
- const char* adminEndpointsProperty = "IcePack.Admin.Endpoints";
- string adminEndpoints = properties->getProperty(adminEndpointsProperty);
- if(adminEndpoints.empty())
- {
- cerr << appName() << ": property `" << adminEndpointsProperty << "' is not set" << endl;
- return EXIT_FAILURE;
- }
+ Ice::ObjectPrx base = communicator()->stringToProxy("IcePack/admin@IcePack.Admin");
- Ice::ObjectPrx base = communicator()->stringToProxy("admin:" + adminEndpoints);
AdminPrx admin = AdminPrx::checkedCast(base);
if(!admin)
{
- cerr << appName() << ": `" << adminEndpoints << "' are no valid administrative endpoints" << endl;
+ cerr << appName() << ": `" << "' are no valid administrative endpoints" << endl;
return EXIT_FAILURE;
}
diff --git a/cpp/src/IcePack/Grammar.y b/cpp/src/IcePack/Grammar.y
index 51e02179c67..5d67cabc7e0 100644
--- a/cpp/src/IcePack/Grammar.y
+++ b/cpp/src/IcePack/Grammar.y
@@ -35,11 +35,21 @@ yyerror(const char* s)
%token ICE_PACK_HELP
%token ICE_PACK_EXIT
+%token ICE_PACK_SERVER
+%token ICE_PACK_ADAPTER
%token ICE_PACK_ADD
%token ICE_PACK_REMOVE
%token ICE_PACK_LIST
%token ICE_PACK_SHUTDOWN
%token ICE_PACK_STRING
+%token ICE_PACK_START
+%token ICE_PACK_DESCRIBE
+%token ICE_PACK_STATE
+%token ICE_PACK_ENDPOINTS
+%token ICE_PACK_ADAPTERS
+%token ICE_PACK_OPTIONS
+%token ICE_PACK_OPEN_BRACKET
+%token ICE_PACK_CLOSE_BRACKET
%%
@@ -76,17 +86,44 @@ command
{
return 0;
}
-| ICE_PACK_ADD strings ';'
+| ICE_PACK_SERVER ICE_PACK_ADD server_add_options ';'
{
- parser->add($2);
}
-| ICE_PACK_REMOVE strings ';'
+| ICE_PACK_SERVER ICE_PACK_START strings ';'
{
- parser->remove($2);
+ parser->startServer($3);
}
-| ICE_PACK_LIST ';'
+| ICE_PACK_SERVER ICE_PACK_DESCRIBE strings ';'
{
- parser->listAll();
+ parser->describeServer($3);
+}
+| ICE_PACK_SERVER ICE_PACK_STATE strings ';'
+{
+ parser->stateServer($3);
+}
+| ICE_PACK_SERVER ICE_PACK_REMOVE strings ';'
+{
+ parser->removeServer($3);
+}
+| ICE_PACK_SERVER ICE_PACK_LIST ';'
+{
+ parser->listAllServers();
+}
+| ICE_PACK_ADAPTER ICE_PACK_ADD strings ';'
+{
+ parser->addAdapter($3);
+}
+| ICE_PACK_ADAPTER ICE_PACK_ENDPOINTS strings ';'
+{
+ parser->endpointsAdapter($3);
+}
+| ICE_PACK_ADAPTER ICE_PACK_REMOVE strings ';'
+{
+ parser->removeAdapter($3);
+}
+| ICE_PACK_ADAPTER ICE_PACK_LIST ';'
+{
+ parser->listAllAdapters();
}
| ICE_PACK_SHUTDOWN ';'
{
@@ -102,6 +139,54 @@ command
;
// ----------------------------------------------------------------------
+server_add_options
+// ----------------------------------------------------------------------
+: strings adapters options
+{
+ parser->addServer($1, $2, $3);
+}
+| strings options adapters
+{
+ parser->addServer($1, $3, $2);
+}
+| strings adapters
+{
+ parser->addServer($1, $2, list<string>());
+}
+| strings options
+{
+ parser->addServer($1, list<string>(), $2);
+}
+| strings
+{
+ parser->addServer($1, list<string>(), list<string>());
+};
+
+// ----------------------------------------------------------------------
+adapters
+// ----------------------------------------------------------------------
+: ICE_PACK_ADAPTERS ICE_PACK_OPEN_BRACKET strings ICE_PACK_CLOSE_BRACKET
+{
+ $$ = $3;
+}
+| ICE_PACK_ADAPTERS ICE_PACK_OPEN_BRACKET ICE_PACK_CLOSE_BRACKET
+{
+ $$ = list<string>();
+};
+
+// ----------------------------------------------------------------------
+options
+// ----------------------------------------------------------------------
+: ICE_PACK_OPTIONS ICE_PACK_OPEN_BRACKET strings ICE_PACK_CLOSE_BRACKET
+{
+ $$ = $3;
+}
+| ICE_PACK_OPTIONS ICE_PACK_OPEN_BRACKET ICE_PACK_CLOSE_BRACKET
+{
+ $$ = list<string>();
+};
+
+// ----------------------------------------------------------------------
strings
// ----------------------------------------------------------------------
: ICE_PACK_STRING strings
diff --git a/cpp/src/IcePack/LocatorI.cpp b/cpp/src/IcePack/LocatorI.cpp
new file mode 100644
index 00000000000..28e62fa48f3
--- /dev/null
+++ b/cpp/src/IcePack/LocatorI.cpp
@@ -0,0 +1,51 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+
+#include <IcePack/AdapterManager.h>
+#include <IcePack/LocatorI.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IcePack;
+
+IcePack::LocatorI::LocatorI(const AdapterManagerPrx& adapters, const LocatorRegistryPrx& registry) :
+ _adapters(adapters),
+ _registry(registry)
+{
+}
+
+Ice::ObjectPrx
+IcePack::LocatorI::findAdapterByName(const string& name, const Current&)
+{
+ try
+ {
+ AdapterPrx adapter = _adapters->findByName(name);
+ if(adapter)
+ {
+ return adapter->getDirectProxy(true);
+ }
+ }
+ catch (const AdapterActivationTimeoutException&)
+ {
+ }
+ catch (const ObjectNotExistException&)
+ {
+ }
+
+ return 0;
+}
+
+Ice::LocatorRegistryPrx
+IcePack::LocatorI::getRegistry(const Current&)
+{
+ return _registry;
+}
diff --git a/cpp/src/IcePack/LocatorI.h b/cpp/src/IcePack/LocatorI.h
new file mode 100644
index 00000000000..8d7e316a6d5
--- /dev/null
+++ b/cpp/src/IcePack/LocatorI.h
@@ -0,0 +1,38 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_LOCATOR_I_H
+#define ICE_PACK_LOCATOR_I_H
+
+#include <Ice/Locator.h>
+#include <Ice/ProxyF.h>
+#include <IcePack/AdapterManagerF.h>
+
+namespace IcePack
+{
+
+class LocatorI : public ::Ice::Locator
+{
+public:
+ LocatorI(const AdapterManagerPrx&, const ::Ice::LocatorRegistryPrx&);
+
+ virtual ::Ice::ObjectPrx findAdapterByName(const std::string&, const ::Ice::Current&);
+
+ virtual ::Ice::LocatorRegistryPrx getRegistry(const ::Ice::Current&);
+
+private:
+
+ AdapterManagerPrx _adapters;
+ ::Ice::LocatorRegistryPrx _registry;
+};
+
+}
+
+#endif
diff --git a/cpp/src/IcePack/LocatorRegistryI.cpp b/cpp/src/IcePack/LocatorRegistryI.cpp
new file mode 100644
index 00000000000..8b961fe9925
--- /dev/null
+++ b/cpp/src/IcePack/LocatorRegistryI.cpp
@@ -0,0 +1,75 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <IcePack/AdapterManager.h>
+#include <IcePack/LocatorRegistryI.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IcePack;
+
+IcePack::LocatorRegistryI::LocatorRegistryI(const AdapterManagerPrx& adapters) :
+ _adapters(adapters)
+{
+}
+
+void
+IcePack::LocatorRegistryI::addAdapter(const string& name, const ObjectPrx& proxy, const Current&)
+{
+ while(true)
+ {
+ //
+ // Get the adapter from the manager.
+ //
+ AdapterPrx adapter = _adapters->findByName(name);
+
+ if(adapter)
+ {
+ //
+ // Set the adapter direct proxy and return.
+ //
+ try
+ {
+ adapter->setDirectProxy(proxy);
+
+ //
+ // The adapter is ready to receive requests even if
+ // it's not active.
+ //
+ adapter->markAsActive();
+
+ return;
+ }
+ catch (const ObjectNotExistException&)
+ {
+ }
+ }
+
+ //
+ // Adapter doesn't exist yet, create the adapter.
+ //
+ AdapterDescription desc;
+ desc.name = name;
+ desc.server = 0;
+
+ try
+ {
+ adapter = _adapters->create(desc);
+ }
+ catch (const AdapterExistsException&)
+ {
+ //
+ // Ignore, another thread probably created at the same
+ // time this adapter.
+ //
+ }
+ }
+}
diff --git a/cpp/src/IcePack/LocatorRegistryI.h b/cpp/src/IcePack/LocatorRegistryI.h
new file mode 100644
index 00000000000..317f228ddab
--- /dev/null
+++ b/cpp/src/IcePack/LocatorRegistryI.h
@@ -0,0 +1,36 @@
+
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_LOCATOR_REGISTRY_I_H
+#define ICE_PACK_LOCATOR_REGISTRY_I_H
+
+#include <Ice/Locator.h>
+#include <Ice/ProxyF.h>
+#include <IcePack/AdapterManagerF.h>
+
+namespace IcePack
+{
+
+class LocatorRegistryI : public Ice::LocatorRegistry
+{
+public:
+ LocatorRegistryI(const AdapterManagerPrx&);
+
+ virtual void addAdapter(const ::std::string&, const ::Ice::ObjectPrx&, const ::Ice::Current&);
+
+private:
+
+ AdapterManagerPrx _adapters;
+};
+
+}
+
+#endif
diff --git a/cpp/src/IcePack/Makefile b/cpp/src/IcePack/Makefile
index a669287f789..e6f9a0bed69 100644
--- a/cpp/src/IcePack/Makefile
+++ b/cpp/src/IcePack/Makefile
@@ -21,7 +21,10 @@ SERVER = $(top_srcdir)/bin/icepack
TARGETS = $(NAME) $(VERSIONED_NAME) $(CLIENT) $(SERVER)
-OBJS = Admin.o
+OBJS = Admin.o \
+ ServerManager.o \
+ AdapterManager.o \
+ Activator.o
COBJS = Grammar.o \
Scanner.o \
@@ -29,9 +32,12 @@ COBJS = Grammar.o \
Client.o
SOBJS = Server.o \
- Forward.o \
+ AdapterManagerI.o \
+ ServerManagerI.o \
+ LocatorI.o \
+ LocatorRegistryI.o \
AdminI.o \
- Activator.o
+ ActivatorI.o
SRCS = $(OBJS:.o=.cpp) \
$(COBJS:.o=.cpp) \
@@ -93,4 +99,41 @@ $(HDIR)/AdminF.h: $(SDIR)/AdminF.ice $(SLICE2CPP)
clean::
rm -f $(HDIR)/AdminF.h
+AdapterManager.h AdapterManager.cpp: AdapterManager.ice $(SLICE2CPP)
+ rm -f AdapterManager.h AdapterManager.cpp
+ $(SLICECMD) -I.. AdapterManager.ice
+
+clean::
+ rm -f AdapterManager.h AdapterManager.cpp
+
+AdapterManagerF.h: AdapterManagerF.ice $(SLICE2CPP)
+ rm -f AdapterManagerF.h AdapterManagerF.cpp
+ $(SLICECMD) -I.. AdapterManagerF.ice
+ rm -f AdapterManagerF.cpp
+
+clean::
+ rm -f AdapterManagerF.h
+
+ServerManager.h ServerManager.cpp: ServerManager.ice $(SLICE2CPP)
+ rm -f ServerManager.h ServerManager.cpp
+ $(SLICECMD) -I.. ServerManager.ice
+
+clean::
+ rm -f ServerManager.h ServerManager.cpp
+
+ServerManagerF.h: ServerManagerF.ice $(SLICE2CPP)
+ rm -f ServerManagerF.h ServerManagerF.cpp
+ $(SLICECMD) -I.. ServerManagerF.ice
+ rm -f ServerManagerF.cpp
+
+clean::
+ rm -f ServerManagerF.h
+
+Activator.h Activator.cpp: Activator.ice $(SLICE2CPP)
+ rm -f Activator.h Activator.cpp
+ $(SLICECMD) -I.. Activator.ice
+
+clean::
+ rm -f Activator.h Activator.cpp
+
include .depend
diff --git a/cpp/src/IcePack/Parser.cpp b/cpp/src/IcePack/Parser.cpp
index d7effc44fd6..56fa971af19 100644
--- a/cpp/src/IcePack/Parser.cpp
+++ b/cpp/src/IcePack/Parser.cpp
@@ -16,6 +16,8 @@
# include <readline/history.h>
#endif
+#include <iterator>
+
using namespace std;
using namespace Ice;
using namespace IcePack;
@@ -41,19 +43,28 @@ IcePack::Parser::usage()
cout <<
"help Print this message.\n"
"exit, quit Exit this program.\n"
- "add PROXY [PATH [ARGS...]] Add PROXY with an optional PATH and program\n"
- " arguments ARGS.\n"
- "remove PROXY Remove PROXY.\n"
- "list List all server descriptions.\n"
+ "server add NAME PATH [PWD] [adapters { NAMES }] [options { OPTIONS }]\n"
+ " Add server NAME with PATH, optional working\n"
+ " directory PWD, adapters and options.\n"
+ "server describe NAME Get server NAME description.\n"
+ "server state NAME Get server NAME state.\n"
+ "server start NAME Starts server NAME.\n"
+ "server remove NAME Remove server NAME.\n"
+ "server list List all server names.\n"
+ "adapter add NAME ENDPOINTS Add adapter NAME with ENDPOINTS.\n"
+ "adapter list List all adapter names.\n"
+ "adapter remove NAME Remove adapter NAME.\n"
+ "adapter endpoints NAME Get adapter NAME endpoints.\n"
"shutdown Shut the IcePack server down.\n";
}
void
-IcePack::Parser::add(const list<string>& args)
+IcePack::Parser::addServer(const list<string>& args, const std::list<std::string>& adapters,
+ const std::list<std::string>& options)
{
- if(args.empty())
+ if(args.size() < 2)
{
- error("`add' requires at least one argument (type `help' for more info)");
+ error("`server add' requires at least two arguments (type `help' for more info)");
return;
}
@@ -61,16 +72,19 @@ IcePack::Parser::add(const list<string>& args)
{
ServerDescription desc;
list<string>::const_iterator p = args.begin();
- desc.obj = _communicator->stringToProxy(*p);
- if(++p != args.end())
+
+ desc.name = *p++;
+ desc.path = *p++;
+
+ if(p != args.end())
{
- desc.path = *p;
- while(++p != args.end())
- {
- desc.args.push_back(*p);
- }
+ desc.pwd = *p++;
}
- _admin->add(desc);
+
+ copy(adapters.begin(), adapters.end(), back_inserter(desc.adapters));
+ copy(options.begin(), options.end(), back_inserter(desc.args));
+
+ _admin->addServer(desc);
}
catch(const Exception& ex)
@@ -82,17 +96,20 @@ IcePack::Parser::add(const list<string>& args)
}
void
-IcePack::Parser::remove(const list<string>& args)
+IcePack::Parser::startServer(const list<string>& args)
{
if(args.size() != 1)
{
- error("`remove' requires exactly one argument (type `help' for more info)");
+ error("`server start' requires exactly one argument (type `help' for more info)");
return;
}
try
{
- _admin->remove(stringToIdentity(args.front()));
+ if(!_admin->startServer(args.front()))
+ {
+ error("The server didn't start successfully");
+ }
}
catch(const Exception& ex)
{
@@ -103,28 +120,70 @@ IcePack::Parser::remove(const list<string>& args)
}
void
-IcePack::Parser::listAll()
+IcePack::Parser::describeServer(const list<string>& args)
{
+ if(args.size() != 1)
+ {
+ error("`server describe' requires exactly one argument (type `help' for more info)");
+ return;
+ }
+
+ try
+ {
+ ServerDescription desc = _admin->getServerDescription(args.front());
+
+ cout << "name = " << desc.name << endl;
+ cout << "path = " << desc.path << endl;
+ cout << "pwd = " << desc.pwd << endl;
+
+ cout << "args = ";
+ copy(desc.args.begin(), desc.args.end(), ostream_iterator<string>(cout," "));
+ cout << endl;
+
+ cout << "adapters = ";
+ copy(desc.adapters.begin(), desc.adapters.end(), ostream_iterator<string>(cout," "));
+ cout << endl;
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::stateServer(const list<string>& args)
+{
+ if(args.size() != 1)
+ {
+ error("`server state' requires exactly one argument (type `help' for more info)");
+ return;
+ }
+
try
{
- ServerDescriptions descriptions = _admin->getAll();
- ServerDescriptions::iterator p = descriptions.begin();
- while(p != descriptions.end())
+ ServerState state = _admin->getServerState(args.front());
+
+ switch(state)
{
- cout << "identity = " << p->first << endl;
- cout << "object = " << _communicator->proxyToString(p->second.obj) << endl;
- cout << "host = " << p->second.host << endl;
- cout << "path = " << p->second.path << endl;
- cout << "args =";
- for(Args::iterator q = p->second.args.begin(); q != p->second.args.end(); ++q)
- {
- cout << ' ' << *q;
- }
- cout << endl;
- if(++p != descriptions.end())
- {
- cout << endl;
- }
+ case Inactive:
+ cout << "Inactive" << endl;
+ break;
+ case Activating:
+ cout << "Activating" << endl;
+ break;
+ case Active:
+ cout << "Active" << endl;
+ break;
+ case Deactivating:
+ cout << "Deactivating" << endl;
+ break;
+ case Destroyed:
+ cout << "Destroyed" << endl;
+ break;
+ default:
+ assert(false);
}
}
catch(const Exception& ex)
@@ -136,6 +195,128 @@ IcePack::Parser::listAll()
}
void
+IcePack::Parser::removeServer(const list<string>& args)
+{
+ if(args.size() != 1)
+ {
+ error("`server remove' requires exactly one argument (type `help' for more info)");
+ return;
+ }
+
+ try
+ {
+ _admin->removeServer(args.front());
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::listAllServers()
+{
+ try
+ {
+ ServerNames names = _admin->getAllServerNames();
+ copy(names.begin(), names.end(), ostream_iterator<string>(cout,"\n"));
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::addAdapter(const list<string>& args)
+{
+ if(args.size() < 2)
+ {
+ error("`adapter add' requires at least two arguments (type `help' for more info)");
+ return;
+ }
+
+ try
+ {
+ list<string>::const_iterator p = args.begin();
+
+ string name = *p++;
+ string endpoints = *p++;
+
+ _admin->addAdapterWithEndpoints(name, endpoints);
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::endpointsAdapter(const list<string>& args)
+{
+ if(args.size() != 1)
+ {
+ error("`adapter endpoints' requires exactly one argument (type `help' for more info)");
+ return;
+ }
+
+ try
+ {
+ string endpoints = _admin->getAdapterEndpoints(args.front());
+ cout << endpoints << endl;
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::removeAdapter(const list<string>& args)
+{
+ if(args.size() != 1)
+ {
+ error("`adapter remove' requires exactly one argument (type `help' for more info)");
+ return;
+ }
+
+ try
+ {
+ _admin->removeAdapter(args.front());
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
+IcePack::Parser::listAllAdapters()
+{
+ try
+ {
+ AdapterNames names = _admin->getAllAdapterNames();
+ copy(names.begin(), names.end(), ostream_iterator<string>(cout,"\n"));
+ }
+ catch(const Exception& ex)
+ {
+ ostringstream s;
+ s << ex;
+ error(s.str());
+ }
+}
+
+void
IcePack::Parser::shutdown()
{
try
diff --git a/cpp/src/IcePack/Parser.h b/cpp/src/IcePack/Parser.h
index cbb3fb058d0..35c99fc06ce 100644
--- a/cpp/src/IcePack/Parser.h
+++ b/cpp/src/IcePack/Parser.h
@@ -67,9 +67,18 @@ public:
void usage();
- void add(const std::list<std::string>&);
- void remove(const std::list<std::string>&);
- void listAll();
+ void addServer(const std::list<std::string>&, const std::list<std::string>&, const std::list<std::string>&);
+ void startServer(const std::list<std::string>&);
+ void describeServer(const std::list<std::string>&);
+ void stateServer(const std::list<std::string>&);
+ void removeServer(const std::list<std::string>&);
+ void listAllServers();
+
+ void addAdapter(const std::list<std::string>&);
+ void endpointsAdapter(const std::list<std::string>&);
+ void removeAdapter(const std::list<std::string>&);
+ void listAllAdapters();
+
void shutdown();
void getInput(char*, int&, int);
diff --git a/cpp/src/IcePack/Scanner.l b/cpp/src/IcePack/Scanner.l
index d3df7768e8a..78193c7f4bd 100644
--- a/cpp/src/IcePack/Scanner.l
+++ b/cpp/src/IcePack/Scanner.l
@@ -96,6 +96,14 @@ NL [\n]
return ICE_PACK_EXIT;
}
+"server" {
+ return ICE_PACK_SERVER;
+}
+
+"adapter" {
+ return ICE_PACK_ADAPTER;
+}
+
"add" {
return ICE_PACK_ADD;
}
@@ -112,6 +120,38 @@ NL [\n]
return ICE_PACK_SHUTDOWN;
}
+"describe" {
+ return ICE_PACK_DESCRIBE;
+}
+
+"state" {
+ return ICE_PACK_STATE;
+}
+
+"endpoints" {
+ return ICE_PACK_ENDPOINTS;
+}
+
+"start" {
+ return ICE_PACK_START;
+}
+
+"adapters" {
+ return ICE_PACK_ADAPTERS;
+}
+
+"options" {
+ return ICE_PACK_OPTIONS;
+}
+
+"{" {
+ return ICE_PACK_OPEN_BRACKET;
+}
+
+"}" {
+ return ICE_PACK_CLOSE_BRACKET;
+}
+
{WS}*(\\{WS}*{NL})? {
int len = strlen(yytext);
for(int i = 0; i < len; ++i)
diff --git a/cpp/src/IcePack/Server.cpp b/cpp/src/IcePack/Server.cpp
index 5e3332f2ff0..b929b3e5202 100644
--- a/cpp/src/IcePack/Server.cpp
+++ b/cpp/src/IcePack/Server.cpp
@@ -9,9 +9,13 @@
// **********************************************************************
#include <Ice/Application.h>
+#include <IcePack/LocatorI.h>
+#include <IcePack/LocatorRegistryI.h>
+#include <IcePack/ServerManagerI.h>
+#include <IcePack/AdapterManagerI.h>
#include <IcePack/AdminI.h>
-#include <IcePack/Forward.h>
#ifndef _WIN32
+# include <IcePack/ActivatorI.h>
# include <signal.h>
# include <sys/wait.h>
#endif
@@ -52,12 +56,12 @@ main(int argc, char* argv[])
sigaction(SIGCHLD, &action, 0);
#endif
- Server app;
+ ::Server app;
return app.main(argc, argv);
}
void
-Server::usage()
+::Server::usage()
{
cerr << "Usage: " << appName() << " [options]\n";
cerr <<
@@ -69,7 +73,7 @@ Server::usage()
}
int
-Server::run(int argc, char* argv[])
+::Server::run(int argc, char* argv[])
{
PropertiesPtr properties = communicator()->getProperties();
@@ -102,38 +106,135 @@ Server::run(int argc, char* argv[])
}
}
- const char* adminEndpointsProperty = "IcePack.Admin.Endpoints";
- string adminEndpoints = properties->getProperty(adminEndpointsProperty);
- if(!adminEndpoints.empty() && !nowarn)
+ string locatorEndpoints = properties->getProperty("IcePack.Locator.Endpoints");
+ if(locatorEndpoints.empty())
{
- cerr << appName() << ": warning: administrative endpoints property `" << adminEndpointsProperty << "' enabled"
- << endl;
+ cerr << appName() << ": property `IcePack.Locator.Endpoints' is not set" << endl;
+ return EXIT_FAILURE;
}
- const char* forwardEndpointsProperty = "IcePack.Forward.Endpoints";
- string forwardEndpoints = properties->getProperty(forwardEndpointsProperty);
- if(forwardEndpoints.empty())
+ string locatorRegistryEndpoints = properties->getProperty("IcePack.LocatorRegistry.Endpoints");
+ if(locatorRegistryEndpoints.empty())
{
- cerr << appName() << ": property `" << forwardEndpointsProperty << "' is not set" << endl;
+ cerr << appName() << ": property `IcePack.LocatorRegistry.Endpoints' is not set" << endl;
return EXIT_FAILURE;
}
- AdminPtr admin = new AdminI(communicator());
- ServantLocatorPtr forward = new Forward(communicator(), admin);
-
- if(adminEndpoints.length() != 0)
+ string adminEndpoints = properties->getProperty("IcePack.Admin.Endpoints");
+ if(!adminEndpoints.empty())
{
- ObjectAdapterPtr adminAdapter = communicator()->createObjectAdapterFromProperty("Admin",
- adminEndpointsProperty);
- adminAdapter->add(admin, stringToIdentity("admin"));
- adminAdapter->activate();
+ if(!nowarn)
+ {
+ cerr << appName() << ": warning: administrative endpoints `IcePack.Admin.Endpoints' enabled" << endl;
+ }
}
- ObjectAdapterPtr forwardAdapter = communicator()->createObjectAdapterFromProperty("Forward",
- forwardEndpointsProperty);
- forwardAdapter->addServantLocator(forward, "");
- forwardAdapter->activate();
+ string locatorId = properties->getPropertyWithDefault("IcePack.Locator.Identity", "IcePack/locator");
+ string locatorRegistryId = properties->getPropertyWithDefault("IcePack.LocatorRegistry.Identity",
+ "IcePack/locatorregistry");
+ string adminId = properties->getPropertyWithDefault("IcePack.Admin.Identity", "IcePack/admin");
+
+ //
+ // Register the server manager and adapter manager with an
+ // internal object adapter. We ensure that the internal object
+ // adapter doesn't have any endpoints, all the objects registered
+ // with this adapter are *only* accessed internally through
+ // collocation.
+ //
+ ObjectAdapterPtr internalAdapter = communicator()->createObjectAdapterWithEndpoints("IcePack.Internal", "");
+ internalAdapter->setLocator(0);
+
+ //
+ // Activator isn't supported on Windows yet, just pass an empty
+ // acticator proxy.
+ //
+ ActivatorPrx activatorProxy;
+
+#ifndef _WIN32
+ //
+ // Setup default arguments which will be passed to each activated
+ // process. Then, create and start the activator.
+ //
+ Args defaultArgs;
+ defaultArgs.push_back("--Ice.Default.Locator=" + locatorId + ":" + locatorEndpoints);
+
+ ActivatorIPtr activator = new ActivatorI(communicator(), defaultArgs);
+ activator->start();
+ activatorProxy = ActivatorPrx::uncheckedCast(internalAdapter->add(activator,
+ stringToIdentity("IcePack/activator")));
+#endif
+
+ AdapterManagerPtr adapterManager = new AdapterManagerI(internalAdapter);
+ AdapterManagerPrx adapterManagerProxy =
+ AdapterManagerPrx::uncheckedCast(internalAdapter->add(adapterManager,
+ stringToIdentity("IcePack/adaptermanager")));
+
+ ServerManagerPtr serverManager = new ServerManagerI(internalAdapter, adapterManagerProxy, activatorProxy);
+ ServerManagerPrx serverManagerProxy =
+ ServerManagerPrx::uncheckedCast(internalAdapter->add(serverManager,
+ stringToIdentity("IcePack/servermanager")));
+ internalAdapter->activate();
+
+ //
+ // Create the "IcePack.Admin" object adapter and register the
+ // admin object. The admin object is used by icepackadmin to
+ // administrate IcePack.
+ //
+ ObjectAdapterPtr adminAdapter = communicator()->createObjectAdapterWithEndpoints("IcePack.Admin", adminEndpoints);
+ AdminPtr admin = new AdminI(communicator(), serverManagerProxy, adapterManagerProxy);
+ adminAdapter->add(admin, stringToIdentity(adminId));
+
+ //
+ // Create the "IcePack.LocatorRegistry" object adapter and
+ // registry the locator registry object.
+ //
+ // The locator registry object provides an implementation of the
+ // Ice::LocatorRegistry interface. This interface is used by Ice
+ // servers to register their object adapters.
+ //
+ ObjectAdapterPtr locatorRegistryAdapter =
+ communicator()->createObjectAdapterWithEndpoints("IcePack.LocatorRegistry", locatorRegistryEndpoints);
+ locatorRegistryAdapter->setLocator(0);
+ LocatorRegistryPtr locatorRegistry = new LocatorRegistryI(adapterManagerProxy);
+ LocatorRegistryPrx locatorRegistryProxy =
+ LocatorRegistryPrx::uncheckedCast(locatorRegistryAdapter->add(locatorRegistry, stringToIdentity(adminId)));
+
+ //
+ // Create the "IcePack.Locator" object adapter and register the
+ // locator object.
+ //
+ // The locator locator object provides an implementation of the
+ // Ice::Locator interface. This interface is used by Ice clients
+ // to locate object adapters and their associated endpoints.
+ //
+ LocatorPtr locator = new LocatorI(adapterManagerProxy, locatorRegistryProxy);
+ ObjectAdapterPtr locatorAdapter = communicator()->createObjectAdapterWithEndpoints("IcePack.Locator",
+ locatorEndpoints);
+ locatorAdapter->setLocator(0);
+ LocatorPrx locatorProxy = LocatorPrx::uncheckedCast(locatorAdapter->add(locator, stringToIdentity(locatorId)));
+ //
+ // Set the locator for the admin object adapter.
+ //
+ adminAdapter->setLocator(locatorProxy);
+
+ //
+ // Activate the adapters.
+ //
+ shutdownOnInterrupt();
+ adminAdapter->activate();
+ locatorAdapter->activate();
+ locatorRegistryAdapter->activate();
communicator()->waitForShutdown();
+ ignoreInterrupt();
+
+#ifndef _WIN32
+ //
+ // Destroy and join with activator.
+ //
+ activator->destroy();
+ activator->getThreadControl().join();
+#endif
+
return EXIT_SUCCESS;
}
diff --git a/cpp/src/IcePack/ServerManager.ice b/cpp/src/IcePack/ServerManager.ice
new file mode 100644
index 00000000000..db11e57983e
--- /dev/null
+++ b/cpp/src/IcePack/ServerManager.ice
@@ -0,0 +1,117 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_SERVER_MANAGER_ICE
+#define ICE_PACK_SERVER_MANAGER_ICE
+
+#include <IcePack/Admin.ice>
+#include <IcePack/AdapterManager.ice>
+
+module IcePack
+{
+
+class Server
+{
+ /**
+ *
+ * Server description.
+ *
+ * @return The server description.
+ *
+ **/
+ ServerDescription getServerDescription();
+
+ /**
+ *
+ * Start the server.
+ *
+ * @return True if the server was successfully started, false
+ * otherwise.
+ *
+ **/
+ bool start();
+
+ /**
+ *
+ * This method is called by the activator when it detects that the
+ * server has terminated.
+ *
+ **/
+ void terminationCallback();
+
+ /**
+ *
+ * Return the server state.
+ *
+ **/
+ ServerState getState();
+
+ /**
+ *
+ * The description of this server.
+ *
+ */
+ ServerDescription _description;
+
+ /**
+ *
+ * The server state.
+ *
+ */
+ ServerState _state;
+
+ /**
+ *
+ * The adapter proxies.
+ *
+ **/
+ Adapters _adapters;
+};
+
+class ServerManager
+{
+ /**
+ *
+ * Create a server.
+ *
+ **/
+ Server* create(ServerDescription description)
+ throws ServerExistsException, AdapterExistsException;
+
+ /**
+ *
+ * Find an adapter and return its proxy.
+ *
+ * @param name Name of the adapter.
+ *
+ * @return Server proxy.
+ *
+ **/
+ Server* findByName(string name);
+
+ /**
+ *
+ * Remove a server.
+ *
+ **/
+ void remove(string name)
+ throws ServerNotExistException, ServerNotInactiveException;
+
+ /**
+ *
+ * Get all server names.
+ *
+ **/
+ ServerNames getAll();
+};
+
+};
+
+#endif
diff --git a/cpp/src/IcePack/ServerManagerF.ice b/cpp/src/IcePack/ServerManagerF.ice
new file mode 100644
index 00000000000..45581fdd40c
--- /dev/null
+++ b/cpp/src/IcePack/ServerManagerF.ice
@@ -0,0 +1,23 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_SERVER_MANAGER_F_ICE
+#define ICE_PACK_SERVER_MANAGER_F_ICE
+
+module IcePack
+{
+
+class Server;
+interface ServerManager;
+
+};
+
+#endif
+
diff --git a/cpp/src/IcePack/ServerManagerI.cpp b/cpp/src/IcePack/ServerManagerI.cpp
new file mode 100644
index 00000000000..6b150c06838
--- /dev/null
+++ b/cpp/src/IcePack/ServerManagerI.cpp
@@ -0,0 +1,313 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <Ice/Functional.h>
+#include <Ice/LoggerUtil.h>
+#include <IcePack/ServerManagerI.h>
+#include <IcePack/AdapterManager.h>
+#include <IcePack/Activator.h>
+
+using namespace std;
+using namespace Ice;
+using namespace IcePack;
+
+class ServerNameToServer
+{
+public:
+
+ ServerNameToServer(const ObjectAdapterPtr& adapter) :
+ _adapter(adapter)
+ {
+ }
+
+ ServerPrx
+ operator()(const string& name)
+ {
+ Identity ident;
+ ident.category = "server";
+ ident.name = name;
+ return ServerPrx::uncheckedCast(_adapter->createProxy(ident));
+ }
+
+private:
+
+ ObjectAdapterPtr _adapter;
+};
+
+IcePack::ServerI::ServerI(const ObjectAdapterPtr& adapter, const ActivatorPrx& activator) :
+ _adapter(adapter),
+ _activator(activator)
+{
+}
+
+IcePack::ServerI::~ServerI()
+{
+}
+
+ServerDescription
+IcePack::ServerI::getServerDescription(const Current&)
+{
+ return _description;
+}
+
+bool
+IcePack::ServerI::start(const Current&)
+{
+ while(true)
+ {
+ IceUtil::Monitor< IceUtil::Mutex>::Lock sync(*this);
+ if(!_activator)
+ return false;
+
+ switch(_state)
+ {
+ case Inactive:
+ _state = Activating;
+ break;
+
+ case Activating:
+ wait(); // TODO: Timeout?
+ continue;
+
+ case Active:
+ return true; // Raise an exception instead?
+
+ case Deactivating:
+ wait();
+ continue;
+
+ case Destroyed:
+ throw ObjectNotExistException(__FILE__,__LINE__);
+ }
+ break;
+ }
+
+ try
+ {
+ bool activated = _activator->activate(ServerNameToServer(_adapter)(_description.name));
+ setState(activated ? Active : Inactive);
+ return activated;
+ }
+ catch (const SystemException& ex)
+ {
+ Warning out(_adapter->getCommunicator()->getLogger());
+ out << "activation failed for server `" << _description.name << "':\n";
+ out << ex;
+
+ setState(Inactive);
+ return false;
+ }
+}
+
+void
+IcePack::ServerI::terminationCallback(const Current&)
+{
+ //
+ // Callback from the activator indicating that the server
+ // stopped. Change state to deactivating while we mark the server
+ // adapters as inactive.
+ //
+ setState(Deactivating);
+
+ //
+ // Mark each adapter as inactive. _adapters is immutable when
+ // state == Deactivating.
+ //
+ for(Adapters::iterator p = _adapters.begin(); p != _adapters.end(); ++p)
+ {
+ (*p)->markAsInactive();
+ }
+
+ setState(Inactive);
+}
+
+ServerState
+IcePack::ServerI::getState(const Current&)
+{
+ IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+ return _state;
+}
+
+void
+IcePack::ServerI::setState(ServerState state)
+{
+ IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
+
+ if(state == Destroyed && (_state == Active || _state == Deactivating))
+ throw ServerNotInactiveException();
+
+ _state = state;
+
+ notifyAll();
+}
+
+IcePack::ServerManagerI::ServerManagerI(const ObjectAdapterPtr& adapter,
+ const AdapterManagerPrx& adapterManager,
+ const ActivatorPrx& activator) :
+ _adapter(adapter),
+ _adapterManager(adapterManager),
+ _activator(activator)
+{
+}
+
+IcePack::ServerManagerI::~ServerManagerI()
+{
+}
+
+ServerPrx
+IcePack::ServerManagerI::create(const ServerDescription& description, const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ ServerPrx server = ServerNameToServer(_adapter)(description.name);
+ try
+ {
+ server->ice_ping();
+
+ //
+ // The server already exists.
+ //
+ throw ServerExistsException();
+ }
+ catch (const ObjectNotExistException&)
+ {
+ }
+
+ //
+ // Create the server. Set its state to Activating so that we can
+ // safelly register the adapters without any race conditions. If a
+ // request comes in for an adapter we've just registerd, the
+ // server won't be started as long as we are not in the Inactive
+ // state.
+ //
+ ServerI* serverI = new ServerI(_adapter, _activator);
+ ServerPtr s = serverI;
+ serverI->_description = description;
+ serverI->_state = Activating;
+
+ //
+ // The server object might receives requests as soon as it returns
+ // from this call. This is the reason why we've created the server
+ // in the activating state -- to block any attempts to activate
+ // the server. The server state is set to inactive once it's fully
+ // created.
+ //
+ server = ServerPrx::uncheckedCast(_adapter->add(serverI, server->ice_getIdentity()));
+
+ try
+ {
+ //
+ // Register the server adapters to enabled automatic
+ // activation. If an adapter already exists, rollback the
+ // server creation and throw an exception.
+ //
+ for(AdapterNames::const_iterator p = description.adapters.begin(); p != description.adapters.end(); ++p)
+ {
+ AdapterDescription desc;
+ desc.name = (*p);
+ desc.server = server;
+ serverI->_adapters.push_back(_adapterManager->create(desc));
+ }
+ }
+ catch (const AdapterExistsException&)
+ {
+ //
+ // The adapter is already registered with a server, remove the
+ // server.
+ //
+ _adapter->remove(server->ice_getIdentity());
+ serverI->setState(Destroyed);
+ throw;
+ }
+
+ //
+ // Set the server state as inactive. At this point the server can
+ // be automatically started if a request for one of its adapter
+ // comes in.
+ //
+ serverI->setState(Inactive);
+
+ //
+ // Add this server name to our server names internal list.
+ //
+ _serverNames.insert(description.name);
+
+ return server;
+}
+
+ServerPrx
+IcePack::ServerManagerI::findByName(const string& name, const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ ServerPrx server = ServerNameToServer(_adapter)(name);
+ try
+ {
+ server->ice_ping();
+ return server;
+ }
+ catch (const ObjectNotExistException&)
+ {
+ return 0;
+ }
+}
+
+void
+IcePack::ServerManagerI::remove(const string& name, const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ ServerPrx server = ServerNameToServer(_adapter)(name);
+ try
+ {
+ server->ice_ping();
+ }
+ catch (const ObjectNotExistException&)
+ {
+ throw ServerNotExistException();
+ }
+
+ //
+ // Mark the server as destroyed.
+ //
+ ServerI* serverI = dynamic_cast<ServerI*>(_adapter->proxyToServant(server).get());
+ assert(serverI);
+ serverI->setState(Destroyed);
+
+ //
+ // Remove server adapters.
+ //
+ ServerDescription description = serverI->_description;
+ for(AdapterNames::iterator p = description.adapters.begin(); p != description.adapters.end(); ++p)
+ {
+ _adapterManager->remove(*p);
+ }
+
+ _adapter->remove(server->ice_getIdentity());
+
+ //
+ // Remove the server name from our internal server name set.
+ //
+ _serverNames.erase(_serverNames.find(name));
+}
+
+ServerNames
+IcePack::ServerManagerI::getAll(const Current&)
+{
+ IceUtil::Mutex::Lock sync(*this);
+
+ ServerNames names;
+ names.reserve(_serverNames.size());
+ copy(_serverNames.begin(), _serverNames.end(), back_inserter(names));
+
+ return names;
+}
+
diff --git a/cpp/src/IcePack/ServerManagerI.h b/cpp/src/IcePack/ServerManagerI.h
new file mode 100644
index 00000000000..67c0dc3506a
--- /dev/null
+++ b/cpp/src/IcePack/ServerManagerI.h
@@ -0,0 +1,65 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_PACK_SERVER_MANAGER_I_H
+#define ICE_PACK_SERVER_MANAGER_I_H
+
+#include <IceUtil/Mutex.h>
+#include <IcePack/ServerManager.h>
+#include <IcePack/Activator.h>
+#include <set>
+
+
+namespace IcePack
+{
+
+class ServerI : public Server, public ::IceUtil::Monitor< ::IceUtil::Mutex>
+{
+public:
+ ServerI(const ::Ice::ObjectAdapterPtr&, const ActivatorPrx&);
+ virtual ~ServerI();
+
+ virtual ServerDescription getServerDescription(const ::Ice::Current&);
+ virtual bool start(const ::Ice::Current&);
+ virtual void terminationCallback(const ::Ice::Current&);
+ virtual ServerState getState(const ::Ice::Current&);
+
+ void setState(ServerState);
+
+private:
+
+ ::Ice::ObjectAdapterPtr _adapter;
+ ActivatorPrx _activator;
+};
+
+
+class ServerManagerI : public ServerManager, public IceUtil::Mutex
+{
+public:
+
+ ServerManagerI(const Ice::ObjectAdapterPtr&, const AdapterManagerPrx&, const ActivatorPrx&);
+ virtual ~ServerManagerI();
+
+ virtual ServerPrx create(const ServerDescription&, const ::Ice::Current&);
+ virtual ServerPrx findByName(const ::std::string&, const ::Ice::Current&);
+ virtual void remove(const ::std::string&, const ::Ice::Current&);
+ virtual ServerNames getAll(const ::Ice::Current&);
+
+private:
+
+ ::Ice::ObjectAdapterPtr _adapter;
+ ::std::set< ::std::string> _serverNames;
+ AdapterManagerPrx _adapterManager;
+ ActivatorPrx _activator;
+};
+
+}
+
+#endif
diff --git a/cpp/src/IcePack/icepackS.dsp b/cpp/src/IcePack/icepackS.dsp
index 2c70f22402b..eeea931c959 100644
--- a/cpp/src/IcePack/icepackS.dsp
+++ b/cpp/src/IcePack/icepackS.dsp
@@ -91,32 +91,212 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
+SOURCE=.\Activator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManagerI.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\AdminI.cpp
# End Source File
# Begin Source File
-SOURCE=.\Forward.cpp
+SOURCE=.\LocatorAdminI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\LocatorI.cpp
# End Source File
# Begin Source File
SOURCE=.\Server.cpp
# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManagerI.cpp
+# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
+SOURCE=.\Activator.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActivatorI.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManagerF.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManagerI.h
+# End Source File
+# Begin Source File
+
SOURCE=.\AdminI.h
# End Source File
# Begin Source File
-SOURCE=.\Forward.h
+SOURCE=.\LocatorAdminI.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\LocatorI.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManagerF.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManagerI.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Activator.ice
+
+!IF "$(CFG)" == "IcePackS - Win32 Release"
+
+!ELSEIF "$(CFG)" == "IcePackS - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\Activator.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\lib \
+ ..\..\bin\slice2cpp.exe --include-dir IcePack -I../../slice -I.. Activator.ice \
+
+
+"Activator.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Activator.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManager.ice
+
+!IF "$(CFG)" == "IcePackS - Win32 Release"
+
+!ELSEIF "$(CFG)" == "IcePackS - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\AdapterManager.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\lib \
+ ..\..\bin\slice2cpp.exe --include-dir IcePack -I../../slice -I.. AdapterManager.ice \
+
+
+"AdapterManager.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"AdapterManager.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\AdapterManagerF.ice
+
+!IF "$(CFG)" == "IcePackS - Win32 Release"
+
+!ELSEIF "$(CFG)" == "IcePackS - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\AdapterManagerF.ice
+
+"AdapterManagerF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ set PATH=%PATH%;..\..\lib
+ ..\..\bin\slice2cpp.exe --include-dir IcePack -I../../slice -I.. AdapterManagerF.ice
+ del AdapterManagerF.cpp
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManager.ice
+
+!IF "$(CFG)" == "IcePackS - Win32 Release"
+
+!ELSEIF "$(CFG)" == "IcePackS - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\ServerManager.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\lib \
+ ..\..\bin\slice2cpp.exe --include-dir IcePack -I../../slice -I.. ServerManager.ice \
+
+
+"ServerManager.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"ServerManager.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerManagerF.ice
+
+!IF "$(CFG)" == "IcePackS - Win32 Release"
+
+!ELSEIF "$(CFG)" == "IcePackS - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\ServerManagerF.ice
+
+"ServerManagerF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ set PATH=%PATH%;..\..\lib
+ ..\..\bin\slice2cpp.exe --include-dir IcePack -I../../slice -I.. ServerManagerF.ice
+ del ServerManagerF.cpp
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
# End Group
# End Target
# End Project
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index c78b5252965..5309d054b4c 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -1193,11 +1193,11 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
C << nl << "int __cnt = 0;";
C << nl << "while(true)";
C << sb;
+ C << nl << "try";
+ C << sb;
C << nl << "::IceInternal::Handle< ::IceDelegate::Ice::Object> __delBase = __getDelegate();";
C << nl << "::IceDelegate" << scope.substr(0, scope.size() - 2) << "* __del = dynamic_cast< ::IceDelegate"
<< scope.substr(0, scope.size() - 2) << "*>(__delBase.get());";
- C << nl << "try";
- C << sb;
C << nl;
if(ret)
{
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 0fafd5ddb71..d0bb4b08f24 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -1967,11 +1967,11 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "int __cnt = 0;";
out << nl << "while(true)";
out << sb;
+ out << nl << "try";
+ out << sb;
out << nl << "Ice._ObjectDel __delBase = __getDelegate();";
out << nl << '_' << name << "Del __del = (_" << name
<< "Del)__delBase;";
- out << nl << "try";
- out << sb;
out << nl;
if(ret)
{
diff --git a/cpp/test/Ice/Makefile b/cpp/test/Ice/Makefile
index 4badaf299e8..d8962437d61 100644
--- a/cpp/test/Ice/Makefile
+++ b/cpp/test/Ice/Makefile
@@ -18,7 +18,8 @@ SUBDIRS = operations \
facets \
objects \
faultTolerance \
- locationForward
+ locationForward \
+ location
$(EVERYTHING)::
@for subdir in $(SUBDIRS); \
diff --git a/cpp/test/Ice/location/.depend b/cpp/test/Ice/location/.depend
new file mode 100644
index 00000000000..d38f8668063
--- /dev/null
+++ b/cpp/test/Ice/location/.depend
@@ -0,0 +1,6 @@
+Test.o: Test.cpp Test.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/Stream.h ../../../include/Ice/BuiltinSequences.h
+Client.o: Client.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
+AllTests.o: AllTests.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
+TestI.o: TestI.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
+ServerLocator.o: ServerLocator.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ServerLocator.h ../../../include/Ice/Locator.h
+Server.o: Server.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ServerLocator.h ../../../include/Ice/Locator.h TestI.h Test.h
diff --git a/cpp/test/Ice/location/AllTests.cpp b/cpp/test/Ice/location/AllTests.cpp
new file mode 100644
index 00000000000..10968459d7d
--- /dev/null
+++ b/cpp/test/Ice/location/AllTests.cpp
@@ -0,0 +1,108 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <TestCommon.h>
+#include <Test.h>
+
+using namespace std;
+
+void
+allTests(const Ice::CommunicatorPtr& communicator)
+{
+ ServerManagerPrx manager = ServerManagerPrx::checkedCast(
+ communicator->stringToProxy("servermanager :default -t 2000 -p 12345"));
+ test(manager);
+
+ //
+ // Start a server, get the port of the adapter it's listening on,
+ // and add it to the configuration so that the client can locate
+ // the TestAdapter adapter.
+ //
+ cout << "starting server... " << flush;
+ manager->startServer();
+ cout << "ok" << endl;
+
+ cout << "testing stringToProxy... " << flush;
+ Ice::ObjectPrx base = communicator->stringToProxy("test @ TestAdapter");
+ Ice::ObjectPrx base2 = communicator->stringToProxy("test @ TestAdapter");
+ cout << "ok" << endl;
+
+ cout << "testing checked cast... " << flush;
+ TestPrx obj = TestPrx::checkedCast(base);
+ obj = TestPrx::checkedCast(communicator->stringToProxy("test@TestAdapter"));
+ obj = TestPrx::checkedCast(communicator->stringToProxy("test @TestAdapter"));
+ obj = TestPrx::checkedCast(communicator->stringToProxy("test@ TestAdapter"));
+ test(obj);
+ TestPrx obj2 = TestPrx::checkedCast(base2);
+ test(obj2);
+ cout << "ok" << endl;
+
+ cout << "testing object reference from server... " << flush;
+ HelloPrx hello = obj->getHello();
+ hello->sayHello();
+ cout << "ok" << endl;
+
+ cout << "shutdown server... " << flush;
+ obj->shutdown();
+ cout << "ok" << endl;
+
+ cout << "restarting server... " << flush;
+ manager->startServer();
+ cout << "ok" << endl;
+
+ cout << "testing whether server is still reachable... " << flush;
+ try
+ {
+ obj2->ice_ping();
+ }
+ catch(const Ice::SocketException&)
+ {
+
+ test(false);
+ }
+ cout << "ok" << endl;
+
+
+ cout << "testing object reference from server... " << flush;
+ hello->sayHello();
+ cout << "ok" << endl;
+
+ cout << "testing reference with unknown adapter... " << flush;
+ try
+ {
+ base = communicator->stringToProxy("test @ TestAdapterUnknown");
+ base->ice_ping();
+ test(false);
+ }
+ catch (const Ice::NoEndpointException&)
+ {
+ }
+ cout << "ok" << endl;
+
+ cout << "shutdown server... " << flush;
+ obj->shutdown();
+ cout << "ok" << endl;
+
+ cout << "testing whether server is gone... " << flush;
+ try
+ {
+ obj2->ice_ping();
+ test(false);
+ }
+ catch(const Ice::SocketException&)
+ {
+ cout << "ok" << endl;
+ }
+
+ cout << "shutdown server manager..." << flush;
+ manager->shutdown();
+ cout << "ok" << endl;
+}
diff --git a/cpp/test/Ice/location/Client.cpp b/cpp/test/Ice/location/Client.cpp
new file mode 100644
index 00000000000..2f585b5fb09
--- /dev/null
+++ b/cpp/test/Ice/location/Client.cpp
@@ -0,0 +1,58 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <TestCommon.h>
+#include <Test.h>
+
+using namespace std;
+
+int
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+{
+ void allTests(const Ice::CommunicatorPtr&);
+ allTests(communicator);
+ return EXIT_SUCCESS;
+}
+
+int
+main(int argc, char* argv[])
+{
+ int status;
+ Ice::CommunicatorPtr communicator;
+
+ try
+ {
+ Ice::PropertiesPtr properties = Ice::createProperties(argc, argv);
+ properties->setProperty("Ice.Default.Locator", "locator:default -p 12345");
+ communicator = Ice::initializeWithProperties(argc, argv, properties);
+ status = run(argc, argv, communicator);
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+
+ if(communicator)
+ {
+ try
+ {
+ communicator->destroy();
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+ }
+
+ return status;
+}
diff --git a/cpp/test/Ice/location/Collocated.cpp b/cpp/test/Ice/location/Collocated.cpp
new file mode 100644
index 00000000000..6bd78758397
--- /dev/null
+++ b/cpp/test/Ice/location/Collocated.cpp
@@ -0,0 +1,61 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <TestI.h>
+
+using namespace std;
+
+int
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+{
+ string endpts = "default -p 12345 -t 2000";
+ Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("ServerManagerAdapter", endpts);
+ Ice::ObjectPtr object = new ServerManagerI(adapter);
+ adapter->add(object, Ice::stringToIdentity("servermanager"));
+
+ void allTests(const Ice::CommunicatorPtr&);
+ allTests(communicator);
+
+ return EXIT_SUCCESS;
+}
+
+int
+main(int argc, char* argv[])
+{
+ int status;
+ Ice::CommunicatorPtr communicator;
+
+ try
+ {
+ communicator = Ice::initialize(argc, argv);
+ status = run(argc, argv, communicator);
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+
+ if(communicator)
+ {
+ try
+ {
+ communicator->destroy();
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+ }
+
+ return status;
+}
diff --git a/cpp/test/Ice/location/Makefile b/cpp/test/Ice/location/Makefile
new file mode 100644
index 00000000000..0c190626319
--- /dev/null
+++ b/cpp/test/Ice/location/Makefile
@@ -0,0 +1,50 @@
+# **********************************************************************
+#
+# Copyright (c) 2001
+# MutableRealms, Inc.
+# Huntsville, AL, USA
+#
+# All Rights Reserved
+#
+# **********************************************************************
+
+top_srcdir = ../../..
+
+CLIENT = client
+SERVER = server
+
+TARGETS = $(CLIENT) $(SERVER)
+
+OBJS = Test.o \
+
+COBJS = Client.o \
+ AllTests.o
+
+SOBJS = TestI.o \
+ ServerLocator.o \
+ Server.o
+
+SRCS = $(OBJS:.o=.cpp) \
+ $(COBJS:.o=.cpp) \
+ $(SOBJS:.o=.cpp)
+
+include $(top_srcdir)/config/Make.rules
+
+CPPFLAGS := -I. -I../../include $(CPPFLAGS)
+
+$(CLIENT): $(OBJS) $(COBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS)
+
+$(SERVER): $(OBJS) $(SOBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS)
+
+Test.h Test.cpp: Test.ice $(SLICE2CPP)
+ rm -f Test.h Test.cpp
+ $(SLICE2CPP) Test.ice
+
+clean::
+ rm -f Test.h Test.cpp
+
+include .depend
diff --git a/cpp/test/Ice/location/Server.cpp b/cpp/test/Ice/location/Server.cpp
new file mode 100644
index 00000000000..214c0ba356d
--- /dev/null
+++ b/cpp/test/Ice/location/Server.cpp
@@ -0,0 +1,80 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <ServerLocator.h>
+#include <TestI.h>
+
+using namespace std;
+
+int
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
+{
+ //
+ // Register the server manager. The server manager creates a new
+ // 'server' (a server isn't a different process, it's just a new
+ // communicator and object adapter).
+ //
+ Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("ServerManagerAdapter",
+ "default -p 12345");
+
+ Ice::ObjectPtr object = new ServerManagerI(adapter);
+ adapter->add(object, Ice::stringToIdentity("servermanager"));
+
+ //
+ // We also register a sample server locator which implements the
+ // locator interface, this locator is used by the clients and the
+ // 'servers' created with the server manager interface.
+ //
+ ServerLocatorRegistryPtr registry = new ServerLocatorRegistry();
+ Ice::LocatorRegistryPrx registryPrx =
+ Ice::LocatorRegistryPrx::uncheckedCast(adapter->add(registry, Ice::stringToIdentity("registry")));
+
+ Ice::LocatorPtr locator = new ServerLocator(registry, registryPrx);
+ adapter->add(locator, Ice::stringToIdentity("locator"));
+
+ adapter->activate();
+ communicator->waitForShutdown();
+
+ return EXIT_SUCCESS;
+}
+
+int
+main(int argc, char* argv[])
+{
+ int status;
+ Ice::CommunicatorPtr communicator;
+
+ try
+ {
+ communicator = Ice::initialize(argc, argv);
+ status = run(argc, argv, communicator);
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+
+ if(communicator)
+ {
+ try
+ {
+ communicator->destroy();
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+ }
+
+ return status;
+}
diff --git a/cpp/test/Ice/location/ServerLocator.cpp b/cpp/test/Ice/location/ServerLocator.cpp
new file mode 100644
index 00000000000..dd9ed05ec9e
--- /dev/null
+++ b/cpp/test/Ice/location/ServerLocator.cpp
@@ -0,0 +1,54 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <ServerLocator.h>
+
+ServerLocatorRegistry::ServerLocatorRegistry()
+{
+}
+
+void
+ServerLocatorRegistry::addAdapter(const ::std::string& adapter, const ::Ice::ObjectPrx& object, const ::Ice::Current&)
+{
+ _adapters[adapter] = object;
+}
+
+
+Ice::ObjectPrx
+ServerLocatorRegistry::getAdapter(const ::std::string& adapter)
+{
+ return _adapters[adapter];
+}
+
+ServerLocator::ServerLocator(const ServerLocatorRegistryPtr& registry, const ::Ice::LocatorRegistryPrx& registryPrx) :
+ _registry(registry),
+ _registryPrx(registryPrx)
+{
+}
+
+Ice::ObjectPrx
+ServerLocator::findAdapterByName(const ::std::string& adapter, const ::Ice::Current&)
+{
+ return _registry->getAdapter(adapter);
+// std::map< std::string, Ice::ObjectPrx >::iterator p = _adapters.find(adapter);
+// if(p != _adapters.end())
+// {
+// return p->second;
+// }
+// return 0;
+}
+
+Ice::LocatorRegistryPrx
+ServerLocator::getRegistry(const ::Ice::Current&)
+{
+ return _registryPrx;
+}
+
diff --git a/cpp/test/Ice/location/ServerLocator.h b/cpp/test/Ice/location/ServerLocator.h
new file mode 100644
index 00000000000..d16825dfa3e
--- /dev/null
+++ b/cpp/test/Ice/location/ServerLocator.h
@@ -0,0 +1,53 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef SERVER_LOCATOR_H
+#define SERVER_LOCATOR_H
+
+#include <Ice/Locator.h>
+#include <Ice/ProxyF.h>
+
+class ServerLocatorRegistry : public Ice::LocatorRegistry
+{
+public:
+
+ ServerLocatorRegistry();
+
+ virtual void addAdapter(const ::std::string&, const ::Ice::ObjectPrx&, const ::Ice::Current&);
+
+ //
+ // Internal method
+ //
+ ::Ice::ObjectPrx getAdapter(const ::std::string&);
+
+private:
+
+ ::std::map< ::std::string, ::Ice::ObjectPrx> _adapters;
+};
+
+typedef ::IceInternal::Handle< ServerLocatorRegistry> ServerLocatorRegistryPtr;
+
+class ServerLocator : public ::Ice::Locator
+{
+public:
+
+ ServerLocator(const ::ServerLocatorRegistryPtr&, const ::Ice::LocatorRegistryPrx&);
+
+ virtual ::Ice::ObjectPrx findAdapterByName(const std::string&, const ::Ice::Current&);
+
+ virtual ::Ice::LocatorRegistryPrx getRegistry(const ::Ice::Current&);
+
+private:
+
+ ServerLocatorRegistryPtr _registry;
+ ::Ice::LocatorRegistryPrx _registryPrx;
+};
+
+#endif
diff --git a/cpp/test/Ice/location/Test.ice b/cpp/test/Ice/location/Test.ice
new file mode 100644
index 00000000000..84d884761b0
--- /dev/null
+++ b/cpp/test/Ice/location/Test.ice
@@ -0,0 +1,32 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef TEST_ICE
+#define TEST_ICE
+
+interface ServerManager
+{
+ void startServer();
+ void shutdown();
+};
+
+interface Hello
+{
+ void sayHello();
+};
+
+interface Test
+{
+ void shutdown();
+
+ Hello* getHello();
+};
+
+#endif
diff --git a/cpp/test/Ice/location/TestI.cpp b/cpp/test/Ice/location/TestI.cpp
new file mode 100644
index 00000000000..d563a714119
--- /dev/null
+++ b/cpp/test/Ice/location/TestI.cpp
@@ -0,0 +1,73 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <TestI.h>
+
+ServerManagerI::ServerManagerI(const Ice::ObjectAdapterPtr& adapter) :
+ _adapter(adapter)
+{
+}
+
+void
+ServerManagerI::startServer(const Ice::Current&)
+{
+ int argc = 0;
+ char** argv = 0;
+
+ //
+ // Simulate a server: create a new communicator and object
+ // adapter. The object adapter is started on a system allocated
+ // port. The configuration used here contains the Ice.Locator
+ // configuration variable. The new object adapter will register
+ // its endpoints with the locator and create references containing
+ // the adapter id instead of the endpoints.
+ //
+ _serverCommunicator = Ice::initialize(argc, argv);
+ Ice::ObjectAdapterPtr adapter = _serverCommunicator->createObjectAdapterWithEndpoints("TestAdapter", "default");
+
+ Ice::ObjectPrx locator = _serverCommunicator->stringToProxy("locator:default -p 12345");
+ adapter->setLocator(Ice::LocatorPrx::uncheckedCast(locator));
+
+ Ice::ObjectPtr object = new TestI(adapter);
+ Ice::ObjectPrx proxy = adapter->add(object, Ice::stringToIdentity("test"));
+ adapter->activate();
+}
+
+void
+ServerManagerI::shutdown(const Ice::Current&)
+{
+ _serverCommunicator->shutdown();
+ _adapter->getCommunicator()->shutdown();
+}
+
+TestI::TestI(const Ice::ObjectAdapterPtr& adapter) :
+ _adapter(adapter)
+{
+ Ice::ObjectPtr servant = new HelloI();
+ _adapter->add(servant, Ice::stringToIdentity("hello"));
+}
+
+void
+TestI::shutdown(const Ice::Current&)
+{
+ _adapter->getCommunicator()->shutdown();
+}
+
+HelloPrx
+TestI::getHello(const Ice::Current&)
+{
+ return HelloPrx::uncheckedCast(_adapter->createProxy(Ice::stringToIdentity("hello")));
+}
+
+void
+HelloI::sayHello(const Ice::Current&)
+{
+}
diff --git a/cpp/test/Ice/location/TestI.h b/cpp/test/Ice/location/TestI.h
new file mode 100644
index 00000000000..4c84cdd6523
--- /dev/null
+++ b/cpp/test/Ice/location/TestI.h
@@ -0,0 +1,52 @@
+// **********************************************************************
+//
+// Copyright (c) 2001
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef TEST_I_H
+#define TEST_I_H
+
+#include <Test.h>
+
+class ServerManagerI : public ServerManager
+{
+public:
+ ServerManagerI(const Ice::ObjectAdapterPtr&);
+
+ virtual void startServer(const Ice::Current&);
+ virtual void shutdown(const Ice::Current&);
+
+private:
+
+ Ice::ObjectAdapterPtr _adapter;
+ Ice::CommunicatorPtr _serverCommunicator;
+
+};
+
+class HelloI : public Hello
+{
+public:
+
+ virtual void sayHello(const Ice::Current&);
+};
+
+class TestI : public Test
+{
+public:
+
+ TestI(const Ice::ObjectAdapterPtr&);
+
+ virtual void shutdown(const Ice::Current&);
+ virtual HelloPrx getHello(const Ice::Current&);
+
+private:
+
+ Ice::ObjectAdapterPtr _adapter;
+};
+
+#endif
diff --git a/cpp/test/Ice/location/locationC.dsp b/cpp/test/Ice/location/locationC.dsp
new file mode 100644
index 00000000000..d5b7764e975
--- /dev/null
+++ b/cpp/test/Ice/location/locationC.dsp
@@ -0,0 +1,161 @@
+# Microsoft Developer Studio Project File - Name="locationC" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=locationC - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "locationC.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "locationC.mak" CFG="locationC - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "locationC - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "locationC - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "locationC - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"client.exe" /libpath:"../../../lib"
+# SUBTRACT LINK32 /debug /nodefaultlib
+
+!ELSEIF "$(CFG)" == "locationC - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../include" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /GZ /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"client.exe" /pdbtype:sept /libpath:"../../../lib"
+# SUBTRACT LINK32 /nodefaultlib
+
+!ENDIF
+
+# Begin Target
+
+# Name "locationC - Win32 Release"
+# Name "locationC - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\AllTests.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Test.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Test.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Test.ice
+
+!IF "$(CFG)" == "locationC - Win32 Release"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "locationC - Win32 Debug"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/test/Ice/location/locationCOL.dsp b/cpp/test/Ice/location/locationCOL.dsp
new file mode 100644
index 00000000000..1382d454e18
--- /dev/null
+++ b/cpp/test/Ice/location/locationCOL.dsp
@@ -0,0 +1,169 @@
+# Microsoft Developer Studio Project File - Name="locationCOL" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=locationCOL - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "locationCOL.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "locationCOL.mak" CFG="locationCOL - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "locationCOL - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "locationCOL - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "locationCOL - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"collocated.exe" /libpath:"../../../lib"
+# SUBTRACT LINK32 /debug /nodefaultlib
+
+!ELSEIF "$(CFG)" == "locationCOL - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../include" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /GZ /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"collocated.exe" /pdbtype:sept /libpath:"../../../lib"
+# SUBTRACT LINK32 /nodefaultlib
+
+!ENDIF
+
+# Begin Target
+
+# Name "locationCOL - Win32 Release"
+# Name "locationCOL - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\AllTests.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Collocated.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Test.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\TestI.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Test.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\TestI.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Test.ice
+
+!IF "$(CFG)" == "locationCOL - Win32 Release"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "locationCOL - Win32 Debug"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/test/Ice/location/locationS.dsp b/cpp/test/Ice/location/locationS.dsp
new file mode 100644
index 00000000000..a7769f79416
--- /dev/null
+++ b/cpp/test/Ice/location/locationS.dsp
@@ -0,0 +1,169 @@
+# Microsoft Developer Studio Project File - Name="locationS" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=locationS - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "locationS.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "locationS.mak" CFG="locationS - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "locationS - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "locationS - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "locationS - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"server.exe" /libpath:"../../../lib"
+# SUBTRACT LINK32 /debug /nodefaultlib
+
+!ELSEIF "$(CFG)" == "locationS - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../include" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /GZ /c
+# SUBTRACT CPP /Fr
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"../../../lib"
+# SUBTRACT LINK32 /nodefaultlib
+
+!ENDIF
+
+# Begin Target
+
+# Name "locationS - Win32 Release"
+# Name "locationS - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Server.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ServerLocator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Test.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\TestI.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Test.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\TestI.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Test.ice
+
+!IF "$(CFG)" == "locationS - Win32 Release"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "locationS - Win32 Debug"
+
+USERDEP__TEST_="../../../bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Test.ice
+
+BuildCmds= \
+ set PATH=%PATH%;..\..\..\lib \
+ ..\..\..\bin\slice2cpp.exe Test.ice \
+
+
+"Test.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Test.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/test/Ice/location/run.py b/cpp/test/Ice/location/run.py
new file mode 100755
index 00000000000..a131d10a756
--- /dev/null
+++ b/cpp/test/Ice/location/run.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2001
+# MutableRealms, Inc.
+# Huntsville, AL, USA
+#
+# All Rights Reserved
+#
+# **********************************************************************
+
+import os, sys
+
+for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
+ toplevel = os.path.normpath(toplevel)
+ if os.path.exists(os.path.join(toplevel, "config", "TestUtil.py")):
+ break
+else:
+ raise "can't find toplevel directory!"
+
+sys.path.append(os.path.join(toplevel, "config"))
+import TestUtil
+
+name = os.path.join("Ice", "location")
+
+TestUtil.mixedClientServerTest(toplevel, name)
+sys.exit(0)
diff --git a/cpp/test/IcePack/simple/.depend b/cpp/test/IcePack/simple/.depend
index 7200eafb9ac..5cc85766b3b 100644
--- a/cpp/test/IcePack/simple/.depend
+++ b/cpp/test/IcePack/simple/.depend
@@ -1,8 +1,8 @@
Test.o: Test.cpp Test.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/InstanceF.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/Stream.h ../../../include/Ice/BuiltinSequences.h
-Client.o: Client.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
-AllTests.o: AllTests.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
-TestI.o: TestI.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
-Server.o: Server.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
-TestI.o: TestI.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
-Collocated.o: Collocated.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
-AllTests.o: AllTests.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
+Client.o: Client.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
+AllTests.o: AllTests.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
+TestI.o: TestI.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
+Server.o: Server.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
+TestI.o: TestI.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
+Collocated.o: Collocated.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h TestI.h Test.h
+AllTests.o: AllTests.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Initialize.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Exception.h ../../../include/IceUtil/Config.h ../../../include/Ice/Config.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Exception.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/StreamF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/InstanceF.h ../../../include/Ice/BuiltinSequences.h ../../../include/Ice/Proxy.h ../../../include/IceUtil/Mutex.h ../../../include/IceUtil/Lock.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/ConnectionF.h ../../../include/Ice/EndpointF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Current.h ../../../include/Ice/Identity.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/IceUtil/Monitor.h ../../../include/IceUtil/Cond.h ../../../include/IceUtil/Time.h ../../../include/Ice/BasicStream.h ../../../include/Ice/Buffer.h ../../../include/Ice/ObjectFactoryF.h ../../../include/Ice/Incoming.h ../../../include/Ice/Direct.h ../../../include/Ice/ServantLocatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/LoggerUtil.h ../../../include/Ice/LoggerF.h ../../../include/Ice/Communicator.h ../../../include/Ice/UserExceptionFactoryF.h ../../../include/Ice/RouterF.h ../../../include/Ice/PluginF.h ../../../include/Ice/ObjectFactory.h ../../../include/Ice/UserExceptionFactory.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/LocatorF.h ../../../include/Ice/ServantLocator.h ../../../include/Ice/IdentityUtil.h ../../include/TestCommon.h Test.h
diff --git a/cpp/test/IcePack/simple/AllTests.cpp b/cpp/test/IcePack/simple/AllTests.cpp
index e581de549c0..71c33113860 100644
--- a/cpp/test/IcePack/simple/AllTests.cpp
+++ b/cpp/test/IcePack/simple/AllTests.cpp
@@ -18,7 +18,7 @@ TestPrx
allTests(const Ice::CommunicatorPtr& communicator)
{
cout << "testing stringToProxy... " << flush;
- string ref = "test:default -p 12346 -t 2000";
+ string ref = "test @ TestAdapter";
Ice::ObjectPrx base = communicator->stringToProxy(ref);
test(base);
cout << "ok" << endl;
diff --git a/cpp/test/IcePack/simple/Collocated.cpp b/cpp/test/IcePack/simple/Collocated.cpp
index dea6eab61bb..8bc828518ab 100644
--- a/cpp/test/IcePack/simple/Collocated.cpp
+++ b/cpp/test/IcePack/simple/Collocated.cpp
@@ -16,7 +16,7 @@ using namespace std;
int
run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
{
- string endpts = "default -p 12345 -t 2000";
+ string endpts = "default -t 2000";
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("TestAdapter", endpts);
Ice::ObjectPtr object = new TestI(adapter);
adapter->add(object, Ice::stringToIdentity("test"));
diff --git a/cpp/test/IcePack/simple/Server.cpp b/cpp/test/IcePack/simple/Server.cpp
index 0e81cf011d5..e97666f8cd7 100644
--- a/cpp/test/IcePack/simple/Server.cpp
+++ b/cpp/test/IcePack/simple/Server.cpp
@@ -16,7 +16,7 @@ using namespace std;
int
run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
{
- string endpts = "default -p 12345 -t 2000";
+ string endpts = "default -t 2000";
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("TestAdapter", endpts);
Ice::ObjectPtr object = new TestI(adapter);
adapter->add(object, Ice::stringToIdentity("test"));
diff --git a/cpp/test/IcePack/simple/run.py b/cpp/test/IcePack/simple/run.py
index 08d901d6610..ed0eada708d 100755
--- a/cpp/test/IcePack/simple/run.py
+++ b/cpp/test/IcePack/simple/run.py
@@ -20,37 +20,49 @@ else:
sys.path.append(os.path.join(toplevel, "config"))
import TestUtil
+import IcePackAdmin
-icePack = os.path.join(toplevel, "bin", "icepack")
-icePackAdmin = os.path.join(toplevel, "bin", "icepackadmin")
-
-updatedServerOptions = TestUtil.serverOptions.replace("TOPLEVELDIR", toplevel)
-updatedClientOptions = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel)
-updatedClientServerOptions = TestUtil.clientServerOptions.replace("TOPLEVELDIR", toplevel)
-
-print "starting icepack...",
-command = icePack + updatedClientServerOptions + ' --nowarn' + \
- r' "--IcePack.Forward.Endpoints=default -p 12346 -t 5000"' + \
- r' "--IcePack.Admin.Endpoints=default -p 12347 -t 5000"'
-icePackPipe = os.popen(command)
-TestUtil.getServerPid(icePackPipe)
-TestUtil.getAdapterReady(icePackPipe)
-TestUtil.getAdapterReady(icePackPipe)
-print "ok"
+name = os.path.join("IcePack", "simple")
+
+#
+# Add locator options for client and servers. All servers are now
+# clients since they need to make requests to IcePack.
+#
+additionalOptions = " --Ice.Default.Locator=\"IcePack/locator:default -p 12346\""
+
+#
+# Start IcePack
+#
+icePackPipe = IcePackAdmin.startIcePack(toplevel, "12346")
-print "registering server with icepack...",
-command = icePackAdmin + updatedClientOptions + \
- r' "--IcePack.Admin.Endpoints=default -p 12347 -t 5000" -e "add \"test:default -p 12345 -t 5000\""'
-icePackAdminPipe = os.popen(command)
-icePackAdminStatus = icePackAdminPipe.close()
-if icePackAdminStatus:
+#
+# Test client/server, collocated w/o automatic activation.
+#
+TestUtil.mixedClientServerTestWithOptions(toplevel, name, additionalOptions, additionalOptions)
+TestUtil.collocatedTestWithOptions(toplevel, name, additionalOptions)
+
+#
+# Get adapter list, ensure that TestAdapter is in the list.
+#
+print "testing adapter registration...",
+hasTestAdapter = 0;
+icePackAdminPipe = IcePackAdmin.listAdapters(toplevel);
+for adaptername in icePackAdminPipe.xreadlines():
+ if adaptername == "TestAdapter\n":
+ hasTestAdapter = 1
+
+if hasTestAdapter == 0:
+ print "failed!"
TestUtil.killServers()
sys.exit(1)
+
+icePackStatus = icePackAdminPipe.close()
+if icePackStatus:
+ TestUtil.killServers()
+ sys.exit(1)
print "ok"
-name = os.path.join("IcePack", "simple")
-TestUtil.clientServerTest(toplevel, name)
-TestUtil.collocatedTest(toplevel, name)
+IcePackAdmin.removeAdapter(toplevel, "TestAdapter")
#
# This test doesn't work under Windows.
@@ -61,19 +73,40 @@ if TestUtil.isWin32() == 0:
server = os.path.join(testdir, "server")
client = os.path.join(testdir, "client")
- print "registering server with icepack for automatic activation...",
- command = icePackAdmin + updatedClientOptions + \
- r' "--IcePack.Admin.Endpoints=default -p 12347 -t 5000"' + \
- r' -e "add \"test:default -p 12345 -t 5000\" ' + server + updatedServerOptions + '"'
- icePackAdminPipe = os.popen(command)
- icePackAdminStatus = icePackAdminPipe.close()
- if icePackAdminStatus:
+ #
+ # Don't pass Ice.Locator.* properties for the server. The IcePack
+ # activator should take care of this.
+ #
+ updatedClientServerOptions = TestUtil.clientServerOptions.replace("TOPLEVELDIR", toplevel)
+
+ print "registering server with icepack...",
+ IcePackAdmin.addServer(toplevel, "server", server, "", updatedClientServerOptions, "TestAdapter")
+ print "ok"
+
+ print "testing adapter registration...",
+ hasTestAdapter = 0;
+ icePackAdminPipe = IcePackAdmin.listAdapters(toplevel);
+ for adaptername in icePackAdminPipe.xreadlines():
+ if adaptername == "TestAdapter\n":
+ hasTestAdapter = 1
+
+ if hasTestAdapter == 0:
+ print "failed!"
TestUtil.killServers()
sys.exit(1)
- print "ok"
+
+ icePackStatus = icePackAdminPipe.close()
+ if icePackStatus:
+ TestUtil.killServers()
+ sys.exit(1)
+
+ print "ok"
+
+# IcePackAdmin.startServer(toplevel, "server")
+
+ updatedClientOptions = TestUtil.clientOptions.replace("TOPLEVELDIR", toplevel) + additionalOptions
print "starting client...",
- exit
clientPipe = os.popen(client + updatedClientOptions)
print "ok"
@@ -86,20 +119,6 @@ if TestUtil.isWin32() == 0:
TestUtil.killServers()
sys.exit(1)
-print "shutting down icepack...",
-command = icePackAdmin + updatedClientOptions + \
- r' "--IcePack.Admin.Endpoints=default -p 12347 -t 5000" -e "shutdown"'
-icePackAdminPipe = os.popen(command)
-icePackAdminStatus = icePackAdminPipe.close()
-if icePackAdminStatus:
- TestUtil.killServers()
- sys.exit(1)
-print "ok"
-
-icePackStatus = icePackPipe.close()
-
-if icePackStatus:
- TestUtil.killServers()
- sys.exit(1)
+IcePackAdmin.shutdownIcePack(toplevel, icePackPipe)
sys.exit(0)