summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Instance.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-11-05 15:33:01 +0100
committerBenoit Foucher <benoit@zeroc.com>2014-11-05 15:33:01 +0100
commitcb4d5772e9a7a9228577df83027e45ec7de022ea (patch)
treebd6489fe77ed5fba43adff613293d580fda8e0f3 /cpp/src/Ice/Instance.cpp
parentFixed src tree build of IceJS (diff)
downloadice-cb4d5772e9a7a9228577df83027e45ec7de022ea.tar.bz2
ice-cb4d5772e9a7a9228577df83027e45ec7de022ea.tar.xz
ice-cb4d5772e9a7a9228577df83027e45ec7de022ea.zip
Fixed ICE-5607: relaxed Ice.MessageSizeMax
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r--cpp/src/Ice/Instance.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index bf3dc73c8ed..11d27fc1111 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -1059,6 +1059,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
_state(StateActive),
_initData(initData),
_messageSizeMax(0),
+ _batchAutoFlushSize(0),
_collectObjects(false),
_implicitContext(0),
_stringConverter(IceUtil::getProcessStringConverter()),
@@ -1274,6 +1275,32 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
}
}
+ if(_initData.properties->getProperty("Ice.BatchAutoFlushSize").empty() &&
+ !_initData.properties->getProperty("Ice.BatchAutoFlush").empty())
+ {
+ if(_initData.properties->getPropertyAsInt("Ice.BatchAutoFlush") > 0)
+ {
+ const_cast<size_t&>(_batchAutoFlushSize) = _messageSizeMax;
+ }
+ }
+ else
+ {
+ Int num = _initData.properties->getPropertyAsIntWithDefault("Ice.BatchAutoFlushSize", 1024); // 1MB default
+ if(num < 1)
+ {
+ const_cast<size_t&>(_batchAutoFlushSize) = num;
+ }
+ else if(static_cast<size_t>(num) > static_cast<size_t>(0x7fffffff / 1024))
+ {
+ const_cast<size_t&>(_batchAutoFlushSize) = static_cast<size_t>(0x7fffffff);
+ }
+ else
+ {
+ // Property is in kilobytes, convert in bytes.
+ const_cast<size_t&>(_batchAutoFlushSize) = static_cast<size_t>(num) * 1024;
+ }
+ }
+
const_cast<bool&>(_collectObjects) = _initData.properties->getPropertyAsInt("Ice.CollectObjects") > 0;
//