diff options
author | Marc Laukien <marc@zeroc.com> | 2002-05-08 15:04:27 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-05-08 15:04:27 +0000 |
commit | 802de14f82c69e5683d5cfaa40d069ce94dc77d8 (patch) | |
tree | c60545ee3e6b0ab33c1006f4c259b948a58ca672 /cpp/src | |
parent | overwrites (diff) | |
download | ice-802de14f82c69e5683d5cfaa40d069ce94dc77d8.tar.bz2 ice-802de14f82c69e5683d5cfaa40d069ce94dc77d8.tar.xz ice-802de14f82c69e5683d5cfaa40d069ce94dc77d8.zip |
overwrites
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Connection.cpp | 33 | ||||
-rw-r--r-- | cpp/src/Ice/Connection.h | 2 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionFactory.cpp | 41 |
3 files changed, 63 insertions, 13 deletions
diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp index dfafdd59a45..b3aff7f0b2f 100644 --- a/cpp/src/Ice/Connection.cpp +++ b/cpp/src/Ice/Connection.cpp @@ -117,9 +117,16 @@ IceInternal::Connection::sendRequest(Outgoing* out, bool oneway, bool comp) copy(p, p + sizeof(Int), os->b.begin() + headerSize); } - if (_defaultsAndOverwrites->overwriteCompress) + if (os->b.size() < 100) // Don't compress if message size is smaller than 100 bytes. { - comp = _defaultsAndOverwrites->overwriteCompressValue; + comp = false; + } + else + { + if (_defaultsAndOverwrites->overwriteCompress) + { + comp = _defaultsAndOverwrites->overwriteCompressValue; + } } if (comp) @@ -250,9 +257,16 @@ IceInternal::Connection::flushBatchRequest(bool comp) _batchStream.i = _batchStream.b.begin(); - if (_defaultsAndOverwrites->overwriteCompress) + if (_batchStream.b.size() < 100) // Don't compress if message size is smaller than 100 bytes. { - comp = _defaultsAndOverwrites->overwriteCompressValue; + comp = false; + } + else + { + if (_defaultsAndOverwrites->overwriteCompress) + { + comp = _defaultsAndOverwrites->overwriteCompressValue; + } } if (comp) @@ -654,9 +668,16 @@ IceInternal::Connection::message(BasicStream& stream, const ThreadPoolPtr& threa return; } - if (_defaultsAndOverwrites->overwriteCompress) + if (os->b.size() < 100) // Don't compress if message size is smaller than 100 bytes. { - comp = _defaultsAndOverwrites->overwriteCompressValue; + comp = false; + } + else + { + if (_defaultsAndOverwrites->overwriteCompress) + { + comp = _defaultsAndOverwrites->overwriteCompressValue; + } } if (comp) diff --git a/cpp/src/Ice/Connection.h b/cpp/src/Ice/Connection.h index e6b9f288747..7ab305c5f5b 100644 --- a/cpp/src/Ice/Connection.h +++ b/cpp/src/Ice/Connection.h @@ -22,6 +22,7 @@ #include <Ice/ThreadPoolF.h> #include <Ice/LoggerF.h> #include <Ice/TraceLevelsF.h> +#include <Ice/DefaultsAndOverwritesF.h> #include <Ice/EventHandler.h> namespace Ice @@ -100,6 +101,7 @@ private: ::Ice::ObjectAdapterPtr _adapter; ::Ice::LoggerPtr _logger; TraceLevelsPtr _traceLevels; + DefaultsAndOverwritesPtr _defaultsAndOverwrites; ThreadPoolPtr _clientThreadPool; ThreadPoolPtr _serverThreadPool; ::Ice::Int _nextRequestId; 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 <Ice/Instance.h> #include <Ice/LoggerUtil.h> #include <Ice/TraceLevels.h> +#include <Ice/DefaultsAndOverwrites.h> #include <Ice/Properties.h> #include <Ice/Transceiver.h> #include <Ice/Connector.h> @@ -66,10 +67,17 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointPtr>& endpoi // // Search for existing connections. // + DefaultsAndOverwritesPtr defaultsAndOverwrites = _instance->defaultsAndOverwrites(); vector<EndpointPtr>::const_iterator q; for (q = endpoints.begin(); q != endpoints.end(); ++q) { - map<EndpointPtr, ConnectionPtr>::const_iterator r = _connections.find(*q); + EndpointPtr endpoint = *q; + if (defaultsAndOverwrites->overwriteTimeout) + { + endpoint = endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + + map<EndpointPtr, ConnectionPtr>::const_iterator r = _connections.find(endpoint); if (r != _connections.end()) { return r->second; @@ -87,19 +95,25 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointPtr>& 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<EndpointPtr>::const_iterator p; for (p = proxy->__reference()->endpoints.begin(); p != proxy->__reference()->endpoints.end(); ++p) { - map<EndpointPtr, ConnectionPtr>::const_iterator q = _connections.find(*p); + EndpointPtr endpoint = *p; + if (defaultsAndOverwrites->overwriteTimeout) + { + endpoint = endpoint->timeout(defaultsAndOverwrites->overwriteTimeoutValue); + } + + map<EndpointPtr, ConnectionPtr>::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 |