summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Proxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r--cpp/src/Ice/Proxy.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index 9a2ad59c61b..9828955df81 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -413,6 +413,22 @@ IceProxy::Ice::Object::ice_secure(bool b) const
}
ObjectPrx
+IceProxy::Ice::Object::ice_compress(bool b) const
+{
+ ReferencePtr ref = _reference->changeCompress(b);
+ if (ref == _reference)
+ {
+ return ObjectPrx(const_cast< ::IceProxy::Ice::Object*>(this));
+ }
+ else
+ {
+ ObjectPrx proxy(new ::IceProxy::Ice::Object());
+ proxy->setup(ref);
+ return proxy;
+ }
+}
+
+ObjectPrx
IceProxy::Ice::Object::ice_timeout(int t) const
{
ReferencePtr ref = _reference->changeTimeout(t);
@@ -577,7 +593,7 @@ IceProxy::Ice::Object::__locationForward(const LocationForward& ex)
if (_reference->identity != ex._prx->_reference->identity)
{
- throw ReferenceIdentityException(__FILE__, __LINE__);
+ throw LocationForwardIdentityException(__FILE__, __LINE__);
}
_reference = _reference->changeEndpoints(ex._prx->_reference->endpoints);
@@ -765,7 +781,7 @@ IceDelegateM::Ice::Object::ice_invoke(const string& operation,
void
IceDelegateM::Ice::Object::ice_flush()
{
- __connection->flushBatchRequest();
+ __connection->flushBatchRequest(__reference->compress);
}
void