summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ObjectAdapterI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.cpp')
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 537aab5f79d..2fd1f92d10f 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -858,7 +858,8 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
_servantManager(new ServantManager(instance, name)),
_name(name),
_directCount(0),
- _noConfig(noConfig)
+ _noConfig(noConfig),
+ _messageSizeMax(0)
{
}
@@ -923,6 +924,19 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
const_cast<ACMConfig&>(_acm) =
ACMConfig(properties, _communicator->getLogger(), _name + ".ACM", _instance->serverACM());
+ {
+ const int defaultMessageSizeMax = _instance->messageSizeMax() / 1024;
+ Int num = properties->getPropertyAsIntWithDefault(_name + ".MessageSizeMax", defaultMessageSizeMax);
+ if(num < 1 || static_cast<size_t>(num) > static_cast<size_t>(0x7fffffff / 1024))
+ {
+ const_cast<size_t&>(_messageSizeMax) = static_cast<size_t>(0x7fffffff);
+ }
+ else
+ {
+ const_cast<size_t&>(_messageSizeMax) = static_cast<size_t>(num) * 1024;
+ }
+ }
+
int threadPoolSize = properties->getPropertyAsInt(_name + ".ThreadPool.Size");
int threadPoolSizeMax = properties->getPropertyAsInt(_name + ".ThreadPool.SizeMax");
bool hasPriority = properties->getProperty(_name + ".ThreadPool.ThreadPriority") != "";
@@ -1415,6 +1429,7 @@ Ice::ObjectAdapterI::filterProperties(StringSeq& unknownProps)
"Locator.PreferSecure",
"Locator.CollocationOptimized",
"Locator.Router",
+ "MessageSizeMax",
"PublishedEndpoints",
"RegisterProcess",
"ReplicaGroupId",