diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-03-09 14:40:19 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-03-09 14:40:19 +0000 |
commit | f503d08955e30f2221ddc912bbce3c6a6badde5c (patch) | |
tree | a9273839e6eddada3270d5f4cabb06a3a52e7ef3 /cpp/src | |
parent | Fixed dropdown in mfc client for VC8 (diff) | |
download | ice-f503d08955e30f2221ddc912bbce3c6a6badde5c.tar.bz2 ice-f503d08955e30f2221ddc912bbce3c6a6badde5c.tar.xz ice-f503d08955e30f2221ddc912bbce3c6a6badde5c.zip |
Moved endpointSelection/cacheConnection to RoutableReference.
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Reference.cpp | 160 | ||||
-rw-r--r-- | cpp/src/Ice/Reference.h | 20 |
2 files changed, 110 insertions, 70 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp index 02d63007d3d..4a1773865bf 100644 --- a/cpp/src/Ice/Reference.cpp +++ b/cpp/src/Ice/Reference.cpp @@ -91,30 +91,6 @@ IceInternal::Reference::changeFacet(const string& newFacet) const return r; } -ReferencePtr -IceInternal::Reference::changeCacheConnection(bool newCache) const -{ - if(newCache == _cacheConnection) - { - return ReferencePtr(const_cast<Reference*>(this)); - } - ReferencePtr r = _instance->referenceFactory()->copy(this); - r->_cacheConnection = newCache; - return r; -} - -ReferencePtr -IceInternal::Reference::changeEndpointSelection(EndpointSelectionType newType) const -{ - if(newType == _endpointSelection) - { - return ReferencePtr(const_cast<Reference*>(this)); - } - ReferencePtr r = _instance->referenceFactory()->copy(this); - r->_endpointSelection = newType; - return r; -} - Int Reference::hash() const { @@ -302,16 +278,6 @@ IceInternal::Reference::operator==(const Reference& r) const return false; } - if(_cacheConnection != r._cacheConnection) - { - return false; - } - - if(_endpointSelection != r._endpointSelection) - { - return false; - } - return true; } @@ -364,24 +330,6 @@ IceInternal::Reference::operator<(const Reference& r) const return false; } - if(!_cacheConnection && r._cacheConnection) - { - return true; - } - else if(r._cacheConnection < _cacheConnection) - { - return false; - } - - if(_endpointSelection < r._endpointSelection) - { - return true; - } - else if(r._endpointSelection < _endpointSelection) - { - return false; - } - return false; } @@ -415,9 +363,7 @@ IceInternal::Reference::Reference(const InstancePtr& inst, const CommunicatorPtr _mode(md), _identity(ident), _context(ctx), - _facet(fs), - _cacheConnection(true), - _endpointSelection(Random) + _facet(fs) { } @@ -428,9 +374,7 @@ IceInternal::Reference::Reference(const Reference& r) : _mode(r._mode), _identity(r._identity), _context(r._context), - _facet(r._facet), - _cacheConnection(r._cacheConnection), - _endpointSelection(r._endpointSelection) + _facet(r._facet) { } @@ -457,6 +401,12 @@ IceInternal::FixedReference::getSecure() const return false; } +int +IceInternal::FixedReference::getLocatorCacheTimeout() const +{ + return 0; +} + string IceInternal::FixedReference::getAdapterId() const { @@ -475,10 +425,16 @@ IceInternal::FixedReference::getCollocationOptimization() const return false; } -int -IceInternal::FixedReference::getLocatorCacheTimeout() const +bool +IceInternal::FixedReference::getCacheConnection() const { - return 0; + return false; +} + +Ice::EndpointSelectionType +IceInternal::FixedReference::getEndpointSelection() const +{ + return Random; } ReferencePtr @@ -527,6 +483,12 @@ IceInternal::FixedReference::changeConnectionId(const string&) const } ReferencePtr +IceInternal::FixedReference::changeLocatorCacheTimeout(int) const +{ + return FixedReferencePtr(const_cast<FixedReference*>(this)); +} + +ReferencePtr IceInternal::FixedReference::changeAdapterId(const string& newAdapterId) const { return FixedReferencePtr(const_cast<FixedReference*>(this)); @@ -539,7 +501,13 @@ IceInternal::FixedReference::changeEndpoints(const vector<EndpointIPtr>& newEndp } ReferencePtr -IceInternal::FixedReference::changeLocatorCacheTimeout(int) const +IceInternal::FixedReference::changeCacheConnection(bool) const +{ + return FixedReferencePtr(const_cast<FixedReference*>(this)); +} + +ReferencePtr +IceInternal::FixedReference::changeEndpointSelection(EndpointSelectionType) const { return FixedReferencePtr(const_cast<FixedReference*>(this)); } @@ -723,6 +691,18 @@ IceInternal::RoutableReference::getCollocationOptimization() const return _collocationOptimization; } +bool +IceInternal::RoutableReference::getCacheConnection() const +{ + return _cacheConnection; +} + +Ice::EndpointSelectionType +IceInternal::RoutableReference::getEndpointSelection() const +{ + return _endpointSelection; +} + ReferencePtr IceInternal::RoutableReference::changeSecure(bool newSecure) const { @@ -760,6 +740,30 @@ IceInternal::RoutableReference::changeCollocationOptimization(bool newCollocatio return r; } +ReferencePtr +IceInternal::RoutableReference::changeCacheConnection(bool newCache) const +{ + if(newCache == _cacheConnection) + { + return RoutableReferencePtr(const_cast<RoutableReference*>(this)); + } + RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this)); + r->_cacheConnection = newCache; + return r; +} + +ReferencePtr +IceInternal::RoutableReference::changeEndpointSelection(EndpointSelectionType newType) const +{ + if(newType == _endpointSelection) + { + return RoutableReferencePtr(const_cast<RoutableReference*>(this)); + } + RoutableReferencePtr r = RoutableReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this)); + r->_endpointSelection = newType; + return r; +} + int IceInternal::RoutableReference::hash() const { @@ -786,6 +790,14 @@ IceInternal::RoutableReference::operator==(const Reference& r) const { return false; } + if(_cacheConnection != rhs->_cacheConnection) + { + return false; + } + if(_endpointSelection != rhs->_endpointSelection) + { + return false; + } return _routerInfo == rhs->_routerInfo; } @@ -827,6 +839,22 @@ IceInternal::RoutableReference::operator<(const Reference& r) const { return false; } + if(!_cacheConnection && rhs->_cacheConnection) + { + return true; + } + else if(rhs->_cacheConnection < _cacheConnection) + { + return false; + } + if(_endpointSelection < rhs->_endpointSelection) + { + return true; + } + else if(rhs->_endpointSelection < _endpointSelection) + { + return false; + } return _routerInfo < rhs->_routerInfo; } } @@ -839,7 +867,9 @@ IceInternal::RoutableReference::RoutableReference(const InstancePtr& inst, const Reference(inst, com, ident, ctx, fs, md), _secure(sec), _routerInfo(rtrInfo), - _collocationOptimization(collocationOpt) + _collocationOptimization(collocationOpt), + _cacheConnection(true), + _endpointSelection(Random) { } @@ -847,7 +877,9 @@ IceInternal::RoutableReference::RoutableReference(const RoutableReference& r) : Reference(r), _secure(r._secure), _routerInfo(r._routerInfo), - _collocationOptimization(r._collocationOptimization) + _collocationOptimization(r._collocationOptimization), + _cacheConnection(r._cacheConnection), + _endpointSelection(r._endpointSelection) { } diff --git a/cpp/src/Ice/Reference.h b/cpp/src/Ice/Reference.h index 7f67f2aa41c..a359f600977 100644 --- a/cpp/src/Ice/Reference.h +++ b/cpp/src/Ice/Reference.h @@ -47,8 +47,6 @@ public: const std::string& getFacet() const { return _facet; } const InstancePtr& getInstance() const { return _instance; } const Ice::Context& getContext() const { return _context; } - const bool getCacheConnection() const { return _cacheConnection; } - const Ice::EndpointSelectionType getEndpointSelection() const { return _endpointSelection; } ReferencePtr defaultContext() const; @@ -59,6 +57,8 @@ public: virtual std::vector<EndpointIPtr> getEndpoints() const = 0; virtual bool getCollocationOptimization() const = 0; virtual int getLocatorCacheTimeout() const = 0; + virtual bool getCacheConnection() const = 0; + virtual Ice::EndpointSelectionType getEndpointSelection() const = 0; // // The change* methods (here and in derived classes) create @@ -69,8 +69,6 @@ public: ReferencePtr changeMode(Mode) const; ReferencePtr changeIdentity(const Ice::Identity&) const; ReferencePtr changeFacet(const std::string&) const; - ReferencePtr changeCacheConnection(bool) const; - ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const; virtual ReferencePtr changeSecure(bool) const = 0; virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const = 0; @@ -82,6 +80,8 @@ public: virtual ReferencePtr changeAdapterId(const std::string&) const = 0; virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const = 0; virtual ReferencePtr changeLocatorCacheTimeout(int) const = 0; + virtual ReferencePtr changeCacheConnection(bool) const = 0; + virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const = 0; virtual int hash() const; // Conceptually const. @@ -125,8 +125,6 @@ private: Ice::Identity _identity; Ice::Context _context; std::string _facet; - bool _cacheConnection; - Ice::EndpointSelectionType _endpointSelection; }; class FixedReference : public Reference @@ -143,6 +141,8 @@ public: virtual std::string getAdapterId() const; virtual std::vector<EndpointIPtr> getEndpoints() const; virtual bool getCollocationOptimization() const; + virtual bool getCacheConnection() const; + virtual Ice::EndpointSelectionType getEndpointSelection() const; virtual ReferencePtr changeSecure(bool) const; virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const; @@ -154,6 +154,8 @@ public: virtual ReferencePtr changeLocatorCacheTimeout(int) const; virtual ReferencePtr changeAdapterId(const std::string&) const; virtual ReferencePtr changeEndpoints(const std::vector<EndpointIPtr>&) const; + virtual ReferencePtr changeCacheConnection(bool) const; + virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const; virtual void streamWrite(BasicStream*) const; virtual std::string toString() const; @@ -186,10 +188,14 @@ public: virtual bool getSecure() const; virtual bool getCollocationOptimization() const; + virtual bool getCacheConnection() const; + virtual Ice::EndpointSelectionType getEndpointSelection() const; virtual ReferencePtr changeSecure(bool) const; virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const; virtual ReferencePtr changeCollocationOptimization(bool) const; + virtual ReferencePtr changeCacheConnection(bool) const; + virtual ReferencePtr changeEndpointSelection(Ice::EndpointSelectionType) const; virtual Ice::ConnectionIPtr getConnection(bool&) const = 0; @@ -214,6 +220,8 @@ private: bool _secure; RouterInfoPtr _routerInfo; // Null if no router is used. bool _collocationOptimization; + bool _cacheConnection; + Ice::EndpointSelectionType _endpointSelection; }; class DirectReference : public RoutableReference |