diff options
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/Reference.cpp | 113 | ||||
-rw-r--r-- | cppe/src/IceE/Reference.h | 38 |
2 files changed, 77 insertions, 74 deletions
diff --git a/cppe/src/IceE/Reference.cpp b/cppe/src/IceE/Reference.cpp index fa72a2f0c07..3444bb0acc3 100644 --- a/cppe/src/IceE/Reference.cpp +++ b/cppe/src/IceE/Reference.cpp @@ -518,11 +518,10 @@ IceInternal::FixedReference::FixedReference(const FixedReference& r) { } +#ifdef ICEE_HAS_ROUTER void IceInternal::incRef(IceInternal::RoutableReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::RoutableReference* p) { p->__decRef(); } -#ifdef ICEE_HAS_ROUTER - vector<EndpointPtr> IceInternal::RoutableReference::getRoutedEndpoints() const { @@ -538,7 +537,6 @@ IceInternal::RoutableReference::getRoutedEndpoints() const return vector<EndpointPtr>(); } - ReferencePtr IceInternal::RoutableReference::changeDefault() const { @@ -560,7 +558,6 @@ IceInternal::RoutableReference::changeRouter(const RouterPrx& newRouter) const return r; } -#endif bool IceInternal::RoutableReference::operator==(const Reference& r) const @@ -574,11 +571,7 @@ IceInternal::RoutableReference::operator==(const Reference& r) const { return false; } -#ifdef ICEE_HAS_ROUTER return _routerInfo == rhs->_routerInfo; -#else - return true; -#endif } bool @@ -603,55 +596,47 @@ IceInternal::RoutableReference::operator<(const Reference& r) const const RoutableReference* rhs = dynamic_cast<const RoutableReference*>(&r); if(rhs) { -#ifdef ICEE_HAS_ROUTER return _routerInfo < rhs->_routerInfo; -#else - return true; -#endif } } return false; } IceInternal::RoutableReference::RoutableReference(const InstancePtr& inst, const Identity& ident, - const Context& ctx, const string& fs, Mode md -#ifdef ICEE_HAS_ROUTER - , const RouterInfoPtr& rtrInfo -#endif - ) - : Reference(inst, ident, ctx, fs, md) -#ifdef ICEE_HAS_ROUTER - , _routerInfo(rtrInfo) -#endif + const Context& ctx, const string& fs, Mode md, + const RouterInfoPtr& rtrInfo) + : Reference(inst, ident, ctx, fs, md), _routerInfo(rtrInfo) { } IceInternal::RoutableReference::RoutableReference(const RoutableReference& r) - : Reference(r) -#ifdef ICEE_HAS_ROUTER - , _routerInfo(r._routerInfo) -#endif + : Reference(r), _routerInfo(r._routerInfo) { } +#endif void IceInternal::incRef(IceInternal::DirectReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::DirectReference* p) { p->__decRef(); } + +#ifdef ICEE_HAS_ROUTER IceInternal::DirectReference::DirectReference(const InstancePtr& inst, const Identity& ident, const Context& ctx, const string& fs, Mode md, - const vector<EndpointPtr>& endpts -#ifdef ICEE_HAS_ROUTER - , const RouterInfoPtr& rtrInfo -#endif - ) - : RoutableReference(inst, ident, ctx, fs, md -#ifdef ICEE_HAS_ROUTER - , rtrInfo -#endif - ), - _endpoints(endpts) + const vector<EndpointPtr>& endpts, const RouterInfoPtr& rtrInfo) : + + RoutableReference(inst, ident, ctx, fs, md, rtrInfo), + _endpoints(endpts) +{ +} +#else +IceInternal::DirectReference::DirectReference(const InstancePtr& inst, const Identity& ident, + const Context& ctx, const string& fs, Mode md, + const vector<EndpointPtr>& endpts) : + Reference(inst, ident, ctx, fs, md), + _endpoints(endpts) { } +#endif vector<EndpointPtr> IceInternal::DirectReference::getEndpoints() const @@ -692,7 +677,7 @@ IceInternal::DirectReference::changeDefault() const else #endif // ICEE_HAS_LOCATOR { - return RoutableReference::changeDefault(); + return Parent::changeDefault(); } } @@ -736,7 +721,7 @@ IceInternal::DirectReference::changeTimeout(int newTimeout) const void IceInternal::DirectReference::streamWrite(BasicStream* s) const { - RoutableReference::streamWrite(s); + Parent::streamWrite(s); Int sz = static_cast<Int>(_endpoints.size()); s->writeSize(sz); @@ -756,7 +741,7 @@ IceInternal::DirectReference::streamWrite(BasicStream* s) const string IceInternal::DirectReference::toString() const { - string result = RoutableReference::toString(); + string result = Parent::toString(); vector<EndpointPtr>::const_iterator p; for(p = _endpoints.begin(); p != _endpoints.end(); ++p) @@ -775,7 +760,7 @@ ConnectionPtr IceInternal::DirectReference::getConnection() const { #ifdef ICEE_HAS_ROUTER - vector<EndpointPtr> endpts = RoutableReference::getRoutedEndpoints(); + vector<EndpointPtr> endpts = Parent::getRoutedEndpoints(); if(endpts.empty()) { endpts = _endpoints; @@ -819,7 +804,7 @@ IceInternal::DirectReference::operator==(const Reference& r) const return true; } const DirectReference* rhs = dynamic_cast<const DirectReference*>(&r); - if(!rhs || !RoutableReference::operator==(r)) + if(!rhs || !Parent::operator==(r)) { return false; } @@ -839,11 +824,11 @@ IceInternal::DirectReference::operator<(const Reference& r) const { return false; } - if(RoutableReference::operator<(r)) + if(Parent::operator<(r)) { return true; } - if(RoutableReference::operator==(r)) + if(Parent::operator==(r)) { const DirectReference* rhs = dynamic_cast<const DirectReference*>(&r); if(rhs) @@ -861,8 +846,7 @@ IceInternal::DirectReference::clone() const } IceInternal::DirectReference::DirectReference(const DirectReference& r) - : RoutableReference(r), - _endpoints(r._endpoints) + : Parent(r), _endpoints(r._endpoints) { } @@ -871,22 +855,27 @@ IceInternal::DirectReference::DirectReference(const DirectReference& r) void IceInternal::incRef(IceInternal::IndirectReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::IndirectReference* p) { p->__decRef(); } +#ifdef ICEE_HAS_ROUTER +IceInternal::IndirectReference::IndirectReference(const InstancePtr& inst, const Identity& ident, + const Context& ctx, const string& fs, Mode md, + const string& adptid, const RouterInfoPtr& rtrInfo, + const LocatorInfoPtr& locInfo) + : RoutableReference(inst, ident, ctx, fs, md, rtrInfo), + _adapterId(adptid), + _locatorInfo(locInfo) +{ +} +#else IceInternal::IndirectReference::IndirectReference(const InstancePtr& inst, const Identity& ident, const Context& ctx, const string& fs, Mode md, const string& adptid -#ifdef ICEE_HAS_ROUTER - , const RouterInfoPtr& rtrInfo -#endif , const LocatorInfoPtr& locInfo) - : RoutableReference(inst, ident, ctx, fs, md -#ifdef ICEE_HAS_ROUTER - , rtrInfo -#endif - ), + : Reference(inst, ident, ctx, fs, md), _adapterId(adptid), _locatorInfo(locInfo) { } +#endif vector<EndpointPtr> IceInternal::IndirectReference::getEndpoints() const @@ -912,7 +901,7 @@ IceInternal::IndirectReference::changeDefault() const } else { - IndirectReferencePtr r = IndirectReferencePtr::dynamicCast(RoutableReference::changeDefault()); + IndirectReferencePtr r = IndirectReferencePtr::dynamicCast(Parent::changeDefault()); r->_locatorInfo = getInstance()->locatorManager()->get(loc); return r; } @@ -961,7 +950,7 @@ IceInternal::IndirectReference::changeTimeout(int newTimeout) const void IceInternal::IndirectReference::streamWrite(BasicStream* s) const { - RoutableReference::streamWrite(s); + Parent::streamWrite(s); s->writeSize(0); s->write(_adapterId); @@ -970,7 +959,7 @@ IceInternal::IndirectReference::streamWrite(BasicStream* s) const string IceInternal::IndirectReference::toString() const { - string result = RoutableReference::toString(); + string result = Parent::toString(); if(_adapterId.empty()) { return result; @@ -1005,7 +994,7 @@ IceInternal::IndirectReference::getConnection() const while(true) { #ifdef ICEE_HAS_ROUTER - vector<EndpointPtr> endpts = RoutableReference::getRoutedEndpoints(); + vector<EndpointPtr> endpts = Parent::getRoutedEndpoints(); #else vector<EndpointPtr> endpts; #endif @@ -1083,7 +1072,7 @@ IceInternal::IndirectReference::operator==(const Reference& r) const return true; } const IndirectReference* rhs = dynamic_cast<const IndirectReference*>(&r); - if(!rhs || !RoutableReference::operator==(r)) + if(!rhs || !Parent::operator==(r)) { return false; } @@ -1103,11 +1092,11 @@ IceInternal::IndirectReference::operator<(const Reference& r) const { return false; } - if(RoutableReference::operator<(r)) + if(Parent::operator<(r)) { return true; } - if(RoutableReference::operator==(r)) + if(Parent::operator==(r)) { const IndirectReference* rhs = dynamic_cast<const IndirectReference*>(&r); if(rhs) @@ -1133,9 +1122,7 @@ IceInternal::IndirectReference::clone() const } IceInternal::IndirectReference::IndirectReference(const IndirectReference& r) - : RoutableReference(r), - _adapterId(r._adapterId), - _locatorInfo(r._locatorInfo) + : Parent(r), _adapterId(r._adapterId), _locatorInfo(r._locatorInfo) { } diff --git a/cppe/src/IceE/Reference.h b/cppe/src/IceE/Reference.h index 33288be84b6..cdda94fcb4c 100644 --- a/cppe/src/IceE/Reference.h +++ b/cppe/src/IceE/Reference.h @@ -160,18 +160,17 @@ private: std::vector<Ice::ConnectionPtr> _fixedConnections; }; +#ifdef ICEE_HAS_ROUTER class RoutableReference : public Reference { public: -#ifdef ICEE_HAS_ROUTER const RouterInfoPtr& getRouterInfo() const { return _routerInfo; } std::vector<EndpointPtr> getRoutedEndpoints() const; virtual ReferencePtr changeDefault() const; virtual ReferencePtr changeRouter(const Ice::RouterPrx&) const; -#endif virtual Ice::ConnectionPtr getConnection() const = 0; @@ -183,22 +182,23 @@ public: protected: - RoutableReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode -#ifdef ICEE_HAS_ROUTER - , const RouterInfoPtr& -#endif - ); + RoutableReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, + const RouterInfoPtr&); RoutableReference(const RoutableReference&); private: -#ifdef ICEE_HAS_ROUTER RouterInfoPtr _routerInfo; // Null if no router is used. -#endif }; +#endif -class DirectReference : public RoutableReference +class DirectReference : +#ifdef ICEE_HAS_ROUTER + public RoutableReference +#else + public Reference +#endif { public: @@ -237,11 +237,22 @@ protected: private: std::vector<EndpointPtr> _endpoints; + +#ifdef ICEE_HAS_ROUTER + typedef RoutableReference Parent; +#else + typedef Reference Parent; +#endif }; #ifdef ICEE_HAS_LOCATOR -class IndirectReference : public RoutableReference +class IndirectReference : +#ifdef ICEE_HAS_ROUTER + public RoutableReference +#else + public Reference +#endif { public: @@ -280,6 +291,11 @@ private: std::string _adapterId; LocatorInfoPtr _locatorInfo; +#ifdef ICEE_HAS_ROUTER
+ typedef RoutableReference Parent;
+#else
+ typedef Reference Parent;
+#endif
}; #endif // ICEE_HAS_LOCATOR |