diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-09-08 07:26:18 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-09-08 07:26:18 +0000 |
commit | 5b9b0d512c8d0ccc4c0e480b802fa841f38fd55c (patch) | |
tree | da30228a4ed4468ee10db027590ba9a10a3e4e5d /cppe/src | |
parent | fix build problem. (diff) | |
download | ice-5b9b0d512c8d0ccc4c0e480b802fa841f38fd55c.tar.bz2 ice-5b9b0d512c8d0ccc4c0e480b802fa841f38fd55c.tar.xz ice-5b9b0d512c8d0ccc4c0e480b802fa841f38fd55c.zip |
http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=460
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/Instance.cpp | 2 | ||||
-rw-r--r-- | cppe/src/IceE/Instance.h | 2 | ||||
-rw-r--r-- | cppe/src/IceE/Proxy.cpp | 26 | ||||
-rw-r--r-- | cppe/src/IceE/Reference.cpp | 50 | ||||
-rw-r--r-- | cppe/src/IceE/Reference.h | 2 |
5 files changed, 18 insertions, 64 deletions
diff --git a/cppe/src/IceE/Instance.cpp b/cppe/src/IceE/Instance.cpp index 8b088291025..612a28fd6c2 100644 --- a/cppe/src/IceE/Instance.cpp +++ b/cppe/src/IceE/Instance.cpp @@ -274,7 +274,7 @@ IceInternal::Instance::setDefaultContext(const Context& ctx) _defaultContext = ctx; } -const Context& +Context IceInternal::Instance::getDefaultContext() const { IceUtil::RecMutex::Lock sync(*this); diff --git a/cppe/src/IceE/Instance.h b/cppe/src/IceE/Instance.h index 16e1bbc1c33..8565e1b313e 100644 --- a/cppe/src/IceE/Instance.h +++ b/cppe/src/IceE/Instance.h @@ -57,7 +57,7 @@ public: void flushBatchRequests(); #endif void setDefaultContext(const ::Ice::Context&); - const ::Ice::Context& getDefaultContext() const; + ::Ice::Context getDefaultContext() const; size_t threadPerConnectionStackSize() const; #ifndef ICEE_PURE_CLIENT diff --git a/cppe/src/IceE/Proxy.cpp b/cppe/src/IceE/Proxy.cpp index c10b7718c40..0b2dcf00706 100644 --- a/cppe/src/IceE/Proxy.cpp +++ b/cppe/src/IceE/Proxy.cpp @@ -358,31 +358,17 @@ IceProxy::Ice::Object::ice_getContext() const ObjectPrx IceProxy::Ice::Object::ice_newContext(const Context& newContext) const { - if(_reference->hasContext() && newContext == _reference->getContext()) - { - return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this)); - } - else - { - ObjectPrx proxy(new ::IceProxy::Ice::Object()); - proxy->setup(_reference->changeContext(newContext)); - return proxy; - } + ObjectPrx proxy(new ::IceProxy::Ice::Object()); + proxy->setup(_reference->changeContext(newContext)); + return proxy; } ObjectPrx IceProxy::Ice::Object::ice_defaultContext() const { - if(!_reference->hasContext()) - { - return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this)); - } - else - { - ObjectPrx proxy(new ::IceProxy::Ice::Object()); - proxy->setup(_reference->defaultContext()); - return proxy; - } + ObjectPrx proxy(new ::IceProxy::Ice::Object()); + proxy->setup(_reference->defaultContext()); + return proxy; } Identity diff --git a/cppe/src/IceE/Reference.cpp b/cppe/src/IceE/Reference.cpp index f45c1f95dad..2cde67ede2f 100644 --- a/cppe/src/IceE/Reference.cpp +++ b/cppe/src/IceE/Reference.cpp @@ -42,19 +42,14 @@ void IceInternal::decRef(IceInternal::Reference* p) { p->__decRef(); } const Context& IceInternal::Reference::getContext() const { - return _hasContext ? _context : _instance->getDefaultContext(); + return _context; } ReferencePtr IceInternal::Reference::defaultContext() const { - if(!_hasContext) - { - return ReferencePtr(const_cast<Reference*>(this)); - } ReferencePtr r = _instance->referenceFactory()->copy(this); - r->_hasContext = false; - r->_context.clear(); + r->_context = _instance->getDefaultContext(); return r; } @@ -67,12 +62,7 @@ IceInternal::Reference::getCommunicator() const ReferencePtr IceInternal::Reference::changeContext(const Context& newContext) const { - if(_hasContext && newContext == _context) - { - return ReferencePtr(const_cast<Reference*>(this)); - } ReferencePtr r = _instance->referenceFactory()->copy(this); - r->_hasContext = true; r->_context = newContext; return r; } @@ -119,8 +109,7 @@ IceInternal::Reference::changeDefault() const ReferencePtr r = _instance->referenceFactory()->copy(this); r->_mode = ModeTwoway; r->_secure = false; - r->_hasContext = false; - r->_context.clear(); + r->_context = _instance->getDefaultContext(); r->_facet = ""; return r; } @@ -150,18 +139,15 @@ Reference::hash() const h = 5 * h + *p; } - if(_hasContext) + for(q = _context.begin(); q != _context.end(); ++q) { - for(q = _context.begin(); q != _context.end(); ++q) + for(p = q->first.begin(); p != q->first.end(); ++p) { - for(p = q->first.begin(); p != q->first.end(); ++p) - { - h = 5 * h + *p; - } - for(p = q->second.begin(); p != q->second.end(); ++p) - { - h = 5 * h + *p; - } + h = 5 * h + *p; + } + for(p = q->second.begin(); p != q->second.end(); ++p) + { + h = 5 * h + *p; } } @@ -316,11 +302,6 @@ IceInternal::Reference::operator==(const Reference& r) const return false; } - if(_hasContext != r._hasContext) - { - return false; - } - if(_context != r._context) { return false; @@ -374,15 +355,6 @@ IceInternal::Reference::operator<(const Reference& r) const return false; } - if(_hasContext < r._hasContext) - { - return true; - } - else if(r._hasContext < _hasContext) - { - return false; - } - if(_context < r._context) { return true; @@ -411,7 +383,6 @@ IceInternal::Reference::Reference(const InstancePtr& inst, const CommunicatorPtr _mode(md), _secure(sec), _identity(ident), - _hasContext(!ctx.empty()), _context(ctx), _facet(fs), _hashInitialized(false) @@ -424,7 +395,6 @@ IceInternal::Reference::Reference(const Reference& r) : _mode(r._mode), _secure(r._secure), _identity(r._identity), - _hasContext(r._hasContext), _context(r._context), _facet(r._facet), _hashInitialized(false) diff --git a/cppe/src/IceE/Reference.h b/cppe/src/IceE/Reference.h index 2b4d00393c5..7436ce9fa27 100644 --- a/cppe/src/IceE/Reference.h +++ b/cppe/src/IceE/Reference.h @@ -67,7 +67,6 @@ public: ReferencePtr changeContext(const Ice::Context&) const; ReferencePtr changeMode(Mode) const; ReferencePtr changeIdentity(const Ice::Identity&) const; - bool hasContext() const { return _hasContext; } ReferencePtr changeFacet(const std::string&) const; // @@ -120,7 +119,6 @@ private: Mode _mode; bool _secure; Ice::Identity _identity; - bool _hasContext; Ice::Context _context; std::string _facet; |