From 802de14f82c69e5683d5cfaa40d069ce94dc77d8 Mon Sep 17 00:00:00 2001 From: Marc Laukien Date: Wed, 8 May 2002 15:04:27 +0000 Subject: overwrites --- cpp/src/Ice/ConnectionFactory.cpp | 41 ++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'cpp/src/Ice/ConnectionFactory.cpp') diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp index 015bed0ebc3..2c8a07ba7a9 100644 --- a/cpp/src/Ice/ConnectionFactory.cpp +++ b/cpp/src/Ice/ConnectionFactory.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -66,10 +67,17 @@ IceInternal::OutgoingConnectionFactory::create(const vector& endpoi // // Search for existing connections. // + DefaultsAndOverwritesPtr defaultsAndOverwrites = _instance->defaultsAndOverwrites(); vector::const_iterator q; for (q = endpoints.begin(); q != endpoints.end(); ++q) { - map::const_iterator r = _connections.find(*q); + EndpointPtr endpoint = *q; + if (defaultsAndOverwrites->overwriteTimeout) + { + endpoint = endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + + map::const_iterator r = _connections.find(endpoint); if (r != _connections.end()) { return r->second; @@ -87,19 +95,25 @@ IceInternal::OutgoingConnectionFactory::create(const vector& endpoi q = endpoints.begin(); while (q != endpoints.end()) { + EndpointPtr endpoint = *q; + if (defaultsAndOverwrites->overwriteTimeout) + { + endpoint = endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + try { - TransceiverPtr transceiver = (*q)->clientTransceiver(); + TransceiverPtr transceiver = endpoint->clientTransceiver(); if (!transceiver) { - ConnectorPtr connector = (*q)->connector(); + ConnectorPtr connector = endpoint->connector(); assert(connector); - transceiver = connector->connect((*q)->timeout()); + transceiver = connector->connect(endpoint->timeout()); assert(transceiver); } - connection = new Connection(_instance, transceiver, *q, 0); + connection = new Connection(_instance, transceiver, endpoint, 0); connection->activate(); - _connections.insert(make_pair(*q, connection)); + _connections.insert(make_pair(endpoint, connection)); break; } catch (const SocketException& ex) @@ -163,10 +177,17 @@ IceInternal::OutgoingConnectionFactory::setRouter(const RouterPrx& router) // ObjectPrx proxy = routerInfo->getClientProxy(); ObjectAdapterPtr adapter = routerInfo->getAdapter(); + DefaultsAndOverwritesPtr defaultsAndOverwrites = _instance->defaultsAndOverwrites(); vector::const_iterator p; for (p = proxy->__reference()->endpoints.begin(); p != proxy->__reference()->endpoints.end(); ++p) { - map::const_iterator q = _connections.find(*p); + EndpointPtr endpoint = *p; + if (defaultsAndOverwrites->overwriteTimeout) + { + endpoint = endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + + map::const_iterator q = _connections.find(endpoint); if (q != _connections.end()) { q->second->setAdapter(adapter); @@ -409,6 +430,12 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance _adapter(adapter), _state(StateHolding) { + DefaultsAndOverwritesPtr defaultsAndOverwrites = _instance->defaultsAndOverwrites(); + if (defaultsAndOverwrites->overwriteTimeout) + { + _endpoint = _endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + _warn = _instance->properties()->getPropertyAsInt("Ice.ConnectionWarnings") > 0; try -- cgit v1.2.3