summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-01-14 22:39:58 +0000
committerMarc Laukien <marc@zeroc.com>2002-01-14 22:39:58 +0000
commitc0c6c0b98b0819f63cc6927a7041034ee48f481d (patch)
tree4b81109e1b222055020bec10ad4e2f2841454982 /cpp/src/Ice/Reference.cpp
parentglacier integration (diff)
downloadice-c0c6c0b98b0819f63cc6927a7041034ee48f481d.tar.bz2
ice-c0c6c0b98b0819f63cc6927a7041034ee48f481d.tar.xz
ice-c0c6c0b98b0819f63cc6927a7041034ee48f481d.zip
router fixes
Diffstat (limited to 'cpp/src/Ice/Reference.cpp')
-rw-r--r--cpp/src/Ice/Reference.cpp59
1 files changed, 55 insertions, 4 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 454d39f9bd9..c40c30567a7 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -205,8 +205,52 @@ string
IceInternal::Reference::toString() const
{
ostringstream s;
+
s << identity;
+ if (!facet.empty())
+ {
+ s << " -f " << facet;
+ }
+
+ switch (mode)
+ {
+ case ModeTwoway:
+ {
+ s << " -t";
+ break;
+ }
+
+ case ModeOneway:
+ {
+ s << " -o";
+ break;
+ }
+
+ case ModeBatchOneway:
+ {
+ s << " -O";
+ break;
+ }
+
+ case ModeDatagram:
+ {
+ s << " -d";
+ break;
+ }
+
+ case ModeBatchDatagram:
+ {
+ s << " -D";
+ break;
+ }
+ }
+
+ if (secure)
+ {
+ s << " -s";
+ }
+
vector<EndpointPtr>::const_iterator p;
for (p = origEndpoints.begin(); p != origEndpoints.end(); ++p)
@@ -283,10 +327,17 @@ IceInternal::Reference::changeTimeout(int timeout) const
RouterInfoPtr newRouterInfo;
if (routerInfo)
{
- RouterPrx newRouter = RouterPrx::uncheckedCast(routerInfo->getRouter()->ice_timeout(timeout));
- ObjectPrx newClientProxy = routerInfo->getClientProxy()->ice_timeout(timeout);
- newRouterInfo = instance->routerManager()->get(newRouter);
- newRouterInfo->setClientProxy(newClientProxy);
+ try
+ {
+ RouterPrx newRouter = RouterPrx::uncheckedCast(routerInfo->getRouter()->ice_timeout(timeout));
+ ObjectPrx newClientProxy = routerInfo->getClientProxy()->ice_timeout(timeout);
+ newRouterInfo = instance->routerManager()->get(newRouter);
+ newRouterInfo->setClientProxy(newClientProxy);
+ }
+ catch (const NoEndpointException&)
+ {
+ // Ignore non-existing client proxies.
+ }
}
return instance->referenceFactory()->create(identity, facet, mode, secure,