diff options
author | Marc Laukien <marc@zeroc.com> | 2003-01-17 03:58:50 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2003-01-17 03:58:50 +0000 |
commit | 8880977a608f0b735504f18a624de026cde62da7 (patch) | |
tree | a8fe5b082caf761337a165e1350a5f65f57bc95d /cpp/src/Ice/Instance.cpp | |
parent | fixed a bug with findObjectAdapter (diff) | |
download | ice-8880977a608f0b735504f18a624de026cde62da7.tar.bz2 ice-8880977a608f0b735504f18a624de026cde62da7.tar.xz ice-8880977a608f0b735504f18a624de026cde62da7.zip |
ConnectionMonitor
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r-- | cpp/src/Ice/Instance.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp index 19372b51a64..6a97c72efd7 100644 --- a/cpp/src/Ice/Instance.cpp +++ b/cpp/src/Ice/Instance.cpp @@ -21,6 +21,7 @@ #include <Ice/ProxyFactory.h> #include <Ice/ThreadPool.h> #include <Ice/ConnectionFactory.h> +#include <Ice/ConnectionMonitor.h> #include <Ice/ObjectFactoryManager.h> #include <Ice/UserExceptionFactoryManager.h> #include <Ice/LocalException.h> @@ -155,6 +156,13 @@ IceInternal::Instance::outgoingConnectionFactory() return _outgoingConnectionFactory; } +ConnectionMonitorPtr +IceInternal::Instance::connectionMonitor() +{ + IceUtil::RecMutex::Lock sync(*this); + return _connectionMonitor; +} + ObjectFactoryManagerPtr IceInternal::Instance::servantFactoryManager() { @@ -351,6 +359,13 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, int& argc, _outgoingConnectionFactory = new OutgoingConnectionFactory(this); + int acmTimeout = _properties->getPropertyAsInt("Ice.ConnectionIdleTime"); + int interval = _properties->getPropertyAsIntWithDefault("Ice.MonitorConnections", acmTimeout); + if(interval > 0) + { + _connectionMonitor = new ConnectionMonitor(this, interval); + } + _servantFactoryManager = new ObjectFactoryManager(); _userExceptionFactoryManager = new UserExceptionFactoryManager(); @@ -374,6 +389,7 @@ IceInternal::Instance::~Instance() assert(!_referenceFactory); assert(!_proxyFactory); assert(!_outgoingConnectionFactory); + assert(!_connectionMonitor); assert(!_servantFactoryManager); assert(!_userExceptionFactoryManager); assert(!_objectAdapterFactory); @@ -516,6 +532,12 @@ IceInternal::Instance::destroy() _objectAdapterFactory = 0; _outgoingConnectionFactory = 0; + if(_connectionMonitor) + { + _connectionMonitor->destroy(); + _connectionMonitor = 0; + } + if(_serverThreadPool) { _serverThreadPool->destroy(); |