diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-11-21 17:58:52 -0500 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-11-21 17:58:52 -0500 |
commit | 7826d8dd30b3bbbd3be4c65df8260164a9021798 (patch) | |
tree | 415bad61d47d08332f3ea6a377dc95b6dea467f9 /cpp/src/IceGrid/AdminSessionI.cpp | |
parent | Added AMI call (diff) | |
download | ice-7826d8dd30b3bbbd3be4c65df8260164a9021798.tar.bz2 ice-7826d8dd30b3bbbd3be4c65df8260164a9021798.tar.xz ice-7826d8dd30b3bbbd3be4c65df8260164a9021798.zip |
Refactored server-properties access/retrieval from IceGrid admin client
Diffstat (limited to 'cpp/src/IceGrid/AdminSessionI.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/cpp/src/IceGrid/AdminSessionI.cpp b/cpp/src/IceGrid/AdminSessionI.cpp index 87d445f2abb..549f41a45a2 100644 --- a/cpp/src/IceGrid/AdminSessionI.cpp +++ b/cpp/src/IceGrid/AdminSessionI.cpp @@ -55,10 +55,11 @@ FileIteratorI::destroy(const Ice::Current& current) } AdminSessionI::AdminSessionI(const string& id, const DatabasePtr& db, bool filters, int timeout, - const string& replicaName) : + const RegistryIPtr& registry) : BaseSessionI(id, "admin", db, filters), _timeout(timeout), - _replicaName(replicaName) + _replicaName(registry->getName()), + _registry(registry) { } @@ -401,10 +402,16 @@ AdminSessionI::removeFileIterator(const Ice::Identity& id, const Ice::Current& c _iterators.erase(id); } -void +Ice::ConnectionPtr AdminSessionI::destroyImpl(bool shutdown) { - BaseSessionI::destroyImpl(shutdown); + Ice::ConnectionPtr con = BaseSessionI::destroyImpl(shutdown); + + if(con != 0) + { + _registry->removeAdminSessionConnection(con); + } + _registry = 0; try { @@ -422,7 +429,7 @@ AdminSessionI::destroyImpl(bool shutdown) { if(_servantLocator) { - _servantLocator->remove(_admin->ice_getIdentity()); + _servantLocator->remove(_admin->ice_getIdentity()); } else if(_adapter) { @@ -466,6 +473,7 @@ AdminSessionI::destroyImpl(bool shutdown) setupObserverSubscription(AdapterObserverTopicName, 0); setupObserverSubscription(ObjectObserverTopicName, 0); } + return con; } AdminSessionFactory::AdminSessionFactory(const Ice::ObjectAdapterPtr& adapter, @@ -533,7 +541,7 @@ AdminSessionFactory::createGlacier2Session(const string& sessionId, const Glacie AdminSessionIPtr AdminSessionFactory::createSessionServant(const string& id) { - return new AdminSessionI(id, _database, _filters, _timeout, _registry->getName()); + return new AdminSessionI(id, _database, _filters, _timeout, _registry); } const TraceLevelsPtr& |