summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ObjectAdapterI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-05-23 11:59:44 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-05-23 11:59:44 +0200
commitd81701ca8182942b7936f9fd84a019b695e9c890 (patch)
treedc036c9d701fbbe1afad67782bd78572c0f61974 /cpp/src/Ice/ObjectAdapterI.cpp
parentFixed bug ICE-5543: stringToIdentity bug with escaped escapes (diff)
downloadice-d81701ca8182942b7936f9fd84a019b695e9c890.tar.bz2
ice-d81701ca8182942b7936f9fd84a019b695e9c890.tar.xz
ice-d81701ca8182942b7936f9fd84a019b695e9c890.zip
Added support for invocation timeouts and ACM heartbeats
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.cpp')
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp31
1 files changed, 11 insertions, 20 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 799a3e7bafa..ed798943b30 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -11,7 +11,6 @@
#include <Ice/ObjectAdapterI.h>
#include <Ice/ObjectAdapterFactory.h>
#include <Ice/Instance.h>
-#include <Ice/ConnectionMonitor.h>
#include <Ice/Proxy.h>
#include <Ice/ProxyFactory.h>
#include <Ice/ReferenceFactory.h>
@@ -859,21 +858,13 @@ Ice::ObjectAdapterI::getServantManager() const
return _servantManager;
}
-Ice::Int
+IceInternal::ACMConfig
Ice::ObjectAdapterI::getACM() const
{
// Not check for deactivation here!
assert(_instance); // Must not be called after destroy().
-
- if(_hasAcmTimeout)
- {
- return _acmTimeout;
- }
- else
- {
- return _instance->serverACM();
- }
+ return _acm;
}
//
@@ -888,8 +879,6 @@ Ice::ObjectAdapterI::ObjectAdapterI(const InstancePtr& instance, const Communica
_instance(instance),
_communicator(communicator),
_objectAdapterFactory(objectAdapterFactory),
- _hasAcmTimeout(false),
- _acmTimeout(0),
_servantManager(new ServantManager(instance, name)),
_activateOneOffDone(false),
_name(name),
@@ -909,6 +898,7 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
if(_noConfig)
{
_reference = _instance->referenceFactory()->create("dummy -t", "");
+ const_cast<ACMConfig&>(_acm) = _instance->serverACM();
return;
}
@@ -960,6 +950,9 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
throw ex;
}
+ const_cast<ACMConfig&>(_acm) =
+ ACMConfig(properties, _communicator->getLogger(), _name + ".ACM", _instance->serverACM());
+
int threadPoolSize = properties->getPropertyAsInt(_name + ".ThreadPool.Size");
int threadPoolSizeMax = properties->getPropertyAsInt(_name + ".ThreadPool.SizeMax");
bool hasPriority = properties->getProperty(_name + ".ThreadPool.ThreadPriority") != "";
@@ -972,13 +965,6 @@ Ice::ObjectAdapterI::initialize(const RouterPrx& router)
{
_threadPool = new ThreadPool(_instance, _name + ".ThreadPool", 0);
}
-
- _hasAcmTimeout = properties->getProperty(_name + ".ACM") != "";
- if(_hasAcmTimeout)
- {
- _acmTimeout = properties->getPropertyAsInt(_name + ".ACM");
- _instance->connectionMonitor()->checkIntervalForACM(_acmTimeout);
- }
if(!router)
{
@@ -1459,6 +1445,9 @@ Ice::ObjectAdapterI::filterProperties(StringSeq& unknownProps)
static const string suffixes[] =
{
"ACM",
+ "ACM.Close",
+ "ACM.Heartbeat",
+ "ACM.Timeout",
"AdapterId",
"Endpoints",
"Locator",
@@ -1483,7 +1472,9 @@ Ice::ObjectAdapterI::filterProperties(StringSeq& unknownProps)
"Router.Locator.PreferSecure",
"Router.Locator.CollocationOptimized",
"Router.Locator.LocatorCacheTimeout",
+ "Router.Locator.InvocationTimeout",
"Router.LocatorCacheTimeout",
+ "Router.InvocationTimeout",
"ProxyOptions",
"ThreadPool.Size",
"ThreadPool.SizeMax",