summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdminSessionI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-11-21 17:58:52 -0500
committerBernard Normier <bernard@zeroc.com>2007-11-21 17:58:52 -0500
commit7826d8dd30b3bbbd3be4c65df8260164a9021798 (patch)
tree415bad61d47d08332f3ea6a377dc95b6dea467f9 /cpp/src/IceGrid/AdminSessionI.cpp
parentAdded AMI call (diff)
downloadice-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.cpp20
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&