diff options
author | Marc Laukien <marc@zeroc.com> | 2002-01-14 22:39:58 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-01-14 22:39:58 +0000 |
commit | c0c6c0b98b0819f63cc6927a7041034ee48f481d (patch) | |
tree | 4b81109e1b222055020bec10ad4e2f2841454982 /cpp/src/Ice/Reference.cpp | |
parent | glacier integration (diff) | |
download | ice-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.cpp | 59 |
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, |