diff options
author | Mark Spruiell <mes@zeroc.com> | 2007-01-26 16:58:00 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2007-01-26 16:58:00 +0000 |
commit | 71f7fff702750e9b779f645d21075562e5c80a40 (patch) | |
tree | 0f059491911ecc5ea3f6c680b0ae05d0f67e7bfd /cpp/src/Ice/ReferenceFactory.cpp | |
parent | Synced with other assemby files (diff) | |
download | ice-71f7fff702750e9b779f645d21075562e5c80a40.tar.bz2 ice-71f7fff702750e9b779f645d21075562e5c80a40.tar.xz ice-71f7fff702750e9b779f645d21075562e5c80a40.zip |
preserve proxy settings for CacheConnection, EndpointSelection,
ThreadPerConnection
Diffstat (limited to 'cpp/src/Ice/ReferenceFactory.cpp')
-rw-r--r-- | cpp/src/Ice/ReferenceFactory.cpp | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/cpp/src/Ice/ReferenceFactory.cpp b/cpp/src/Ice/ReferenceFactory.cpp index 360e4f38725..9e2105beaa7 100644 --- a/cpp/src/Ice/ReferenceFactory.cpp +++ b/cpp/src/Ice/ReferenceFactory.cpp @@ -59,7 +59,10 @@ IceInternal::ReferenceFactory::create(const Identity& ident, bool preferSecure, const vector<EndpointIPtr>& endpoints, const RouterInfoPtr& routerInfo, - bool collocationOptimization) + bool collocationOptimization, + bool cacheConnection, + EndpointSelectionType endpointSelection, + bool threadPerConnection) { IceUtil::Mutex::Lock sync(*this); @@ -77,7 +80,8 @@ IceInternal::ReferenceFactory::create(const Identity& ident, // Create new reference // return new DirectReference(_instance, _communicator, ident, context, facet, mode, secure, preferSecure, - endpoints, routerInfo, collocationOptimization); + endpoints, routerInfo, collocationOptimization, cacheConnection, endpointSelection, + threadPerConnection); } ReferencePtr @@ -91,6 +95,9 @@ IceInternal::ReferenceFactory::create(const Identity& ident, const RouterInfoPtr& routerInfo, const LocatorInfoPtr& locatorInfo, bool collocationOptimization, + bool cacheConnection, + EndpointSelectionType endpointSelection, + bool threadPerConnection, int locatorCacheTimeout) { IceUtil::Mutex::Lock sync(*this); @@ -109,7 +116,8 @@ IceInternal::ReferenceFactory::create(const Identity& ident, // Create new reference // return new IndirectReference(_instance, _communicator, ident, context, facet, mode, secure, preferSecure, - adapterId, routerInfo, locatorInfo, collocationOptimization, locatorCacheTimeout); + adapterId, routerInfo, locatorInfo, collocationOptimization, cacheConnection, + endpointSelection, threadPerConnection, locatorCacheTimeout); } ReferencePtr @@ -425,7 +433,8 @@ IceInternal::ReferenceFactory::create(const string& str) return create(ident, _instance->getDefaultContext(), facet, mode, secure, _instance->defaultsAndOverrides()->defaultPreferSecure, "", routerInfo, locatorInfo, _instance->defaultsAndOverrides()->defaultCollocationOptimization, - _instance->defaultsAndOverrides()->defaultLocatorCacheTimeout); + true, _instance->defaultsAndOverrides()->defaultEndpointSelection, + _instance->threadPerConnection(), _instance->defaultsAndOverrides()->defaultLocatorCacheTimeout); } vector<EndpointIPtr> endpoints; @@ -479,7 +488,9 @@ IceInternal::ReferenceFactory::create(const string& str) return create(ident, _instance->getDefaultContext(), facet, mode, secure, _instance->defaultsAndOverrides()->defaultPreferSecure, endpoints, routerInfo, - _instance->defaultsAndOverrides()->defaultCollocationOptimization); + _instance->defaultsAndOverrides()->defaultCollocationOptimization, true, + _instance->defaultsAndOverrides()->defaultEndpointSelection, + _instance->threadPerConnection()); break; } case '@': @@ -531,7 +542,8 @@ IceInternal::ReferenceFactory::create(const string& str) return create(ident, _instance->getDefaultContext(), facet, mode, secure, _instance->defaultsAndOverrides()->defaultPreferSecure, adapter, routerInfo, locatorInfo, - _instance->defaultsAndOverrides()->defaultCollocationOptimization, + _instance->defaultsAndOverrides()->defaultCollocationOptimization, true, + _instance->defaultsAndOverrides()->defaultEndpointSelection, _instance->threadPerConnection(), _instance->defaultsAndOverrides()->defaultLocatorCacheTimeout); break; } @@ -615,6 +627,12 @@ IceInternal::ReferenceFactory::createFromProperties(const string& propertyPrefix ref = ref->changeCollocationOptimization(properties->getPropertyAsInt(property) > 0); } + property = propertyPrefix + ".ThreadPerConnection"; + if(!properties->getProperty(property).empty()) + { + ref = ref->changeThreadPerConnection(properties->getPropertyAsInt(property) > 0); + } + return ref; } @@ -676,14 +694,16 @@ IceInternal::ReferenceFactory::create(const Identity& ident, BasicStream* s) } return create(ident, _instance->getDefaultContext(), facet, mode, secure, _instance->defaultsAndOverrides()->defaultPreferSecure, endpoints, routerInfo, - _instance->defaultsAndOverrides()->defaultCollocationOptimization); + _instance->defaultsAndOverrides()->defaultCollocationOptimization, true, + _instance->defaultsAndOverrides()->defaultEndpointSelection, _instance->threadPerConnection()); } else { s->read(adapterId); return create(ident, _instance->getDefaultContext(), facet, mode, secure, _instance->defaultsAndOverrides()->defaultPreferSecure, adapterId, routerInfo, locatorInfo, - _instance->defaultsAndOverrides()->defaultCollocationOptimization, + _instance->defaultsAndOverrides()->defaultCollocationOptimization, true, + _instance->defaultsAndOverrides()->defaultEndpointSelection, _instance->threadPerConnection(), _instance->defaultsAndOverrides()->defaultLocatorCacheTimeout); } } |