summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeSessionI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-12-07 15:31:48 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-12-07 15:31:48 +0000
commitcbde90b8cc32ec3863c2d78a0ed62e1b986aebe4 (patch)
treef60a3e21a1a066f4ded02d6378c0cf9318a14460 /cpp/src/IceGrid/NodeSessionI.cpp
parentReplicate TopicManager as well (diff)
downloadice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.tar.bz2
ice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.tar.xz
ice-cbde90b8cc32ec3863c2d78a0ed62e1b986aebe4.zip
Fixed bug 1603
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeSessionI.cpp36
1 files changed, 11 insertions, 25 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp
index ee87d6ac16c..a86c04600df 100644
--- a/cpp/src/IceGrid/NodeSessionI.cpp
+++ b/cpp/src/IceGrid/NodeSessionI.cpp
@@ -112,24 +112,20 @@ NodeSessionI::loadServers_async(const AMD_NodeSession_loadServersPtr& amdCB, con
//
// Get the server proxies to load them on the node.
//
- Ice::StringSeq servers = _database->getNode(_info.name)->getServers();
- for(Ice::StringSeq::const_iterator p = servers.begin(); p != servers.end(); ++p)
- {
- try
- {
- _database->getServer(*p)->load();
- }
- catch(const Ice::UserException&)
- {
- // Ignore.
- }
- }
+ ServerEntrySeq servers = _database->getNode(_info.name)->getServers();
+ for_each(servers.begin(), servers.end(), IceUtil::voidMemFun(&ServerEntry::sync));
}
Ice::StringSeq
NodeSessionI::getServers(const Ice::Current& current) const
{
- return _database->getNode(_info.name)->getServers();
+ ServerEntrySeq servers = _database->getNode(_info.name)->getServers();
+ Ice::StringSeq names;
+ for(ServerEntrySeq::const_iterator p = servers.begin(); p != servers.end(); ++p)
+ {
+ names.push_back((*p)->getId());
+ }
+ return names;
}
void
@@ -208,18 +204,8 @@ NodeSessionI::destroyImpl(bool shutdown)
_destroy = true;
}
- Ice::StringSeq servers = _database->getNode(_info.name)->getServers();
- for(Ice::StringSeq::const_iterator p = servers.begin(); p != servers.end(); ++p)
- {
- try
- {
- _database->getServer(*p)->unload();
- }
- catch(const Ice::UserException&)
- {
- // Ignore.
- }
- }
+ ServerEntrySeq servers = _database->getNode(_info.name)->getServers();
+ for_each(servers.begin(), servers.end(), IceUtil::voidMemFun(&ServerEntry::unsync));
//
// If the registry isn't being shutdown we remove the node