summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-12-07 18:14:21 +0000
committerMarc Laukien <marc@zeroc.com>2002-12-07 18:14:21 +0000
commitf08843c1237ed2fc7a7bbc585a15afe45f2739c1 (patch)
treed148378896a2cbf7c3c13664703af2c166f15390 /cpp/src/Ice/Reference.cpp
parentAMD classes now expandable (diff)
downloadice-f08843c1237ed2fc7a7bbc585a15afe45f2739c1.tar.bz2
ice-f08843c1237ed2fc7a7bbc585a15afe45f2739c1.tar.xz
ice-f08843c1237ed2fc7a7bbc585a15afe45f2739c1.zip
ice_collocationOptimization()
Diffstat (limited to 'cpp/src/Ice/Reference.cpp')
-rw-r--r--cpp/src/Ice/Reference.cpp65
1 files changed, 53 insertions, 12 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 53543719ae4..18f3443bb0d 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -90,6 +90,11 @@ IceInternal::Reference::operator==(const Reference& r) const
return false;
}
+ if(collocationOptimization != r.collocationOptimization)
+ {
+ return false;
+ }
+
return true;
}
@@ -197,6 +202,15 @@ IceInternal::Reference::operator<(const Reference& r) const
return false;
}
+ if(!collocationOptimization && r.collocationOptimization)
+ {
+ return true;
+ }
+ else if(r.collocationOptimization < collocationOptimization)
+ {
+ return false;
+ }
+
return false;
}
@@ -371,7 +385,8 @@ IceInternal::Reference::changeIdentity(const Identity& newIdentity) const
else
{
return instance->referenceFactory()->create(newIdentity, facet, mode, secure, compress, adapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -385,7 +400,8 @@ IceInternal::Reference::changeFacet(const FacetPath& newFacet) const
else
{
return instance->referenceFactory()->create(identity, newFacet, mode, secure, compress, adapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -435,7 +451,8 @@ IceInternal::Reference::changeTimeout(int timeout) const
}
return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
- newEndpoints, newRouterInfo, newLocatorInfo, reverseAdapter);
+ newEndpoints, newRouterInfo, newLocatorInfo, reverseAdapter,
+ collocationOptimization);
}
ReferencePtr
@@ -448,7 +465,8 @@ IceInternal::Reference::changeMode(Mode newMode) const
else
{
return instance->referenceFactory()->create(identity, facet, newMode, secure, compress, adapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -462,7 +480,8 @@ IceInternal::Reference::changeSecure(bool newSecure) const
else
{
return instance->referenceFactory()->create(identity, facet, mode, newSecure, compress, adapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -476,7 +495,8 @@ IceInternal::Reference::changeCompress(bool newCompress) const
else
{
return instance->referenceFactory()->create(identity, facet, mode, secure, newCompress, adapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -490,7 +510,8 @@ IceInternal::Reference::changeAdapterId(const string& newAdapterId) const
else
{
return instance->referenceFactory()->create(identity, facet, mode, secure, compress, newAdapterId,
- endpoints, routerInfo, locatorInfo, reverseAdapter);
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -504,7 +525,8 @@ IceInternal::Reference::changeEndpoints(const vector<EndpointPtr>& newEndpoints)
else
{
return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
- newEndpoints, routerInfo, locatorInfo, reverseAdapter);
+ newEndpoints, routerInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -520,7 +542,8 @@ IceInternal::Reference::changeRouter(const RouterPrx& newRouter) const
else
{
return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
- endpoints, newRouterInfo, locatorInfo, reverseAdapter);
+ endpoints, newRouterInfo, locatorInfo, reverseAdapter,
+ collocationOptimization);
}
}
@@ -536,7 +559,23 @@ IceInternal::Reference::changeLocator(const LocatorPrx& newLocator) const
else
{
return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
- endpoints, routerInfo, newLocatorInfo, reverseAdapter);
+ endpoints, routerInfo, newLocatorInfo, reverseAdapter,
+ collocationOptimization);
+ }
+}
+
+ReferencePtr
+IceInternal::Reference::changeCollocationOptimization(bool newCollocationOptimization) const
+{
+ if(newCollocationOptimization == collocationOptimization)
+ {
+ return ReferencePtr(const_cast<Reference*>(this));
+ }
+ else
+ {
+ return instance->referenceFactory()->create(identity, facet, mode, secure, compress, adapterId,
+ endpoints, routerInfo, locatorInfo, reverseAdapter,
+ newCollocationOptimization);
}
}
@@ -547,7 +586,7 @@ IceInternal::Reference::changeDefault() const
LocatorInfoPtr locatorInfo = instance->locatorManager()->get(instance->referenceFactory()->getDefaultLocator());
return instance->referenceFactory()->create(identity, FacetPath(), ModeTwoway, false, false, adapterId,
- endpoints, routerInfo, locatorInfo, 0);
+ endpoints, routerInfo, locatorInfo, 0, true);
}
IceInternal::Reference::Reference(const InstancePtr& inst,
@@ -560,7 +599,8 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
const vector<EndpointPtr>& endpts,
const RouterInfoPtr& rtrInfo,
const LocatorInfoPtr& locInfo,
- const ObjectAdapterPtr& rvAdapter) :
+ const ObjectAdapterPtr& rvAdapter,
+ bool collocationOptimization) :
instance(inst),
identity(ident),
facet(facPath),
@@ -572,6 +612,7 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
routerInfo(rtrInfo),
locatorInfo(locInfo),
reverseAdapter(rvAdapter),
+ collocationOptimization(collocationOptimization),
hashValue(0)
{
//